[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Если Вы действительно можете формировать ЛЮБЫЕ входные посылки, сделайте так:
1. Начните со всех нулей, получите 16-й байт.
2. Добавляйте по единице КАЖДОГО разряда (1,2,4,8) в первом после команды байте, получите еще 4 значения 16-го байта.
3. Поставьте первый после команды байт в 0 и повторяйте п.2 с каждым следующим байтом, выясните вес вклада - зависим ли он от номера байта или только от битовой позиции.
4. Полезно получить также и значение 16-го байта при заведомо некорректных данных (т.е. что будет при 15-ти нулевых байтах)
Такой подход даст Вам механизм формирования веса, а инкрементный метод позволит перейти от частного к общему (выяснили весА - увеличивайте каждый байт на 1 и смотрите, как меняется 16-й байт). Скорее всего, применен один из тысяч "стандартных" способов продольно-поперечной коррекции одинарных и обнаружения двойных ошибок. Учитывайте также, что Ваши числа представлены не младшим/старшим полубайтами, как Вы решили, а байтами - 7 бит данных и один бит нечетности.
E-mail: info@telesys.ru