Показать сообщение отдельно
Старый 11.06.2014, 17:40   #499
Earl_Vadim
Старожил Клуба
 
Аватар для Earl_Vadim
 
Имя: Вадим
Авто: XL 3.0 АКПП (S63) с 20.03.2008
Сообщений: 2,082
По умолчанию Re: Изменение настроек ETACS (CRC Calculator)

Цитата:
Сообщение от going Посмотреть сообщение
AlexH, я так понял алгоритм расчета CRC-XMODEM
полином 8408
Вот такой у меня код получился. .NET

Скрытый текст

string inputStr = "84103305181301086B00410540A611011D00003A004F72B0AC82A1016B008242E428214380802309";
StringBuilder sb = new StringBuilder();
sb.Append(inputStr);
// Выравнивание строки
for (int i = 0; i <= 0x200; i++)
{
if (sb.Length < i)
sb.Append(" ");
}
inputStr = sb.ToString();
byte[] str = Encoding.ASCII.GetBytes(inputStr);
int result = 65535;
int length = str.Length;
int CurrentByte = 0;
int StepByte = 0;

for (int i = 0; i < length; i++)
{
CurrentByte = (int)str[i];
result ^= CurrentByte;
StepByte = result;
for (int j = 0; j < 8; j++)
{
if ((StepByte & 1) == 1)
{
result = (StepByte >> 1) & 0xFFFF;
result ^= 0x8408;
StepByte = result;
}
else
{
StepByte = (StepByte >> 1) & 0xFFFF;
result = StepByte;
}
}
}
ushort res = ((ushort)~(short)result);
Console.WriteLine("Result : {0}", res.ToString("X"));
[свернуть]
Перебил я это в Дельфи... не получается CRC
Или код С я не правильно понял, или кормлю код неправильными строками.
Что я делаю не так?

Скрытый текст

PHP код:
VAR
    
CRCStrTmpS3string;
    
I2I3B   integer;
    
CRCResult word;
BEGIN
TmpS3
:= '<строка кодинга из kon>';
CRCResult:= $FFFF;
for 
I2 := 1 to 512 do if I2>Length(TmpS3then TmpS3:= TmpS3+' ';
for 
i2:=1 to Length(TmpS3) do begin
    CRCResult
:=CRCResult xor (ord(TmpS3[i2]));
    for 
b:=0 to 7 do begin
       
if (CRCResult and $1)<>0 then CRCResult:=(CRCResult shr 1) xor $8408
       
else CRCResult:=CRCResult shr 1;
    
end;
end;
CRCStr:= IntToHex(Hi(CRCResult),2)+IntToHex(Lo(CRCResult),2);
sListBox4.Items.Add(CRCStr);
END
[свернуть]
Добавлено через 3 часа 46 минут
Все.. разобрался.. вопрос снят

Добавлено через 5 часов 50 минут
Начиная с версии 2.10.0.55 ETACS Decoder поддерживает чтение/изменение/запись KON-файлов для ETACS'а и для моторника. Пользуйтесь на здоровье.

Добавлено через 5 часов 52 минуты
В следующей версии будет работа с CUF-файлами... ЗДЕСЬ

Последний раз редактировалось Earl_Vadim; 11.06.2014 в 18:00.
Earl_Vadim вне форума   Вверх Ответить с цитированием
Пользователь сказал cпасибо: