Size: a a a

Rust — русскоговорящее сообществo

2020 March 15

dp

dark pit in Rust — русскоговорящее сообществo
источник

dp

dark pit in Rust — русскоговорящее сообществo
даже два получилось.  третий был про пример использования.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Adv0cat
как вам такой подход?
Хорош. Длинные паузы (между словами) редки, поэтому выигрываем битки. Конец вообще только один.
источник

dp

dark pit in Rust — русскоговорящее сообществo
Эрик
У тебя там в морзюке пять состояний, можно переписать с enum в три бита.
да, остальные два не нужны, но для наглядности и документации пусть будет.
источник

dp

dark pit in Rust — русскоговорящее сообществo
а тот enum вообще не нужен.  там вся работа либо с битами сигнала (0/1), либо с последовательностью буквы (точка/тире).  паузы вообще отдельно обрабатываются, и вперемешку с точкая и тире не юзаются.
источник

A

Adv0cat in Rust — русскоговорящее сообществo
dark pit
а тот enum вообще не нужен.  там вся работа либо с битами сигнала (0/1), либо с последовательностью буквы (точка/тире).  паузы вообще отдельно обрабатываются, и вперемешку с точкая и тире не юзаются.
Та делайте уже даьше как хотите, но у вас тире это 4 бита, а точка 2 бита, а паузы примерно такие же
источник

dp

dark pit in Rust — русскоговорящее сообществo
Adv0cat
01 - точка, 11 - тире, 00 - pause,
И вот ваши символы, которые попадут в парсер, вот вам квантование по 2 бита всей информации, нашли 1 раз 00, значит короткая пауза, нашли 2 раза по 00 - длинная пауза, 3 раза по 00 значит ваще конец
примерно так оно и вышло.  парсер хранит чиселку, сколько раз была подряд тишина.  при чем больше семи трекать уже бесполезно — семантика не поменяется.
источник

dp

dark pit in Rust — русскоговорящее сообществo
Adv0cat
Та делайте уже даьше как хотите, но у вас тире это 4 бита, а точка 2 бита, а паузы примерно такие же
интересная точка зрения, я с этой стороны не смотрел, наверное из-за нечетных пауз.
источник

A

Adv0cat in Rust — русскоговорящее сообществo
у вас -.. выглядит 111010100 а в моем варианте 11010100 т.е. по сути u8.
Для красоты можно ваще изголиться
01 - точка, 11 - тире, 00 - pause, 10 - длинная пауза
источник

dp

dark pit in Rust — русскоговорящее сообществo
в смысле, всегда интересно выслушать альтернативные взгляды на проблему, которую решал почти неделю.
источник

dp

dark pit in Rust — русскоговорящее сообществo
Adv0cat
у вас -.. выглядит 111010100 а в моем варианте 11010100 т.е. по сути u8.
Для красоты можно ваще изголиться
01 - точка, 11 - тире, 00 - pause, 10 - длинная пауза
поправочка: если это законченная буква, то в конце 3 ноля.
источник

A

Adv0cat in Rust — русскоговорящее сообществo
Ну еще больше))
источник

A

Adv0cat in Rust — русскоговорящее сообществo
В любом случае понимаете к чему я веду?)
источник

A

Adv0cat in Rust — русскоговорящее сообществo
у вас можно через квантование в 2 бита все символы охватить
источник

A

Adv0cat in Rust — русскоговорящее сообществo
и вы точно знаете когда малая пауза, а когда большая
источник

A

Adv0cat in Rust — русскоговорящее сообществo
а 0000 можно концом передачи сделать
источник

dp

dark pit in Rust — русскоговорящее сообществo
ну я увидел какую-то кастомную кодировку, которая уже не морзе, но ещё не буквы.  но которую можно будет матчить на буквы через сравнение одной чиселки.
источник

dp

dark pit in Rust — русскоговорящее сообществo
в этом определенно есть смысл
источник

A

Adv0cat in Rust — русскоговорящее сообществo
Ну так эту кодировку очень легко в букво цифры потоково читать, вы читаете по 2 бита ваш поток, складывая точки и тире, пока не найдете коротку или динную паузу, типа 00 или 10. Нашли 00 - проверили накопленные точки и тире на соответствие символу, если 01 еще дополнительно записали накопленные символы как слово, ну или записали после слова пробел, как там правильней
источник

A

Adv0cat in Rust — русскоговорящее сообществo
А нашли 00, и буковок наскладированых нет - значит конец передачи
источник