Перейти к содержимому


Фотография

Передача данных по рэдстоуну

OC рэдстоун Передача данных

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 73

#1 Оффлайн   Quant

Quant
  • Пользователи
  • Сообщений: 537
  • Уровень сигнала: 0,01%
  • В игре: 0 час. 4 мин.
  • Городinterface IQuant

Награды

     

Отправлено 02 Июль 2015 - 13:10

Пока в меня не полетели помидоры,скажу что это работает медленно(надеюсь,скоро будет быстрее) 

Работает быстро

слева-приемник

справа-передатчик

[attachment=572:2015-07-02_09.21.11.png]

 

Использование: сначала запускаем приемник,затем передатчик,вводим число,которое хотим передать,и ждем.

Внимание! Не вводить числа больше 1000,если не хотите прождать минуту-другую.

 

Новая версия будет скоро(завтра или раньше)

           V 1.1 (Релиз,сила сигналов)

Передатчик http://pastebin.com/KeQk3iPv

Приёмник http://pastebin.com/FztBeV6E

           V0.1 (сырая,двоичный код)

Добавляется кабель сзади!

Передатчик:http://pastebin.com/2f1YAdTM

Приёмник:http://pastebin.com/f1bGEvbb

P.S. Кот-нибудь знает,как перевести код символа в символ,кроме elseif-ов?(решено)


Сообщение отредактировал Quant: 18 Июль 2015 - 10:06

  • Zer0Galaxy, Mecopy6ka, Programist135 и 4 другим это нравится

#2 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 230
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 02 Июль 2015 - 13:42

С расстоянием уровень сигнала уменьшается. Такая передача будет работать правильно лишь при определенном расстоянии между приемником и передатчиком. Подумай над передачей двоичным кодом.


  • ECS, Quant и mrlobaker это нравится

#3 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 750
  • Уровень сигнала: 0,26%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 02 Июль 2015 - 13:43

Кот-нибудь знает,как перевести код символа в символ,кроме elseif-ов?

 

Глянь тут: http://lua-users.org...LibraryTutorial

(в частности string.byte и string.char)

А также тут: http://ocdoc.cil.li/api:keyboard


  • Quant это нравится

#4 Оффлайн   Quant

Quant
  • Автор темы
  • Пользователи
  • Сообщений: 537
  • Уровень сигнала: 0,01%
  • В игре: 0 час. 4 мин.
  • Городinterface IQuant

Награды

     

Отправлено 02 Июль 2015 - 13:57

Глянь тут: http://lua-users.org...LibraryTutorial
(в частности string.byte и string.char)
А также тут: http://ocdoc.cil.li/api:keyboard

Спасибо! Собрался делать шифратор,
возможно когда-нибудь будет.

С расстоянием уровень сигнала уменьшается. Такая передача будет работать правильно лишь при определенном расстоянии между приемником и передатчиком. Подумай над передачей двоичным кодом.

Сейчас попробую.

#5 Оффлайн   Syabro

Syabro
  • Пользователи
  • Сообщений: 294
  • Уровень сигнала: 11,94%
  • В игре: 102 час. 30 мин.

Награды

     

Отправлено 02 Июль 2015 - 14:53

У меня вопрос.. Зачем?!!

#6 Оффлайн   swg2you

swg2you
  • Пользователи
  • Сообщений: 268
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 02 Июль 2015 - 14:57

У меня вопрос.. Зачем?!!

Вопрос неправильный.



#7 Оффлайн   ShuraGamer

ShuraGamer
  • Пользователи
  • Сообщений: 48
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 03 Июль 2015 - 11:34

Ммм... Так... То есть у тебя каждое слово имеет свой код? Тогда твоя прога на данный момент актуальна только для символов, иначе это какой-то Код Вечности получится) И,да, надо найти другой способ преобразования строки в число. Tonumber не годится. Далее. Введеную строку мы преобразуем в символы, а потом передаем по одному. Можно попробовать использовать юникод. А так-идея годная :)
P.S. для тех, кто не понял принципа проги-объясню: прога преобразует строку в число, а затем передает его с помощью сигналов разной силы, например 65 она выдаст как 4 сигнала 15 и сигнал 5. Очень интересная задумка, автор молодец. Например я попробовал бы идти через двоичную систему исчисления.
P.P.S Проблема скорости решается уменьшением времени ожидания, поставь symtime 0.1 и скорость повысится в 10 раз!

Сообщение отредактировал ShuraGamer: 03 Июль 2015 - 11:53


#8 Оффлайн   Quant

Quant
  • Автор темы
  • Пользователи
  • Сообщений: 537
  • Уровень сигнала: 0,01%
  • В игре: 0 час. 4 мин.
  • Городinterface IQuant

Награды

     

Отправлено 03 Июль 2015 - 12:18

Ммм... Так... То есть у тебя каждое слово имеет свой код? Тогда твоя прога на данный момент актуальна только для символов, иначе это какой-то Код Вечности получится) И,да, надо найти другой способ преобразования строки в число. Tonumber не годится. Далее. Введеную строку мы преобразуем в символы, а потом передаем по одному. Можно попробовать использовать юникод. А так-идея годная :)
P.S. для тех, кто не понял принципа проги-объясню: прога преобразует строку в число, а затем передает его с помощью сигналов разной силы, например 65 она выдаст как 4 сигнала 15 и сигнал 5. Очень интересная задумка, автор молодец. Например я попробовал бы идти через двоичную систему исчисления.
P.P.S Проблема скорости решается уменьшением времени ожидания, поставь symtime 0.1 и скорость повысится в 10 раз!

Ускорять ну получается,сообщения идут в "молоко"

Пока-что передача строк только планируется.

Сейчас пробую делать через двоичный код.



#9 Оффлайн   ShuraGamer

ShuraGamer
  • Пользователи
  • Сообщений: 48
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 03 Июль 2015 - 14:00

Ускорять ну получается,сообщения идут в "молоко"
Пока-что передача строк только планируется.
Сейчас пробую делать через двоичный код.

Нет, твой вариант имеет право на жизнь, но нужно что-то делать с передачей, твоя прога анализирует сигнал, и на это тратится время, в итоге оно и создает дисбаланс программ. Нужно делать что-то наподобие ивентов, то есть что бы прога ожидала сигнала, например между каждой передачей делать паузы сигнала редстоуна. Допустим, ты передаешь сигнал 20. Включил редстоун на 15, потом на 0; потом на 5. У проги приема в таком случае не будет ожидания по времени, она будет ждать редстоуна, и настраивать время нужно будет только в точке отправления. Если ты собираешься делать быструю систему, то тебе все равно придется отказаться от времени ожидания.
P.S. двоичный код-штука хорошая, но, во-первых, медленная а во-вторых, труднореализуемая из-за той же проблемы, что и в случае с редстоуном с силой. Тебе придется все равно делать вышеперечисленное, только вместо 0 и 1 у тебя будут 1 и 2. В общем, смотри сам.

Сообщение отредактировал ShuraGamer: 03 Июль 2015 - 14:06


#10 Оффлайн   swg2you

swg2you
  • Пользователи
  • Сообщений: 268
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 03 Июль 2015 - 15:00

Почитать UARTCAN и 1-Wire.


  • Quant это нравится

#11 Оффлайн   ShuraGamer

ShuraGamer
  • Пользователи
  • Сообщений: 48
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 03 Июль 2015 - 15:02

Почитать UARTCAN и 1-Wire.


Эт абракадабра какая-то :|
  • Quant это нравится

#12 Оффлайн   swg2you

swg2you
  • Пользователи
  • Сообщений: 268
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 03 Июль 2015 - 15:50

Эт абракадабра какая-то :|

Если абракадабру почитать на ночь, и уснуть, положив два кусочка медного провода под подушку, то наутро абракадабра станет менее кадабристой.


  • eu_tomat и Quant это нравится

#13 Онлайн   eu_tomat

eu_tomat
  • Хранители Кода
  • Сообщений: 935
  • Уровень сигнала: 5,93%
  • В игре: 50 час. 55 мин.

Награды

                          

Отправлено 03 Июль 2015 - 17:29

Если абракадабру почитать на ночь, и уснуть, положив два кусочка медного провода под подушку, то наутро абракадабра станет менее кадабристой.

Хороший подход. Перед сном по чайной ложке знаний каждый день.

#14 Оффлайн   ShuraGamer

ShuraGamer
  • Пользователи
  • Сообщений: 48
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 03 Июль 2015 - 18:05

Хороший подход. Перед сном по чайной ложке знаний каждый день.


Перед сном я кодю. Знаете ли, расслабляет

Если абракадабру почитать на ночь, и уснуть, положив два кусочка медного провода под подушку, то наутро абракадабра станет менее кадабристой.


Медные провода просочатся в голову?! :О

#15 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 780
  • Уровень сигнала: 4,24%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 03 Июль 2015 - 19:37

Сделай два провода, один - это бит, а второй это подтверждение.

#16 Оффлайн   ShuraGamer

ShuraGamer
  • Пользователи
  • Сообщений: 48
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 03 Июль 2015 - 19:40

Сделай два провода, один - это бит, а второй это подтверждение.

Нео, в качестве подтверждения можно просто отключить сигнал, делать два провода нерационально

Отправлено с моего HTC One через Tapatalk

#17 Оффлайн   LeshaInc

LeshaInc
  • Пользователи
  • Сообщений: 1 213
  • Уровень сигнала: 13,71%
  • В игре: 117 час. 41 мин.
  • ГородЛуна

Награды

                       

Отправлено 03 Июль 2015 - 19:56

Может лучше сразу 64 битную шину?

#18 Оффлайн   ShuraGamer

ShuraGamer
  • Пользователи
  • Сообщений: 48
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 03 Июль 2015 - 19:58

Может лучше сразу 64 битную шину?

Может, лучше сразу сетевую плату?

#19 Оффлайн   LeshaInc

LeshaInc
  • Пользователи
  • Сообщений: 1 213
  • Уровень сигнала: 13,71%
  • В игре: 117 час. 41 мин.
  • ГородЛуна

Награды

                       

Отправлено 03 Июль 2015 - 20:12

Может, лучше сразу сетевую плату?


Противоречит названию темы --- "передача данных по редстоуну", а у тебя получается "передача данных по сети".

#20 Оффлайн   ShuraGamer

ShuraGamer
  • Пользователи
  • Сообщений: 48
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 03 Июль 2015 - 20:13

Противоречит названию темы --- "передача данных по редстоуну", а у тебя получается "передача данных по сети".

Это был сарказм -_-

#21 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 780
  • Уровень сигнала: 4,24%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 03 Июль 2015 - 20:15

Нео, в качестве подтверждения можно просто отключить сигнал, делать два провода нерационально
Отправлено с моего HTC One через Tapatalk

Почему? А как ты определишь ноль?
Можно с помощью времени - это делать, но могут быть сбои.

#22 Оффлайн   ShuraGamer

ShuraGamer
  • Пользователи
  • Сообщений: 48
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 03 Июль 2015 - 20:25

Почему? А как ты определишь ноль?
Можно с помощью времени - это делать, но могут быть сбои.

Собственно, Квант по времени сначала и сделал, но, как ты и сказал, сбои. Квант реализовал передачу данных с помощью силы редстоуна, т.е. сигнал 20 передается как 15 и 5. Я же предлагаю, что бы приемник не ждал N-ое количество времени, а ожидал сигнала. В ситуации выше - 15,0,5
P.S. ноль-отсутствие сигнала.
P.P.S А вообще, если передавать сигнал на расстояние с помощью цветных проводов, то да-наилучшим вариантом будет дополнительный контрольный провод, то есть программа приема считывает данные с основного провода, когда получает контроль

#23 Оффлайн   Quant

Quant
  • Автор темы
  • Пользователи
  • Сообщений: 537
  • Уровень сигнала: 0,01%
  • В игре: 0 час. 4 мин.
  • Городinterface IQuant

Награды

     

Отправлено 04 Июль 2015 - 11:10

Может лучше сразу 64 битную шину?

А есть такие шины?



#24 Оффлайн   swg2you

swg2you
  • Пользователи
  • Сообщений: 268
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 04 Июль 2015 - 11:14

Перед сном я кодю. Знаете ли, расслабляет

Медные провода просочатся в голову?! :О

Программист, не забывай!

Покодил? Смой за собой!

Прими ложку знаний, и спать!

 

З.Ы.

А чтобы сетевую карту изобрести нужно вначале по редстоуну передать.


Сообщение отредактировал swg2you: 04 Июль 2015 - 11:18

  • Quant и ShuraGamer это нравится

#25 Оффлайн   FredoNook

FredoNook
  • Пользователи
  • Сообщений: 6
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 04 Июль 2015 - 18:57

Недавно делал шину(bus) в star-made там нету компутеров так что все на логике. Короче считаешь сколько тебе нужно вариантов 2^Xbit. допутим я делал 5ти битную шину, значит у меня было 0-31, тоесть 32 значения. Дальше подключаю к шине компараторы идентичности, ну в луа обойдемся == тоесть если пришедший бит == тому который ждем отлично нас зовут. еще одна линия (6) в шине Tx то есть линия отправки сигнала. Все слушают Tx если Tx 1 значит надо читать шину. Для расшифровки я делал бинарный кодер и декодер. здесь я думаю можно обойтись tonumber(val,x). Сигналы можно пускать в очередь, тоесть на пятибитной шине можно передать число любого размера главное что бы n * 32 было >= числу, где n колличество передач сигнала. Так же я использовал сигнал 11111 (31) для резета шины, поскольку на шине каждый прибор был с очередью все приборы кроме того код которого слался блокировались до того как отработал этот прибор и послал 11111 в шину. 
Не спал много часов, прогал несколько часов подряд поэтому мысли очень сумбурны).

 

PS Насколько я знаю в майнкрафте 20 тиков в секунду. соответственно скорость сети будет (10 * Xbit) / 8 byte/sec , 10 потому что я бы делал перерыв по одному тику между ближайшими Tx'ми.


Сообщение отредактировал FredoNook: 04 Июль 2015 - 19:01


#26 Оффлайн   Doob

Doob
  • Пользователи
  • Сообщений: 814
  • Уровень сигнала: 17,03%
  • В игре: 146 час. 10 мин.

Награды

                                   

Отправлено 04 Июль 2015 - 19:23

Код Грея мог бы помочь, хотя вряд-ли, ускорить обновление блоков невозможно. http://www.computerc...oming-messages/



#27 Оффлайн   Quant

Quant
  • Автор темы
  • Пользователи
  • Сообщений: 537
  • Уровень сигнала: 0,01%
  • В игре: 0 час. 4 мин.
  • Городinterface IQuant

Награды

     

Отправлено 05 Июль 2015 - 15:13

Зарелизил-скорость где-то в 11 раз больше(1000 за 42сек.) предпоследнее обновление передачи!



#28 Оффлайн   SergOmarov

SergOmarov
  • Пользователи
  • Сообщений: 564
  • Уровень сигнала: 0,3%
  • В игре: 2 час. 36 мин.

Награды

     

Отправлено 06 Июль 2015 - 13:53

Почему не сделаете разрядность канала стольким, сколько уровней силы сигнала? А чтобы сигнал с силой 1 не терялся, используйте изолированные кабели из мода RedLogic.


Сообщение отредактировал SergOmarov: 06 Июль 2015 - 13:54


#29 Оффлайн   Quant

Quant
  • Автор темы
  • Пользователи
  • Сообщений: 537
  • Уровень сигнала: 0,01%
  • В игре: 0 час. 4 мин.
  • Городinterface IQuant

Награды

     

Отправлено 06 Июль 2015 - 19:41

Почему не сделаете разрядность канала стольким, сколько уровней силы сигнала? А чтобы сигнал с силой 1 не терялся, используйте изолированные кабели из мода RedLogic.


В изолированных силы сигнала нет.

#30 Оффлайн   SergOmarov

SergOmarov
  • Пользователи
  • Сообщений: 564
  • Уровень сигнала: 0,3%
  • В игре: 2 час. 36 мин.

Награды

     

Отправлено 07 Июль 2015 - 04:04

А если обычный? Из красного сплава, неизолированный.







Темы с аналогичным тегами OC, рэдстоун, Передача данных

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных