Crc 16 bit

di il
2 risposte

Crc 16 bit

Salve a tutti. Ho instaurato una comunicazione seriale in c con linux tra due pc tramite rs232. Ho implementato il calcolo del crc16 per un qualsiasi stringa. Adesso però non avendolo mai usato come controllo non so cosa devo fare a livello del programma che invia i dati(stringa),cioè il client, e a livello del programma del server cioè quello che riceve le stringhe. Qualcuno può aiutarmi? Grazie mille!

2 Risposte

  • Re: Crc 16 bit

    Beh, prima di tutto il sia il client che il server devono essere in grado di 'codificare' e 'decodificare' il messaggio, quindi entrambi dovrebbero usare , nel tuo caso, la tua implementazione del CRC16. Fai così: prima di mandare un messaggio, lo codifichi col CRC16, poi lo mandi, quando viene poi ricevuto dall'altro utente, quest' ultimo lo decodifca per vedere il messaggio in chiaro. Dato che nella trasmissione potrebbero esserci degli errori, devi fare in modo che client e server si 'accordino' sulla correttezza dei dati.
  • Re: Crc 16 bit

    Grazie per la risposta! Siccome è la prima volta che applico questa tecnica per rilevare gli errore ho ualche dubbio. Se non ho capito male il CRC mi calcola il resto della divisione tra il messaggio che devo inviare e un polinomio generatore conosciuto sia dal client sia dal server, in questo caso un numero di 2 byte siccome stiamo lavorando con un CRC16bit. Fatto ciò devo concatenare il resto, cioè il CRC calcolato alla fine del messaggio da inviare. Fatto ciò il ricevitore riceve il messaggio e quando calcola il CRC del messaggio ricevuto dovrebbe trovare 0 se non ci sono stati errori. Giusto?
Devi accedere o registrarti per scrivere nel forum
2 risposte