Tags:
delphi
Hej,
Jeg har alvorligt brug for et godt råd.
Jeg har kæmpet i næsten 3 uger med et for mig uforståeligt problem.
Jeg skal have læst nogle data fra en comport, max ca. 10 MB og de fleste gange mindre.
Jeg sætter en DCB op og sætter CommTimout og begynder at hælde ind fra COMporten.
Nogle gange, eller rettere på nogle maskiner, fungerer det fint, og på andre ikke.
Problemet opstår kun ved større datamængder.
Den oprindelige service, der benyttede ASync Pro, fejler på driftserveren, igen kun ved større datamængder.
Det besynderlige er, at den fejler ret hurtigt, under de første 10 KB
Jeg har prøvet både at benytte Delphis TDCB og at gå direkte ned i kernel32.dll. Det gør ingen forskel.
2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
du kan ikke bare benytte en TFilestream med filnavn 'COMx' ?
0
Tak for dit indlæg
Jeg kan ikke lige se, hvad det skulle hjælpe, for TFileStream laver i bund og grund det samme som jeg (CreateFile + ReadFile).
Jeg kunne så selvfølgelig tage det handle, der ligger i TFileStream og bruge til at kalde SetCommState og SetCommTimeouts, men da et jeg er det samme, som kommer tilbage fra CreateFile(), gør det nok ikke den store forskel.
Jeg tror snarere problemet ligger i opsætningen af COM-porten.
Jeg har i mellemtiden fundet ud af, at det fungerer på et rent Intel chipset, men ikke på andre ????