Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Вниз

Контр.сумма по модулю 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.052 c
2-1166096952
goric
2006-12-14 14:49
2006.12.31
String в синтаксис языка


2-1165740873
Начинающий5
2006-12-10 11:54
2006.12.31
TEDIT


15-1165601755
Pok
2006-12-08 21:15
2006.12.31
Как написать на Delphi?


8-1146912258
Volfram
2006-05-06 14:44
2006.12.31
Проблема с DelphiX


15-1165783578
Алхимик
2006-12-10 23:46
2006.12.31
Программирование - искусство, работа или подвиг?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский