uint8_t trameRecue[] = {
0x02, // ID
0x02, // STS
0x01, 0xEA, // WaveForm 0 big endian
0x00, 0x00, // WaveForm 1 big endian
0x00, 0x00, // WaveForm 2 big endian
0x00, 0x00, // WaveForm 3 big endian
0x00, 0x00, // WaveForm 4 big endian
0xFF, 0x26, 0x00, 0x00, 0x03, 0xB6, // Slow Data
0x33 // CHK
};
struct __attribute__((packed)) t_frame {
uint8_t id;
uint8_t sts;
uint16_t waweFormData[5]; // attention BIG ENDIAN à l'origine, il faut permuter
uint8_t slowData[6];
uint8_t chk;
};
t_frame uneFrame;
void permutationWaweFormData(uint8_t * trame) {
byte temp;
for (byte i = 2; i < 11; i += 2) {
temp = trame[i];
trame[i] = trame[i + 1];
trame[i + 1] = temp;
}
}
void imprimeTrame(t_frame & laTrame) {
Serial.print(F("id: 0x")); Serial.println(laTrame.id, HEX);
Serial.print(F("sts: 0x")); Serial.println(laTrame.sts, HEX);
Serial.print(F("waweFormData: "));
for (byte i = 0; i < 5; i++) {
Serial.print(F("0x"));
Serial.print(laTrame. waweFormData[i], HEX);
Serial.write(' ');
}
Serial.println();
Serial.print(F("slowData: "));
for (byte i = 0; i < 6; i++) {
Serial.print(F("0x"));
Serial.print(laTrame. slowData[i], HEX);
Serial.write(' ');
}
Serial.println();
Serial.print(F("chk: 0x")); Serial.println(laTrame. chk, HEX);
}
void setup() {
Serial.begin(115200);
permutationWaweFormData(trameRecue);
memcpy(&uneFrame, trameRecue, sizeof uneFrame);
imprimeTrame(uneFrame);
}
void loop() {}