Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.31;
Скачать: CL | DM;

Вниз

Контр.сумма по модулю 2   Найти похожие ветки 

 
GanibalLector ©   (2006-12-12 21:05) [0]

Господа, имеется протокол обмена некоторого устройства, в котором … цитирую :"Последовательность проверки ПП представляет собой контрольную сумму по модулю 2"

На сколько я понимаю, по модулю 2 это исключающее ИЛИ . Или на языке Delphi обычный XOR.

Так вот, подглядел PortMon’ом работу старой утилиты, которую и переделываю.
Привожу пакеты с CRC.
1 пакет)
03 05 00 00 00 00 00 00 00           CRC=06

2 пакет)
0F 25 03 01 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 00 00 00 00      CRC= 28

Если с первым пакетом все понятно 3 xor 5 равен 6, то со вторым ну никак после «массового» xor не равно 28.

Какие будут предложения ???


 
Eraser ©   (2006-12-12 21:07) [1]

> [0] GanibalLector ©   (12.12.06 21:05)


> Какие будут предложения ???

для посчета контрольной суммы используется не XOR :)


 
GanibalLector ©   (2006-12-12 21:10) [2]

2 Eraser ©   (12.12.06 21:07) [1]
>для посчета контрольной суммы используется не XOR :)

А что ??? Я вот так считаю :


function CRC(Line:String):Byte;
 var I:Integer;
begin
 Result:=0;
 for I:=1 to Length(Line) do
  Result:=Result xor Ord(Line[I]);
end;


 
Чапаев ©   (2006-12-12 21:14) [3]

> то со вторым ну никак после «массового» xor не равно 28
Ну как же не равно, если именно равно?
F xor 25=2A
2A xor 3=29
29 xor 1=28
последующий 24-кратный xor с 20 результата не изменит.


 
Чапаев ©   (2006-12-12 21:15) [4]

> [2] GanibalLector ©   (12.12.06 21:10)
Фигня. :о) Каждый "байт" занимает два символа строки. Да и ещё и пробел между "байтами". А ты всё гамузом ксоришь.


 
GanibalLector ©   (2006-12-12 21:25) [5]

2 Чапаев © [3]
Угу...вроде все правильно .

> Каждый "байт" занимает два символа строки. Да и ещё и пробел между "байтами".

Не, я все правильно делал. Типа CRC(Chr($0F)+Chr($25)+...)


 
tesseract ©   (2006-12-12 21:29) [6]

не верь документации!!!!
я столько этих устройств поюзал :-) Всё может быть врено  только не указано КАКИЕ байты посылки в XOR не участвуют.


 
Чапаев ©   (2006-12-12 21:32) [7]

> Типа CRC(Chr($0F)+Chr($25)+...)
Извращенец. :о) Тогда уж CRC(#$F#$25)

Ещё можно вспомнить о том, что #$F <=> ^O
%-)


 
GanibalLector ©   (2006-12-12 21:40) [8]

Блин, прошу прощения, все работает.
Из серии заработался ;)

Всем спасибо !!!


 
GanibalLector ©   (2006-12-12 21:42) [9]

>Извращенец. :о) Тогда уж CRC(#$F#$25)

:) Это я в учебных целях проверки образования CRC.
На самом деле у меня array of Byte



Страницы: 1 вся ветка

Текущий архив: 2006.12.31;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.045 c
3-1161084645
safo
2006-10-17 15:30
2006.12.31
Как трассировать sql-запросы к ODBC?


2-1165732358
intel
2006-12-10 09:32
2006.12.31
Вывод подсказки


2-1165784910
tigrenok_o
2006-12-11 00:08
2006.12.31
Подскажите пожалуйста


15-1165958934
Alexander S
2006-12-13 00:28
2006.12.31
Поиск программистов для совместной работы над проектом


15-1165748844
Vistaman
2006-12-10 14:07
2006.12.31
Проблемы с Windows Vista