Главная страница
    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.46 MB
Время: 0.041 c
1-1163424580
DVM
2006-11-13 16:29
2006.12.31
Помогите с выбором предка для класса. Как сделать такое?


15-1165588186
sergey888
2006-12-08 17:29
2006.12.31
Прослушка мобильных


11-1142904743
Dosian
2006-03-21 04:32
2006.12.31
Странное отображение компонентов в KOL.


4-1155900236
Rentgen
2006-08-18 15:23
2006.12.31
как работать с реестром(ТРегистри) под другими правами?


15-1165939077
Cyrax
2006-12-12 18:57
2006.12.31
Как можно заюзать хидер, не пользуясь директивой #include ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский