Adresse: 50 - Byte 0 - Eröffnungsbyte 0xA5 Hexadezimal
Adresse: 51 - Byte 1 - Header Byte
Adresse: 52 - Byte 2 - Sender-Adresse
Adresse: 53 - Byte 3 - Empfänger-Adresse
Adresse: 54 - Byte 4 - Kommando Byte
Adresse: 55 - Byte 5 - Subkommando Byte
Adresse: 56...61 - Byte 6 bis 21 - Parameter / Rückgabewert
Adresse: 62...63 - Byte 22/23 - CRC Checksumme
A550000001000000000000000000000000000000000069EF
Payload Definition sowie CRC Berechnung in C
Implementation of Payload in C
typedef union _PAYLOAD{
int data_i[4];
char data_c[16];
short data_s[8];
float data_f[4];
unsigned long long data_ull[2];
double data_d[2];
}PAYLOAD;
CRC polynom
𝑥𝑥16 + 𝑥𝑥15 + 𝑥𝑥2 + 1 (0xA001)
CRC calculation implementation (C implementation)
unsigned short crc16(unsigned short crc, unsigned char a)
{
int i=0;
crc&=0x0000FFFF;
crc^=a;
for(i=0;i<8;++i)
{
if(crc&1)
crc=(crc>>1)^0xA001;
else
crc=(crc>>1);
}
return crc;
}
CRC Frame enryption (C implementation – calling „crc16“ function)
#define VAC_FRAME_SIZE 24
#define CRC_16_SIZE 2
unsigned short crc_calc_16(char *buffer)
{
int i=0;
unsigned short crc_next=0xFFFF;
for(i=0;i<VAC_FRAME_SIZE-CRC_16_SIZE;i++)
{
crc_next=crc16(crc_next, buffer[i]);
}
return crc_next;
}
Hex ist nur eine Darstellungsform, Char ist eine andere, der Byteinhalt ist der selbe.Danke habe ich jetzt auch so gemacht die Datentypen hatte ich gar nicht auf dem schirm
Jetzt muss ich nur noch herausfinden wie ich den Frame jetzt aufsplitten kann und das mit der Checksumme muss ich auch noch herausfinden
Der Frame wird als Hex zurückgegeben wenn ich das richtig verstehe
Was willst Du denn herausfinden? Das hier?Wie findet man das denn raus?
Die Hex-Darstellung wird gerne in Dokumentationen verwendet, weil sie eindeutig, platzsparend und gut lesbar/schreibbar ist. Nicht alle BitMuster lassen sich als z.B. ASCII-Zeichen darstellen/deuten.Der Frame wird als Hex zurückgegeben wenn ich das richtig verstehe
Das ging auf die Frage von Peter zurück bezüglich ob der Payload in Klartext ist oder nicht.Was willst Du denn herausfinden? Das hier?
Ich gerate nicht in PanikDie Hex-Darstellung wird gerne in Dokumentationen verwendet, weil sie eindeutig, platzsparend und gut lesbar/schreibbar ist. Nicht alle BitMuster lassen sich als z.B. ASCII-Zeichen darstellen/deuten.
Warum geraten immer alle in Panik, wenn es um das Hex-Format geht (so, wie ich immer in Panik gerate, wenn es um das Oct-Format geht ;o) ???
Wenn ich die Kommandos in Hex im ganzen übergeben könnte wäre ich frohdann müsste ich nix aufsplitten.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?