Avatar billede koppelgaard Praktikant
12. juni 2010 - 20:50 Der er 15 kommentarer og
1 løsning

Kan ikke skrive til serialport

I forlængelse af
http://www.eksperten.dk/spm/911869
som beskriver at et program, jeg er ved at skrive, låser/fryser efter nogle timers kørsel.
Programmet kan ikke bringes op at kører igen med mindre computeren genstartes.

Nu har jeg fundet grunden til, at programmet ikke kan bringes op og køre igen efter "fastfrysning":

Serialporten er ikke tilgængelig.
Følgende lille program

SerialPort port = new SerialPort("COM4", 9600, Parity.None, 8, StopBits.One);
port.Open();
port.Write("lasflk");
port.Close();

går ned i linien:
port.Write("lasflk");

Jeg tolker dette som at buffenen er fuld.
Korrekt ??

Dog hjælper hverken
port.DiscardInBuffer();
eller
port.DiscardOutBuffer();
på sagen.
Linien:
port.Write("lasflk");
kan stadig ikke køres.

Er der nogle gode forklaringer?

Michael
Avatar billede Syska Mester
12. juni 2010 - 21:19 #1
Du kan jo se om der mangler noget at blive skrevet eller læst:

port.BytesToRead
port.BytesToWrite

Der er også en masse events som måske kan gøre det hele nemmere.
Måske
port.DataReceived kan gøre det nemmere/bedre ... og måske undgå de fejl.
Ved dog ikke hvad den præcis trigger eventet på som de også skriver på MSDN ... i hvert fald ... når der kommer en eller nogen bytes.

Værd opmærksom på spawner en ny tråd.

mvh
Avatar billede koppelgaard Praktikant
12. juni 2010 - 21:39 #2
har prøvet begge.
0 bytes.
Ved ikke om det betyder noget, at det er et andet projekt end det der fik porten til at gå ned?

Hvad mener du med "spawner en ny tråd"

Bruger eventen port.DataReceived
Avatar billede Syska Mester
12. juni 2010 - 21:58 #3
den method DataReceived kalder, kører ikke i samme tråd som resten af programmet. Ved ikke om det kan skyldes fejlen.

Og nej, har ikke læst det andet spørgsmål, da der var alt for mange siders kode, derfor nogen ting måske allerede er skrevet der, men kan se du heller ikke har fået nogen svar der.

Har du været forbi google?

Lyder jo næsten som et hardware/software problem.

Er det en onboard serial port? eller en usb-to-serial ?
Avatar billede Syska Mester
12. juni 2010 - 21:58 #4
sagt på en anden måde ... jeg har delte erfaringer med usb2serial porte.
Avatar billede koppelgaard Praktikant
12. juni 2010 - 22:09 #5
Ja du har ret. Forfærdelig mange siders kode.
Jeg kan vist ikke forvente at nogen læser dem - suk

usb til RS485.

Det mærkelige er at det køre i flere timer inden at det går ned?
Nej jeg har ikke prøvet google.
Tak for hjælp indtil videre!
Jeg vender tilbage.


Tror jeg bruger resten af aftenen på Barnaby :-)
Avatar billede Syska Mester
12. juni 2010 - 22:23 #6
heheh ...

Før du prøver mange andre ting, så vil jeg kaste et blik på andre usb to serial adaptere ... eller måske en computer med en indbygget.

Men kommer porten ikke frem igen hvis du tager usb enheder ud og sætter den til igen?

For mig, lyder det som en defekt driver, som efter lang tid fejler, og jeg har ingen ide hvorfor ...

mvh
Avatar billede koppelgaard Praktikant
12. juni 2010 - 23:04 #7
Tak for tippet.
Dimsen står ude på mit arbejde.
Jeg kan kun tilgå den elektronisk herfra. Ikke trække den ud og sætte den i igen.
Men jeg kan da prøve at smutte forbi morgen.

Hvis det hjælper at trække den ud og sætte den i hvad kan man så konkluderer?
Avatar billede Syska Mester
12. juni 2010 - 23:08 #8
Jeg ville nok mene det er driveren som bruges til den der kan give problemerne. Tror ikke at enheden initialisere sig selv, hvis driveren fejler.

Men kan du se selve porte(dit device) i Device Manger (enhedshåndtering) ? hvis ja, kan du så ændre fra com4 til en anden ... og se om du kan åbne porten.
Avatar billede koppelgaard Praktikant
13. juni 2010 - 08:31 #9
Har prøvet et teminal som jeg normalt bruger med stor succes. Computeren har stadig ikke været genstartet. programmet går også ned når jeg forsøger at skrive til comporten.
Forsøgte herefter at låne porten. Omdøbte.
Kunne connecte men ikke skrive til porten. Programmet gik stadig ned på det nye portnavn.
Avatar billede Syska Mester
13. juni 2010 - 12:19 #10
låne porten ?
Avatar billede koppelgaard Praktikant
13. juni 2010 - 20:22 #11
Undskyld åbne. Jeg kunne omdøbe til com5 og åbne porten - men ikke skrive til den.

Tak for hjælp!
Jeg vil undersøge det med driveren.

Sender du et svar?
Avatar billede Syska Mester
13. juni 2010 - 23:31 #12
svar,

Men husk at holde mig opdated om det, hvis du finder fejlen.
Avatar billede koppelgaard Praktikant
14. juni 2010 - 08:58 #13
Du kan tro, jeg vil holde dig opdateret  - også hvis jeg ikke finder fejlen.
Lige nu er montago ved at se på mit første spørgsmål.
Du kan måske følge med ?

/Michael
Avatar billede koppelgaard Praktikant
14. juni 2010 - 11:50 #14
Vi har fundet en nyere driver til usb til RS485 dimsen.
Prøver dette i første omgang.

Michael
Avatar billede koppelgaard Praktikant
16. juni 2010 - 07:19 #15
Foreløbig går det godt med den nye driver - måske vi har klaret problemet. Jeg holder dig opdateret.

/M
Avatar billede Syska Mester
16. juni 2010 - 10:13 #16
Kunne være nice.

Så også det andet svar i din tidligere tråd, med at åbne og lukke porten ...

Men ... ville stadig mene at en driver opdate måske vil løse det, men måske den open/close hver time, også kan gøre så problemet med driveren ikke opstår, hvis den måske release hvad den nu har i brug af resourcer, så det også af den vej kommer til at virke.

mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester