Формула контрольной суммы в идентификаторе контакта Адемко рассчитывается по формуле:
S = HEX Контрольная сумма, состоящая из одной цифры.
(сумма всех цифр сообщения + S) MOD 15 = 0
и если значение равно 10, контрольная сумма равна 0.
Официальная спецификация Contact ID здесь: http://li0r.files.wordpress.com/2012/07/sia-dc-05-1999-09_contact_id.pdf
Итак, используя 5522 18 1602 00 000 0870
в качестве примера:
LET C = checksum
5+5+2+2+1+8+1+6+2=32
(32+S) modulo 15 is congruent to 0
Затем нам нужно ближайшее кратное 15, идущее выше 32, что будет 45.
45-32=13
Давайте проверим это.
45 modulo 15 is congruent to 0
Однако это правильно, так как Contact ID имеет 16 цифр, а у вас 19. Я подозреваю, что ваша панель использует другую запатентованную реализацию Contact ID. Если вы опубликуете марку / модель панели, из которой она получена, я смогу объяснить вам кое-что дальше.
Надеюсь, это ответит на ваш вопрос!
1024 * для -Alex- *
P.S .: Для расчета мода используйте знак процента в Google
P.P.S: Документ, который описывает Contact ID, на самом деле: DC-05-1999.09 документ, на который вы ссылались, фактически является спецификацией протокола связи компьютерного интерфейса.