реклама на сайте
подробности

 
 
> быстрый алгоритм, определения отсуствующего байта произвольного массива байтов размером
sKWO
сообщение Jun 1 2007, 10:57
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Нужно найти значение которого нету в списке.
Где-то пробегала мысль нащёт хэш функции, но немогу вспомнить где я ёё видел.

Сообщение отредактировал sKWO - Jun 1 2007, 10:59


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sergeeff
сообщение Jun 3 2007, 18:51
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



При чисто двоичной передаче данных со всякими преамбулами вначале и crc в конце все отлично, до тех пор пока не имеет место выпадение байта из середины. Что может быть в практической жизни запросто. При этом может накрыться вся идеология разборки пакета.
Go to the top of the page
 
+Quote Post
tag
сообщение Jun 4 2007, 11:48
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 151
Регистрация: 21-02-06
Пользователь №: 14 561



Цитата(sergeeff @ Jun 3 2007, 21:51) *
При чисто двоичной передаче данных со всякими преамбулами вначале и crc в конце все отлично, до тех пор пока не имеет место выпадение байта из середины. Что может быть в практической жизни запросто. При этом может накрыться вся идеология разборки пакета.


...для чего и придумали crc и приамбулу... и в целом протокол обмена

Цитата(ANV @ Jun 3 2007, 18:01) *
Используйте пакетную передачу данных.
Например
1. Преамбула.
2. Преамбула2.
3. Код команды (или назначение пакета..., опционально).
4. Размер данных.
5. КС. (опция)
6. Данные.
7. CRC16
8. Признак конца пакета.
Код
1    2    3    4    5    6    6    6    7    7    8
0x55 0xaa 0xXX 0x03 0x55 0xab 0xbc 0xcd crc0 crc1 0xfe


Это всего лишь пример. У меня в проектах используется чуть более сложная структура (зато более гибкая), но Вы можете выбрать поля как Вы считаете нужным. Размер каждого поля тоже.

Вот пример команды (вытянул из старого проекта) чтения системного времени устройства (МК шлет ответ ПК, в поле данных системное время, все hex):

55 AA 01 07 55 07 06 01 03 17 57 18 83 9A FE



...еще один вариант оформления пакета, здесь пример:

55h 0aah 86h 6h 18h 55h 55h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 55h 5ah


55h 0aah - маркер начала, 55h 5ah - маркер конца, если внутри пакета встречается байт с кодом 55h то он дублируется, т.е. в случае когда весь пакет содержит 55h его реальная длина будет в два раза больше. В примере выше содержимое пакета будет 86h 6h 18h 55h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sKWO   быстрый алгоритм   Jun 1 2007, 10:57
- - GetSmart   Совершенно непонятны условия задачи. Опишиде более...   Jun 1 2007, 11:30
|- - sKWO   Цитата(GetSmart @ Jun 1 2007, 14:30) Масс...   Jun 1 2007, 11:37
|- - =GM=   Цитата(sKWO @ Jun 1 2007, 09:57) Нужно на...   Jun 1 2007, 12:20
- - GetSmart   Два или более одинаковых значений в массиве допуск...   Jun 1 2007, 11:47
|- - sKWO   Цитата(GetSmart @ Jun 1 2007, 14:47) Два ...   Jun 1 2007, 12:30
|- - defunct   Цитата(sKWO @ Jun 1 2007, 15:30) Что дума...   Jun 1 2007, 12:49
||- - GetSmart   Цитата(defunct @ Jun 1 2007, 18:49) Я дум...   Jun 1 2007, 12:50
||- - defunct   Цитата(GetSmart @ Jun 1 2007, 15:50) Дык ...   Jun 1 2007, 12:52
|- - ANV   Цитата(sKWO @ Jun 1 2007, 15:30) Товарищ ...   Jun 3 2007, 15:01
- - defunct   Хеш функция для поиска байта, это нечто из серии- ...   Jun 1 2007, 11:58
- - GetSmart   Во время подготовки пакета к отправке из МК один р...   Jun 1 2007, 12:43
|- - sKWO   Цитата(GetSmart @ Jun 1 2007, 15:43) Во в...   Jun 1 2007, 12:55
- - add   ЦитатаРезультирующий пакет выглядит так:0x55, 0xAA...   Jun 1 2007, 12:44
- - GetSmart   Можно же и 256 байт в пакете использовать. То есть...   Jun 1 2007, 12:46
- - add   ЦитатаМожно же и 256 байт в пакете использовать. Т...   Jun 1 2007, 12:50
|- - GetSmart   Цитата(add @ Jun 1 2007, 18:50) Дык я уже...   Jun 1 2007, 12:54
|- - defunct   Цитата(GetSmart @ Jun 1 2007, 15:54) И та...   Jun 1 2007, 13:25
||- - sKWO   Цитата(defunct @ Jun 1 2007, 16:25) Конеч...   Jun 1 2007, 19:29
||- - haker_fox   Цитата(sKWO @ Jun 2 2007, 04:29) Ценю чув...   Jun 2 2007, 07:26
|- - ReAl   Цитата(GetSmart @ Jun 1 2007, 15:54) И та...   Jun 1 2007, 14:58
- - GetSmart   Цитата(add)Дык я уже говорил комбинация байт.после...   Jun 1 2007, 12:58
- - bzx   2 sKWO Измени структуру кадра передачи. Например, ...   Jun 1 2007, 13:06
- - _artem_   посмотрите в сторону битстаффинга. Пример - сигна...   Jun 1 2007, 14:36
- - _artem_   ну пускай тогда символьно передает, или сделает фр...   Jun 1 2007, 15:06
- - Dr.NoA   Полагаю, что для Вас в самый раз будет алгоритм by...   Jun 1 2007, 15:31
- - add   Цитата"Кривизна" протокола вносит ограни...   Jun 2 2007, 08:30
- - GetSmart   Цитата(add)про контрольную сумму забыли? чтоб еще ...   Jun 2 2007, 10:04
|- - defunct   Цитата(GetSmart @ Jun 2 2007, 13:04) Да н...   Jun 2 2007, 12:20
- - sergeeff   Народ давно уже придумал способы передачи двоичных...   Jun 2 2007, 16:27
|- - ANV   Цитата(sergeeff @ Jun 3 2007, 21:51) При ...   Jun 4 2007, 15:29
|- - zltigo   Цитата(ANV @ Jun 4 2007, 18:09) Какая иде...   Jun 4 2007, 15:29
||- - ANV   Цитата(zltigo @ Jun 4 2007, 18:29) Вся пр...   Jun 4 2007, 17:11
||- - zltigo   Цитата(ANV @ Jun 4 2007, 20:11) добавляйт...   Jun 4 2007, 20:54
||- - ANV   Цитата(zltigo @ Jun 4 2007, 23:54) В данн...   Jun 4 2007, 21:39
||- - zltigo   Цитата(ANV @ Jun 5 2007, 00:39) И какую ж...   Jun 4 2007, 22:28
|- - tag   Цитата(ANV @ Jun 4 2007, 18:29) Какая иде...   Jun 5 2007, 05:27
- - SasaVitebsk   Практически всё упомянули. И похоже парня совсем п...   Jun 4 2007, 19:51
- - sergeeff   Что-то у наших коллег вместо разумной аргументации...   Jun 5 2007, 05:55
- - SasaVitebsk   Всётаки считаю что протокол может усложнятся донел...   Jun 5 2007, 16:38


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 04:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01445 секунд с 7
ELECTRONIX ©2004-2016