|
|
|
Битые записи в массиве. |
|
|
|
Jul 16 2018, 12:05
|
Профессионал
Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848
|
Цитата(jcxz @ Jul 16 2018, 13:34) . . . Есть например COBS. . . . COBS, pdf - насколько я понял. Спасибо, поглядим, "что за зверь". Цитата(Jenya7 @ Jul 16 2018, 14:25) а теперь простым языком - как создать уникальный заголовок? Ну, например. У Вас максимальный размер поля данных - 4 байта (бинарные) "прореживаете" все поля данных 0x00. Заголовок пакета 5 байт: 0x55 - 0x01 - 0x02 - 0x03 - 0x04 Завершаете пакет 0x00 - 0x00 - 0x00 - CRC_Hi - CRC_Lo (примитив, всяческое охаивание приветствуется)
|
|
|
|
|
Jul 16 2018, 12:09
|
Профессионал
Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075
|
Цитата(k155la3 @ Jul 16 2018, 18:05) COBS, pdf - насколько я понял. Спасибо, поглядим, "что за зверь". Ну, например. У Вас максимальный размер поля данных - 4 байта (бинарные) "прореживаете" все поля данных 0x00. Заголовок пакета 5 байт: 0x55 - 0x01 - 0x02 - 0x03 - 0x04 Завершаете пакет 0x00 - 0x00 - 0x00 - CRC_Hi - CRC_Lo (примитив, всяческое охаивание приветствуется) а что гарантирует что CRC_Hi - CRC_Lo примут отличное от заголовка значение? в принципе я тут подумал - это нужно только для парсинга - а парсинг будет на стороне компа - там можно будет применить и более сложные алгоритмы.
Сообщение отредактировал Jenya7 - Jul 16 2018, 12:12
|
|
|
|
|
Jul 16 2018, 14:15
|
Гуру
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713
|
Цитата(k155la3 @ Jul 16 2018, 15:05) COBS, pdf - насколько я понял. Спасибо, поглядим, "что за зверь". В википедии достаточно хорошо описано: https://en.wikipedia.org/wiki/Consistent_Ov...d_Byte_StuffingИ размер кадра вовсе не ограничивается 254 байтами - легко расширяется до любого размера. Просто оверхед будет равен: Код //вычисление величины увеличения размера данных при кодировании payload байт в COBS #define CobsCodedOver(payload) ((sizeof(payload) - 1) / 254 + 1)
|
|
|
|
|
Jul 16 2018, 14:26
|
Местный
Группа: Участник
Сообщений: 352
Регистрация: 10-08-06
Из: Санкт-Петербург
Пользователь №: 19 471
|
Цитата(jcxz @ Jul 16 2018, 17:15) И размер кадра вовсе не ограничивается 254 байтами - легко расширяется до любого размера. Поясните, пожалуйста, как размер кадра расширяется.
|
|
|
|
|
Jul 17 2018, 05:39
|
Гуру
Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925
|
Цитата(Jenya7 @ Jul 16 2018, 18:25) а теперь простым языком - как создать уникальный заголовок? Достаточно сделать заголовок пакета 0x55FA, постоянную длину пакета и контрольную сумму в конце пакета. Тогда начало определяем по заголовку, набираем из потока байтов(или буфера) постоянную длину и проверяем контрольную сумму. Если контроль не прошёл, то значит 0x55FA это данные, а не заголовок. Ищем в набранном заголовок, если не находим, то отбрасываем набранное вообще, если находим - набираем еще байтов от нового заголовка. И т.д. пока не засинхронизируемся с потоком.
|
|
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|