Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Küsimus vb.net spetsidele RS232 kohta märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
ToivoLep
Kreisi kasutaja

liitunud: 18.05.2010



Autoriseeritud ID-kaardiga

sõnum 25.01.2019 12:26:55 Küsimus vb.net spetsidele RS232 kohta vasta tsitaadiga

Tere,

Olukord millega ei ole veel kokku puutunud. Sõnumi struktuur selline:

ENQ>
<ACK
STX> jutt
<ACK
STX> jutt
<ACK
STX> jutt
<ACK
STX> jutt
<ACK
STX> jutt
<ACK
>EOT

Kasutasin SerialPort.DataReceived eventi mis mõistagi hakkab iga kord pihta kui midagi kohale jõuab. Hetkel katseeksitusmeetodil kirjutasin, et alati STX ja ENQ algusega sõnumitele vastatakse ACK. Readexisting uuendab invokega texboxi ja vähemalt näen mis kohale on jõudnud.

Kuidas oleks selline olukord kõige mõistlikum lahendada? Kuna ilmselgelt ei vastata ACK õigel hetkel siis saan iga "jutu" topelt. Õige see ei ole aga samas on korrapärasus olemas, vähemalt hetkel. Mõtlesin äkki tekstikasti asemel puhvrisse kirjutada ja kogu sõnumi lõpus (alati üks sümbol) töötlus teha, puhver tühjaks ja uuele tiirule?

Või on mingi põnevam variant mida noob näha ei suuda?
Kommentaarid: 63 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum
Supiplex
HV veteran
Supiplex

liitunud: 11.12.2002




sõnum 25.01.2019 13:34:14 vasta tsitaadiga

tsitaat:
Mõtlesin äkki tekstikasti asemel puhvrisse kirjutada ja kogu sõnumi lõpus (alati üks sümbol) töötlus teha, puhver tühjaks ja uuele tiirule?


Ma VB.net-ist ei tea midagi, aga asünkroonselt sissetulevat baidijada üldiselt nii töödeldakse. St sul on vaja sissetulevat striimi puhvrisse kopeerida ja sealt otsida, kas oodatud pakett on lõpuni kohale jõudnud või mitte.

Boonusena tuleb arvestada, et serialis lähevad vahel harva baidid kaotsi või korrumpeeruvad. Tolle probleemi vastu aitab, kui ehitada paketi küpsemise timeout või arvestada, et uus pakett võib hakata sisse jooksma enne, kui eelmise lõpp on korrektselt tuvastatud.

_________________
The young lady had an unusual list,
Linked in part to a structural weakness.
She set no preconditions.
Kommentaarid: 38 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 34
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Küsimus vb.net spetsidele RS232 kohta
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.