15. august 2007 - 14:23Der er
4 kommentarer og 1 løsning
ReadFile - bytesread ikke samme som længde??
Efter en del fejlsøgning er har jeg fundet frem til at der opstår en fejl når jeg læser fra comporten, nærmere bestemt ReadFile funktionen. Programmet er i korte træk som følger: En grafisk applikation skal hente data fra noget eksternt hardware gennem en comport. Dette går godt ca. hver anden gang. Men nogen gange opstår følgende problem:
bytes_read er ikke samme størrelse som Len (ca. 7-10 mindre). I næste læsning er bytes_read helt håbløs, dvs. 0, og det der står i bufferen er garbage.
Ved at sniffe på comporten kan jeg se at det der bliver sendt fra det eksterne hardware er helt korrekt. Men at der ikke bliver sendt noget ack tilbage, hvilket jo er helt rigtig, da det kode der er modtaget i bufferen ikke er acceptabelt.
Jeg vil helst undgå at skulle til at sende det samme kode igen fra det eksterne hardware, da dette knapt nok er muligt at ændre i, som det er nu.
Er der nogen der har erfaringer med ReadFile, og hvad der evt. kan gå galt for mit software?
buf og Len er naturligvis tilpasset hianden. Hvis jeg læser igen, er der ikke noget i bufferen, men det er ligesom der bare er gået noget data tabt i overførslen. Muligvis er bufferen til comporten ikke hurtig nok? Men får på intet tidspunkt nogen fejlmeddelse fra DWORD GetLastError(VOID) , hvilket jeg ikke helt forstår. Jeg prøver mig nu med en ny udgave hvor jeg kun læser 1 byte af gangen, for at se om det ændrer noget - andet end hastigheden:(
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.