Sono in procinto di iniziare a implementare alcuni protocolli di comunicazione proprietaria nel software ma non sono sicuro da dove iniziare. È il tipo di lavoro che non ho mai fatto prima e cerco aiuto in termini di risorse per approcci migliori/consigliati.Protocolli di comunicazione di implementazione in C/C++
Userò c/C++ e sono libero di usare librerie d'uso (BSD/BOOST/Apache) ma nessuna GPL. Ho usato C++ in modo estensivo, quindi usare le caratteristiche del C++ non è un problema.
Lo stack di protocollo ha tre livelli ed è già completamente specificato e verificato formalmente. Quindi tutto ciò che devo fare è implementarlo e testarlo completamente nelle lingue specificate. Dovrebbe anche menzionare che il protocollo è molto semplice ma può essere eseguito su diversi dispositivi su un affidabile livello di trasporto fisico. Conosco eventi, input, output, effetti collaterali e il comportamento delle macchine dello stato del protocollo. Generalmente, viene ricevuto un interrupt per leggere il messaggio ricevuto dal livello fisico per leggerlo e inviarlo al dispositivo in attesa. Il dispositivo ricevente può elaborare e passare il messaggio di risposta al livello del protocollo da inviare sul livello fisico.
Qualsiasi aiuto con riferimenti/raccomandazioni sarà apprezzato. Sono disposto ad usare una lingua diversa, se non altro per aiutarmi a capire come implementarle, ma dovrò ricorrere alla lingua prescelta.
Aggiornamento: Un protocollo di esempio che desidero implementare è qualcosa come SNEP.
Non devo preoccuparmi della gestione delle connessioni. Possiamo supporre la connessione è già stabilire e il protocollo non è lo scambio di dati in cui i messaggi di protocollo sono già ben definite specifiche
Questa domanda è troppo generica, inizia a progettarla e implementarla e chiedi aiuto sui problemi specifici che trovi. – peoro
È un compito interessante. Quando progetti la tua implementazione, tieni presente che vuoi testare ogni layer indipendentemente con i test unitari. Per ottenere un aiuto più specifico, prova a specificare da dove inizi (manipolando i pin collegati a PIO ??) e che tipo di aiuto vuoi ottenere. – harper
Sono d'accordo con @peoro. Inoltre, non sono sicuro - dove stai sviluppando questo? In qualsiasi protocollo normale (su ethernet) il * OS * gestisce i livelli inferiori dello stack di rete. Utilizzi le API del sistema operativo su cui costruisci ciò che hai chiamato il livello del protocollo. Ma senza sapere dove intendi costruire questo e ciò che è specificamente problematico non posso davvero aiutarti. –