Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int dataSize = 10; // Dimensione dell'array di dati
- // Funzione per calcolare il checksum (somma modulo 256)
- uint8_t calculateChecksum(const uint8_t *data, size_t length) {
- uint8_t checksum = 0;
- for (size_t i = 0; i < length; i++) {
- checksum += data[i];
- }
- return checksum;
- }
- // Funzione per verificare il checksum
- bool verifyChecksum(const uint8_t *data, size_t length, uint8_t receivedChecksum) {
- uint8_t calculatedChecksum = calculateChecksum(data, length);
- return calculatedChecksum == receivedChecksum;
- }
- void setup() {
- Serial.begin(9600);
- // Esempio di dati
- uint8_t data[dataSize] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
- // Calcola il checksum
- uint8_t checksum = calculateChecksum(data, dataSize);
- Serial.print("Checksum calcolato: ");
- Serial.println(checksum, HEX); // Visualizza il checksum in esadecimale
- // Verifica il checksum
- bool isValid = verifyChecksum(data, dataSize, checksum);
- if (isValid) {
- Serial.println("Il checksum è valido.");
- } else {
- Serial.println("Il checksum è invalido.");
- }
- // Simula un errore nei dati
- data[2] = 99; // Cambia il terzo elemento
- // Verifica nuovamente il checksum
- isValid = verifyChecksum(data, dataSize, checksum);
- if (isValid) {
- Serial.println("Il checksum è valido (dopo la modifica).");
- } else {
- Serial.println("Il checksum è invalido (dopo la modifica).");
- }
- }
- void loop() {
- // Ciclo vuoto
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement