|
|
|
Контрольная сумма
|
|||
|---|---|---|---|
|
#18+
Получаю строку с данными от некоторого девайса. В конце строки прописана контрольная сумма. Как ее (CS) правильно вычислять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 17:23 |
|
||
|
Контрольная сумма
|
|||
|---|---|---|---|
|
#18+
Обычно КС - это сумма (младший байт/слово полученной суммы) значений всех быйт полученной строки (пакета/сообщения), иногда инвертированная . А вообще, уважающие себя девайсы должны иметь документированный протокол обмена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 18:10 |
|
||
|
Контрольная сумма
|
|||
|---|---|---|---|
|
#18+
Наиболее распространенные crc32, crc16. Контроль четности. crc считается по таблицам. Определись, что за метод у тебя, в инете про них много ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 18:24 |
|
||
|
Контрольная сумма
|
|||
|---|---|---|---|
|
#18+
Sdk дано, но в нем нифига не сказано о методе получения контрольных сумм, хотя сами значения CS есть. Resume: Короче, выходит, пользы от них я пока не вижу, а контроль над ошибками в переданных данных осуществлять не могу, по причине неизвестности метода вычисления оных:-(((((((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 19:15 |
|
||
|
Контрольная сумма
|
|||
|---|---|---|---|
|
#18+
Если контрольная сумма занимает 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); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 20:47 |
|
||
|
Контрольная сумма
|
|||
|---|---|---|---|
|
#18+
Опубликуй тестовый фрагмент данных и контрольную сумму к нему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 21:34 |
|
||
|
Контрольная сумма
|
|||
|---|---|---|---|
|
#18+
если это именно контрольная сумма, то для байта она вычисляется сложением по модулю 256, для двух по модулю 65536. Если всё же ЦРЦ, то нужно знать алгоритм. Иногда уроды в документации пишут просто ЦРЦ16 или ЦРЦ8, типа это стандартные полнимоны. в этом случае для ЦРЦ16 имеется ввиду ЦРЦ от модбуса. для црц 8 - ЛЦРЦ. 2 akg, табличное вычисление ЦРЦ делается исключительно для увиличения скорости вычисления. В реале ЦРЦ16 это всего навсего циклический проверочный код в 16ти битах. а полиномов мильон существует. всегда есть разработчик девайса, можно нужно вопрос задать. если алгоритм црц всё же не известен, то нужно просто забить на неё. без црц про программу можно даже не говорить. Я имею ввиду корректную программу. а если есть реальное SDK с описанием протокола обмена, то не может быть такого, что алгоритм не опубликован. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 23:14 |
|
||
|
Контрольная сумма
|
|||
|---|---|---|---|
|
#18+
Мурзилка12а если есть реальное SDK с описанием протокола обмена, то не может быть такого, что алгоритм не опубликован. Бывает, бывает. Но разроботчики, должны быть на связи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 09:52 |
|
||
|
Контрольная сумма
|
|||
|---|---|---|---|
|
#18+
За заботу спасибо:-) Разработчик оперативно отреагировал, написав, что CS ищется простым XOR'ом всех байтов строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 17:18 |
|
||
|
Контрольная сумма
|
|||
|---|---|---|---|
|
#18+
MefodyЗа заботу спасибо:-) Разработчик оперативно отреагировал, написав, что CS ищется простым XOR'ом всех байтов строки. во блин, в наш век, такую дебильную црц применяют. не удивлюсь, если до сих пор разрабатывают девайсы из расчёта исползования ЛПТ порта%) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 18:36 |
|
||
|
Контрольная сумма
|
|||
|---|---|---|---|
|
#18+
MefodyCS ищется простым XOR'ом всех байтов строки. Вот так злодей! Ну что-ж надо надеятся что коллизий не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 21:50 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=329&tid=2030263]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
382ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 676ms |

| 0 / 0 |
