NEO 541 Опубликовано: 3 июля, 2015 Нео, в качестве подтверждения можно просто отключить сигнал, делать два провода нерационально Отправлено с моего HTC One через Tapatalk Почему? А как ты определишь ноль? Можно с помощью времени - это делать, но могут быть сбои. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ShuraGamer 25 Опубликовано: 3 июля, 2015 Почему? А как ты определишь ноль? Можно с помощью времени - это делать, но могут быть сбои. Собственно, Квант по времени сначала и сделал, но, как ты и сказал, сбои. Квант реализовал передачу данных с помощью силы редстоуна, т.е. сигнал 20 передается как 15 и 5. Я же предлагаю, что бы приемник не ждал N-ое количество времени, а ожидал сигнала. В ситуации выше - 15,0,5P.S. ноль-отсутствие сигнала. P.P.S А вообще, если передавать сигнал на расстояние с помощью цветных проводов, то да-наилучшим вариантом будет дополнительный контрольный провод, то есть программа приема считывает данные с основного провода, когда получает контроль Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Quant Автор темы 442 Опубликовано: 4 июля, 2015 Может лучше сразу 64 битную шину? А есть такие шины? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
swg2you 403 Опубликовано: 4 июля, 2015 (изменено) Перед сном я кодю. Знаете ли, расслабляет Медные провода просочатся в голову?! :О Программист, не забывай! Покодил? Смой за собой! Прими ложку знаний, и спать! З.Ы. А чтобы сетевую карту изобрести нужно вначале по редстоуну передать. Изменено 4 июля, 2015 пользователем swg2you 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
FredoNook 19 Опубликовано: 4 июля, 2015 (изменено) Недавно делал шину(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'ми. Изменено 4 июля, 2015 пользователем FredoNook Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 748 Опубликовано: 4 июля, 2015 Код Грея мог бы помочь, хотя вряд-ли, ускорить обновление блоков невозможно. http://www.computercraft.info/forums2/index.php?/topic/16414-chat-via-redstone-but-its-not-reading-incoming-messages/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Quant Автор темы 442 Опубликовано: 5 июля, 2015 Зарелизил-скорость где-то в 11 раз больше(1000 за 42сек.) предпоследнее обновление передачи! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
SergOmarov 34 Опубликовано: 6 июля, 2015 (изменено) Почему не сделаете разрядность канала стольким, сколько уровней силы сигнала? А чтобы сигнал с силой 1 не терялся, используйте изолированные кабели из мода RedLogic. Изменено 6 июля, 2015 пользователем SergOmarov Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Quant Автор темы 442 Опубликовано: 6 июля, 2015 Почему не сделаете разрядность канала стольким, сколько уровней силы сигнала? А чтобы сигнал с силой 1 не терялся, используйте изолированные кабели из мода RedLogic. В изолированных силы сигнала нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
SergOmarov 34 Опубликовано: 7 июля, 2015 А если обычный? Из красного сплава, неизолированный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 397 Опубликовано: 7 июля, 2015 В изолированных силы сигнала нет. А если обычный? Из красного сплава, неизолированный. Не знаю, чего там Иммибис кушает на обед перед моддингом, но в P:R и в оригинальном RP макс. сила сигнала из любых проводов красных равна 255. Подозреваю, что и в RL та же крипотня. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 7 июля, 2015 Передача информации по редстоуну вряд ли найдет практическое применение. Поэтому поднятую тему считаю интересной только с точки зрения изучения работы реальных последовательных протоколов передачи данных. Ни один из реальных известных мне цифровых протоколов не использует силу сигнала как способ передачи информации. Только наличие/отсутствие. Посему предлагаю автору темы реализовать протокол UART как используемый в известных интерфейсах RS-232 и RS-485. Если это кому то кажется абракадаброй, готов помочь чем смогу. Моё мнение может отличаться от мнения других участников форума. 4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 748 Опубликовано: 7 июля, 2015 Все упирается в лаги, в реальном мире скорость сигнала приближается к скорости света, поэтому можно использовать размещение битов по времени, даже без коррекции ошибок, на огромных скоростях. А в майне у одного 200 печек работает, другой летает в гравике с бешеной скоростью, у другого чанки после захода грузятся - сервер лагнул раз, подвис два - провод пропустил пачку сигналов и все пропало. Где-то видел, как в RedPower делали передачу данных по редстоуну, там долго боролись с двумя проводами (скорость около 1 Мб за 10 минут), потом забили и стали юзать бесцветный кабель. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 7 июля, 2015 Никто не говорит о высоких скоростях. Лучшее на что я рассчитываю - 1 бит/сек. Но для понимания работы этого достаточно. Можно даже осциллограф сделать, что бы смотреть циклограмму. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Quant Автор темы 442 Опубликовано: 7 июля, 2015 Передача информации по редстоуну вряд ли найдет практическое применение. Поэтому поднятую тему считаю интересной только с точки зрения изучения работы реальных последовательных протоколов передачи данных. Ни один из реальных известных мне цифровых протоколов не использует силу сигнала как способ передачи информации. Только наличие/отсутствие. Посему предлагаю автору темы реализовать протокол UART как используемый в известных интерфейсах RS-232 и RS-485. Если это кому то кажется абракадаброй, готов помочь чем смогу. Моё мнение может отличаться от мнения других участников форума. Есть стационарные крафтовые роботы, так почему бы не сэкономить на ресурсах? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
swg2you 403 Опубликовано: 7 июля, 2015 Никто не говорит о высоких скоростях. Лучшее на что я рассчитываю - 1 бит/сек. Но для понимания работы этого достаточно. Можно даже осциллограф сделать, что бы смотреть циклограмму. Реализовать UART - отличная задача. Осциллограф, показывающий сигналы на входах - вообще крутотень. А для тактования, думаю, можно взять computer.uptime(). Возможно удастся добиться скорости передачи 1 бит/2 тика. Нужно прикинуть суммарную погрешность. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Quant Автор темы 442 Опубликовано: 7 июля, 2015 Alex,не повезёт же тебе... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 7 июля, 2015 Alex,не повезёт же тебе... Безымянный.png Срочно лайкнул Алекса 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 148 Опубликовано: 7 июля, 2015 Какая интересная и живая тема, а у меня как раз инета не было. Попробую ответить сразу на все соображения по решению этой задачи. В каких единицах измеряется скорость? -скорость где-то в 11 раз больше(1000 за 42сек.)1000 чего? Алгоритм кодирования очень странный: передатчик разделяет число на слагаемые, а приемник суммирует. О какой производительности тут можно говорить? Тут уже предлагали разделить число на пятнадцатеричные разряды, такой подход значительно сократит длину передачи. Скорость можно дополнительно увеличить в два раза, избавившись от бессмысленной передачи нуля. Зачем передавать ноль, когда можно передать полезную информацию? Использовать два и более сигнальных провода — тупиковый путь. При таком подходе проводов всегда будет мало. Использование дополнительных проводов оправдано только в случае полного использования пропускной способности одного. Рассказ про шину на компараторах тут интересен только в контексте двоичного кодирования, но в данном случае более оптимальным будет использование пятнадцатеричного. Код Грея вообще не приносит пользы в решении этой задачи, он полезен только в реальном мире и только для двоичных кодов. Кстати, не следует идеализировать реальный мир. В майнкрафте есть лаги, зато в реальном мире к лагам добавляются шумы и потери сигнала. И без коррекции ошибок там никак не обходится кроме простейших случаев. Предложение реализовать UART мне нравится, но не следует делать утверждений о том, что все способы цифровой передачи сводятся к отсутствию или наличию сигнала. Для понимания этого достаточно ознакомиться со способами кодирования сигнала в модемах. Не погружаясь в детали, скажу, что сигнал имеет несколько состояний, и их количество значительно больше двух. Не принимать их во внимание — значит неэффективно использовать особенности среды передачи данных Резюмирую. Передача по связке кабелей банальна, UART тоже скучноват, передача данных по одному редстоун-каналу с его 16-ю состояниями выглядит весьма интереной, и в текущем решении потенциал редстоуна совсем не раскрыт. А его раскрытие мне кажется увлекательным. Конечно, для начала и UART сойдет. Но 16 уровней сигнала против двух — это совсем другие возможности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
swg2you 403 Опубликовано: 7 июля, 2015 (изменено) Какая интересная и живая тема, а у меня как раз инета не было. Попробую ответить сразу на все соображения по решению этой задачи. ... Резюмирую. Передача по связке кабелей банальна, UART тоже скучноват, передача данных по одному редстоун-каналу с его 16-ю состояниями выглядит весьма интереной, и в текущем решении потенциал редстоуна совсем не раскрыт. А его раскрытие мне кажется увлекательным. Конечно, для начала и UART сойдет. Но 16 уровней сигнала против двух — это совсем другие возможности. Несколько замечаний. Насколько мне известно, то редстоун сигнал затухает с расстоянием. Т.е. 16 уровней сигнала, но с каждым блоком количество уровней будет сокращаться. Нужна процедура начального согласования, для определения длины линии и, соответственно, количества возможных уровней сигнала. В этом случае можно кодировать посылку не в двоичной а в N-ричной системе счисления, где N - количество уровней сигнала при данной длине линии. Реализация подобия UART нужна в любом случае, поскольку это N-ричное число нужно по какому-то протоколу передавать, да и процедура согласования опять же. Если правильно решить тактование, то при таком подходе, информационная емкость канала сильно возрастает достигнув теоретического максимума. Дополнительно можно мультиплексировать канал, тогда по одному проводу мы сможем передавать информацию одновременно туда и обратно. Но тут сложнее. РедСтоун участок - дискретен, и встречные волны скорее всего не пройдут. Нужно более детальное изучение поведения рс-цепи. Скорее всего, возможно только мультиплексирование по времени с падением пропускной способности в 4 раза. В этом случае, введение информационных фреймов внутри протокола, позволит нивелировать этот недостаток и использовать канал по максимуму. По поводу лагов. Неравномерность течения времени в игре наблюдается относительно реального времени. Думаю, что если поставить в майне два компьютера, и одновременно запустить, то не смотря на лаги, расхождения в таймерах данных компьютеров наблюдаться не будут. Т.е. внутри мира майнкрафт лагов нет. Но эта гипотеза требует проверки. --=-- Тема действительно интересная и объемная. Передача сигналов по одному (не учитывая землю) проводу - основа основ любой электроники. Изменено 7 июля, 2015 пользователем swg2you Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах