Ciao a tutti!
Non sono molto pratico di comunicazione seriale, ma sto cercando di far comunicare il mio Arduino con un VB.net inviando un pacchetto di 7 Byte, divisi in SOH | Data1 | Data2 | Data3 | Data4 | CRC | ETX.
Il problema sta nella verifica CRC8, che implementat, lato Arduino, usando del codice trovato qua sul forum (in quanto avendo appena inziato con arduino e non ricordando più niente di C, non sarei capace di scrivere da solo) , ma che non riesco ad implementare in VB proprio per la mia ignoranza in C.
Qualcuno è in grado di fare una conversione C/Arduino -> VB?
//CRC-8 - algoritmo basato sulle formule di CRC-8 di Dallas/Maxim
//codice pubblicato sotto licenza GNU GPL 3.0
byte CRC8(const byte *data, byte len) {
byte crc = 0x00;
while (len--) {
byte extract = *data++;
for (byte tempI = 8; tempI; tempI--) {
byte sum = (crc ^ extract) & 0x01;
crc >>= 1;
if (sum) {
crc ^= 0x8C;
}
extract >>= 1;
}
}
return crc;
}
Lato VB, ho un array di stringhe in cui è conservato il contenuto di Data1, Data2, Data3 e Data4, che vorrei utilizzare con questa funzione (infatti la variabile "len" nel codice arduino, potrei ricavarla direttamente dalla proprietà Lenght dell'array). Questo l'array:
Dim tempArray As String() = New String(3) {bytes(1), bytes(2), bytes(3), bytes(4)}
Grazie a tutti in anticipo!