Jeg er ved at lave kommunikation til en seriel enhed. Det virker som også helt fint lige indtil jeg kom til at skulle lave crc tjek på kommunikationen..
Jeg har denne HEX string: "66 31 32 33 34 35 36 37" og jeg har CRC koden som den skal være: "2A87"
jeg kan bare ikke få min kode til at generere den rigtige.. :-(
funktionen:
public int crc16(string Buffer, int Initial) { int result; int i; int j; int d; int b; result = Initial; for (i = 2; i < Buffer.Length; i++) { d = (int)(Buffer[i]); for (j = 0; j <= 7; j++) { b = result & 1; result = result >> 1; if ((d & 1) != 0) { result = result | 0x8000; } if (b != 0) { result = result ^ 0xA001; } d = d >> 1; } } return result; }
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Jeg har den gamle software(gammelt delphi program) hvor crc virker. Så jeg har bare brugt portmon til at se hvad programmet sender når den affyrer den samme kommando..
Jeg ville i hvert fald først finde ud af om den CRC kode er korrekt. Dvs finde andre online eller offline tools så vi er sikre på hvad vi skal gå efter.
Jeg ville ikke føle mig sikker på at lave en implementering kun et andet program kan give ...
Det virker også lidt mystisk at jeg kun kan få det gamle program til at give det resultat... men det virker. og jeg kan desværre ikke ændre på koden i hardwaren..
Hej Jeg holder lige ferie en uges tid... jeg finder lige koden frem når jeg er tilbage :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.