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 CRCStr, TmpS3: string; I2, I3, B : integer; CRCResult : word; BEGIN TmpS3:= '<строка кодинга из kon>'; CRCResult:= $FFFF; for I2 := 1 to 512 do if I2>Length(TmpS3) then 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.
Не трогайте эту опцию, она для дизеля. При включении не работает ABS и ASC.
Перевёл у себя с Нормал на Высокая,при одинаковом нажатии на педаль газа увеличились обороты двигателя,очень даже не плохо.На низах крутит по резвее,до этого мне не нравилось,на низах еле крутит,на высоких оборотах начинает рвать,не комфортно. Расход увеличился где то на литр. Ни каких проблем с работой других систем в том числе ABS и ASC не заметил,всё работает, уже наездил после изменения порядка двадцати тысяч км.