Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Контрольная сумма / 12 сообщений из 12, страница 1 из 1
16.10.2006, 17:23
    #34058007
Mefody
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрольная сумма
Получаю строку с данными от некоторого девайса.
В конце строки прописана контрольная сумма.
Как ее (CS) правильно вычислять?
...
Рейтинг: 0 / 0
16.10.2006, 18:10
    #34058193
Dmitrii K.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрольная сумма
Обычно КС - это сумма (младший байт/слово полученной суммы) значений всех быйт полученной строки (пакета/сообщения), иногда инвертированная .
А вообще, уважающие себя девайсы должны иметь документированный протокол обмена.
...
Рейтинг: 0 / 0
16.10.2006, 18:24
    #34058248
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрольная сумма
Наиболее распространенные crc32, crc16. Контроль четности.
crc считается по таблицам. Определись, что за метод у тебя, в инете про них много
...
Рейтинг: 0 / 0
16.10.2006, 19:15
    #34058400
Mefody
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрольная сумма
Sdk дано, но в нем нифига не сказано о методе получения контрольных сумм, хотя сами значения CS есть.
Resume:
Короче, выходит, пользы от них я пока не вижу, а контроль над ошибками в переданных данных осуществлять не могу, по причине неизвестности метода вычисления оных:-((((((((
...
Рейтинг: 0 / 0
16.10.2006, 20:47
    #34058583
shiva261
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрольная сумма
Если контрольная сумма занимает 1 байт, то скорее всего это LRC получается
операций XOR между байтами блока.


BYTE calcLRC(BYTE* src, int len)
{
int i;
BYTE LRC=0;

for(i=0; i<len; i++)
LRC=(str ^LRC);
return(LRC);
}
...
Рейтинг: 0 / 0
16.10.2006, 21:34
    #34058634
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрольная сумма
Опубликуй тестовый фрагмент данных и контрольную сумму к нему.
...
Рейтинг: 0 / 0
16.10.2006, 23:14
    #34058706
Мурзилка12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрольная сумма
если это именно контрольная сумма, то для байта она вычисляется сложением по модулю 256, для двух по модулю 65536.

Если всё же ЦРЦ, то нужно знать алгоритм. Иногда уроды в документации пишут просто ЦРЦ16 или ЦРЦ8, типа это стандартные полнимоны.
в этом случае для ЦРЦ16 имеется ввиду ЦРЦ от модбуса. для црц 8 - ЛЦРЦ.
2 akg, табличное вычисление ЦРЦ делается исключительно для увиличения скорости вычисления. В реале ЦРЦ16 это всего навсего циклический проверочный код в 16ти битах. а полиномов мильон существует.

всегда есть разработчик девайса, можно нужно вопрос задать.
если алгоритм црц всё же не известен, то нужно просто забить на неё. без црц про программу можно даже не говорить. Я имею ввиду корректную программу.

а если есть реальное SDK с описанием протокола обмена, то не может быть такого, что алгоритм не опубликован.
...
Рейтинг: 0 / 0
17.10.2006, 09:52
    #34059055
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрольная сумма
Мурзилка12а если есть реальное SDK с описанием протокола обмена, то не может быть такого, что алгоритм не опубликован.

Бывает, бывает. Но разроботчики, должны быть на связи.
...
Рейтинг: 0 / 0
17.10.2006, 17:18
    #34061063
Mefody
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрольная сумма
За заботу спасибо:-)
Разработчик оперативно отреагировал, написав, что CS ищется простым XOR'ом всех байтов строки.
...
Рейтинг: 0 / 0
17.10.2006, 18:36
    #34061471
Мурзилка12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрольная сумма
MefodyЗа заботу спасибо:-)
Разработчик оперативно отреагировал, написав, что CS ищется простым XOR'ом всех байтов строки.

во блин, в наш век, такую дебильную црц применяют.
не удивлюсь, если до сих пор разрабатывают девайсы из расчёта исползования ЛПТ порта%)
...
Рейтинг: 0 / 0
17.10.2006, 21:50
    #34061881
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрольная сумма
MefodyCS ищется простым XOR'ом всех байтов строки.

Вот так злодей! Ну что-ж надо надеятся что коллизий не будет.
...
Рейтинг: 0 / 0
18.10.2006, 12:57
    #34063236
Mefody
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрольная сумма
Смейтесь, смейтесь:-)
Девайс - то на COM порт цепляется:-)!!!
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Контрольная сумма / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]