20.09.2016, 08:32
Hallo,
ich habe hier ein kurzes Bsp. in C++, wie man für ein bestimmtes Gerät eine Prüfsumme berechnen muss
(Bei der Prüfsumme handelt es sich um das 256-Komplement des Modulo-256-
Divisionsrests über die ASCII-Werte aller Zeichen im String, die Werte für ETX und die
Prüfsumme selbst werden nicht addiert.):
Hier ist ein Bsp., wo die Prüfsumme verwendet wird:
String: {STX}z?xx{ETX}
Beispiel:
{STX}
z Busadresse des Geräts
? Aufforderung zu senden
xx Prüfsumme
{ETX}
z = 1
xx = 8E
Kann mir jemand sagen, wie die Prüfsummenbestimmung in LabVIEW aussieht?
Gruß Markus
ich habe hier ein kurzes Bsp. in C++, wie man für ein bestimmtes Gerät eine Prüfsumme berechnen muss
(Bei der Prüfsumme handelt es sich um das 256-Komplement des Modulo-256-
Divisionsrests über die ASCII-Werte aller Zeichen im String, die Werte für ETX und die
Prüfsumme selbst werden nicht addiert.):
Code:
Programmiersprache: C++
const char ASCII[ ]= "0123456789ABCDEF";
char *Pruefsumme (char *buffer)
{
static char Hex[10];
static int a1, a2;
register unsigned int i;
int sum;
sum = 256;
for ( i=0 ; i<strlen(buffer) ; i++)
{
sum-=buffer[i];
if ( sum<0 )
sum+= 256;
}
a1 = (sum & 0xF0) >> 4;
a2 = sum & 0x0F;
Hex[0] = ASCII[a1];
Hex[1] = ASCII[a2];
Hex[2] = 0;
return(Hex);
}
Hier ist ein Bsp., wo die Prüfsumme verwendet wird:
String: {STX}z?xx{ETX}
Beispiel:
{STX}
z Busadresse des Geräts
? Aufforderung zu senden
xx Prüfsumme
{ETX}
z = 1
xx = 8E
Kann mir jemand sagen, wie die Prüfsummenbestimmung in LabVIEW aussieht?
Gruß Markus