|
|||||||||||
|
|
![]() |
CommView for WiFi consente di utilizzare due tipi di decoder personalizzati. Decoder semplice Se si implementa questo tipo di decoder, l'output corrispondente verrà visualizzato nella colonna aggiuntiva della scheda Pacchetti. Il decoder deve corrispondere a un file DLL a 32 bit di nome "Custom.dll" che esporti l'unica routine denominata "Decode." Il prototipo di questa routine è visualizzato in C e Pascal: extern "C" { void __stdcall Decode(unsigned char *PacketData, int PacketLen, char *Buffer, int BufferLen); } procedure Decode (PacketData: PChar; PacketLen: integer; Buffer: PChar; BufferLen: integer); stdcall; Il file DLL deve essere incluso nella cartella dell'applicazione CommView. All'avvio di CommView, il file "Custom.dll" viene cercato nella cartella dell'applicazione e quindi caricato nella memoria. Se viene individuata la voce "Decode", viene aggiunta la nuova colonna "Personalizzato" nell'elenco dei pacchetti. Quando viene acquisito un nuovo pacchetto, prima che venga visualizzato in CommView viene chiamata la routine "Decode" e il contenuto del pacchetto viene passato al file DLL. La routine "Decode" deve elaborare i dati dei pacchetti e copiare il risultato nella memoria buffer fornita. Il primo argomento corrisponde al puntatore ai dati del pacchetto, il secondo argomento è la lunghezza dei dati, il terzo argomento è il puntatore alla memoria buffer in cui devono essere copiati i risultati della decodifica e il quarto argomento corrisponde alle dimensioni del buffer (attualmente sempre 1024). La memoria buffer viene allocata e liberata da CommView, pertanto non provare a riallocarla o liberarla. Il risultato copiato nella memoria buffer verrà visualizzato come stringa nella colonna "Personalizzata". La routine deve essere sufficientemente veloce da gestire migliaia di pacchetti al secondo per non rallentare l'applicazione. Non dimenticare di utilizzare la convenzione di chiamata STDCALL. Sono disponibili due DLL che dimostrano un'operazione molto semplice: l'output della funzione "Decode" corrisponde al codice esadecimale dell'ultimo byte del pacchetto. Il decoder personalizzato può essere complesso fino al livello desiderato.
Decoder complesso Se si implementa questo tipo di decoder, l'output corrispondente verrà visualizzato come elemento aggiuntivo nella struttura dei decoder dei pacchetti. Per ulteriori informazioni sull'implementazione di questo tipo di decoder, scaricare il file seguente: http://www.tamos.com/products/commview/complex_decoder_c5.zip Questo tipo di decoder può essere scritto solo in Microsoft Visual C++ poiché è incorporato mediante le classi C++. Supporto tecnico Il nostro team del Supporto tecnico mette a disposizione la propria esperienza per i decoder personalizzati, tuttavia non può rispondere ai problemi di programmazione. |