powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Контрольная сумма
12 сообщений из 12, страница 1 из 1
Контрольная сумма
    #34058007
Фотография Mefody
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получаю строку с данными от некоторого девайса.
В конце строки прописана контрольная сумма.
Как ее (CS) правильно вычислять?
...
Рейтинг: 0 / 0
Контрольная сумма
    #34058193
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно КС - это сумма (младший байт/слово полученной суммы) значений всех быйт полученной строки (пакета/сообщения), иногда инвертированная .
А вообще, уважающие себя девайсы должны иметь документированный протокол обмена.
...
Рейтинг: 0 / 0
Контрольная сумма
    #34058248
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наиболее распространенные crc32, crc16. Контроль четности.
crc считается по таблицам. Определись, что за метод у тебя, в инете про них много
...
Рейтинг: 0 / 0
Контрольная сумма
    #34058400
Фотография Mefody
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sdk дано, но в нем нифига не сказано о методе получения контрольных сумм, хотя сами значения CS есть.
Resume:
Короче, выходит, пользы от них я пока не вижу, а контроль над ошибками в переданных данных осуществлять не могу, по причине неизвестности метода вычисления оных:-((((((((
...
Рейтинг: 0 / 0
Контрольная сумма
    #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
Контрольная сумма
    #34058634
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опубликуй тестовый фрагмент данных и контрольную сумму к нему.
...
Рейтинг: 0 / 0
Контрольная сумма
    #34058706
Мурзилка12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если это именно контрольная сумма, то для байта она вычисляется сложением по модулю 256, для двух по модулю 65536.

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

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

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

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

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

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


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