Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

.NET e bluetooth

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

.NET e bluetooth

Postdi Ivan_J_147 » 13/01/11 17:38

Ciao a tutti.
Per esigenze di lavoro devo scrivere un progetto in .NET che acquisisca dati da un sensore a 100Hz.
In particolare ad ogni lettura il sensore deve restituire una stringa di 15 caratteri.
Ho creato il progetto utilizzando il controllo serial port, e attivando una lettura per volta con un pulsante ho verificato che tutto funziona perfettamente.
Il problema è quando attivo il timer di lettura.
Mi sono reso conto che l'evento DataReceived viene generato troppo lentamente, ovvero capita che quando vado a vedere quanti caratteri ho ricevuto mi ritrovo con un buffer di 30 caratteri, perchè nel frattempo il timer ha richiesto i dati ben 2 volte. Quale può essere il problema? So per certo che il sensore è in grado di reggere una frequenza anche di 200Hz.
Il sensore invia i dati in bluetooth, passando da una porta COM virtuale.
Grazie a chiunque mi darà una mano! ;)
Ivan_J_147
Utente Junior
 
Post: 86
Iscritto il: 04/09/06 15:32

Sponsor
 

Re: .NET e bluetooth

Postdi hydra » 14/01/11 08:32

La comunicazione seriale solitamente è di tipo master-slave, ossia il dispositivo master invia i comandi quindi aspetta la risposta, mentre il dispositivo slave rimane in ascolto e quando riceve un comando lo esegue e formula la risposta. Solitamente il dispositivo slave non è autonomo, quindi non invia dati di sua spontanea volontà. Può succedere a volte che il dispositivo abbia la capacità di inviare autonomanente i dati, da qui la necessità, lato pc, di avere un evento che scatta non appena si riceve un dato.
Nel tuo caso mi pare di aver capito che tu dai il comando di lettura e poi aspetti la risposta, quindi se il sensore lavora a 100Hz (100 volte al secondo, quindi una volta ogni 0.01 secondi) e se hai detto che arriva anche a 200Hz (0.005 secondi), puoi pensare di mettere in piedi nel timer un'architettura del tipo invio richiesta-attesa risposta-lettura risposta. Il timer ha una risoluzione di 1ms, quindi se il sensore ci sta dietro dovresti riuscire.
Avatar utente
hydra
Moderatore
 
Post: 7002
Iscritto il: 19/07/04 08:06
Località: Vallis Duplavis

Re: .NET e bluetooth

Postdi Ivan_J_147 » 03/02/11 11:57

Eccomi!
Credo di averci capito qualcosa...
Dicutendo col creatore del sensore ho capito che il tempo che trascorre fra la richiesta della stringa di dati e l'invio di quest'ultima è di circa 30 ms.
In parole più semplici, la frequenza di 200Hz se sono io a inviare il comando di lettura, va a farsi benedire...
Mi toccherà quindi sicuramente utilizzare la modalità broadcast del sensore, molto più veloce...
Grazie a Hydra d'avermi risposto..
Ciaociao
Ivan_J_147
Utente Junior
 
Post: 86
Iscritto il: 04/09/06 15:32


Torna a Programmazione


Topic correlati a ".NET e bluetooth":


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite