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.
Således ser kodestumpen ud jeg læser med:
ret_val = ReadFile( m_porthandle, buf, *Len + 3, &bytes_read, 0 );
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?
På forhånd tak!