Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Come leggo un byte alla volta da serialPort?
Forum - C# / VB.NET - Come leggo un byte alla volta da serialPort? - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6404
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 18:15
Lunedì, 02/08/2010
Testo quotato

Postato originariamente da uelfox:

Ma la velocità nn posso diminuirla!!! Devo restare alla velocità di 115.2, perchè i dati dietro all'interfaccia viaggiano a 95kbps.



Allora ho l'impressione che dovrai provare con un linguaggio più adatto (il C/C++) e, probabilmente, con più thread.

Prova anche ad impostare un valore maggiore di 1 per ReceivedBytesThreshold in modo da migliorare l'efficienza, a causa di una minore chiamata di interrupt.

Ultima modifica effettuata da nessuno il 02/08/2010 alle 18:23


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
uelfox (Normal User)
Rookie


Messaggi: 33
Iscritto: 25/01/2010

Segnala al moderatore
Postato alle 0:28
Martedì, 03/08/2010
Per farti capire,ho provato ora a leggere ad ogni tick, quello che trovo in seriale, con il comando: serialport.ReadExisting() e questo è quello che mi arriva:

Codice sorgente - presumibilmente Plain Text

  1. cosaleggo="2B0 46 0C 00 0A 00 00 00 00 \r\n6C1 10 3A C0 00 37 03 10 1A \r\n2C1 30 00 02 02 00 00 00 00 \r\n6C1 21 00 1B 00 5B 00 66 00 \r\n6C1 22 53 00 5F 00 64 00 6D \r\n6C1 23 00 46 00 4D 00 31 00 \r\n6C1 24 1B 00 5B 00 66 00 53 \r\n6C1 25 00 5F 00 67 00 6D 00 \r\n6C1 26 20 00 20 00 44 00 45 \r\n501 61 00 42 16 01 00 40 01 \r\n6C1 27 00 45 00 4A 00 41 00 \r\n6C1 28 59 00 20 00 00 00 00 \r\n506 16 00 42 16 81 00 02 00 \r\n501 61 00 42 16 01 00 40 01 \r\n46C 41 00 \r\n691 41 00 60 11 02 00 20 08 \r\n"



Così facendo il buffer nn si carica eccessivamente, ma ora ho un'altro problema!

Della stringa sopra riportata, dovrei estrarre, una o più sottostringhe che iniziano con i caratteri "6C1" e continuare fino al \r\n. So però che questa sottostringa è sempre della stessa lunghezza 32 caratteri, compresi 6C1 e \r\n.
Come potrei fare?


PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo