Søren Hansen wrote:
> On Mon, 10 May 2004 22:27:09 +0200, Martin Holm Pedersen wrote:
>> Jeg har også forsøgt mig med "select" der
>> kan sætte timeout op. Men af en eller anden mærkelig grund modtager jeg
>> kun 8 eller i bedste fald 16 karakterer på den måde, selvom min buffer er
>> 255 lang.. Håber nogen kan hjælpe.
>
> Har du en anden buffer, eller er det buf, som kun er på 25 bytes, vi
> snakker om?
>
> Jeg er ikke helt sikker på, hvad problemet er.. Er du helt sikker på, at
> der ikke kan gå to sekunder uden, der er data til rådighed?
>
>
>> pSerPort->tv.tv_usec=TIMEOUT;
>
> Hvad gør du her? Hvad er TIMEOUT?
Tak for svaret.
Problemet var og er sådan set stadig at jeg gerne vil teste om der er
forbindelse til en slave på vores serielle bus. Det skulle så gøres med en
timeout som skulle ske ved TIMEOUT sekunder uden data på porten. Men VTIME
og TIME er afhængige af hinanden så det ikke umiddelbart kan lade sig gøre.
Men jeg har fundet en løsning. Jeg fandt ud af at hvis jeg bruger select til
at finde ud af om der er data på porten og åbnede og lukkede porten hver
eneste gang jeg skriver til den bliver det stabilt. Det er nok ikke den
mest elegante løsning. Men det virker..hver gang.
Der er lidt med hvor
hurtigt det kan gå pga. det ekstra arbejde hver gang der skal skrives. Jeg
åbner og lukker porten for hver karakter. Det skyldes at jeg skal tvinge
pariteten til en bestemt setting [Even/Odd] hver gang, idet vi tester på
den i den anden ende. Addressebit.. Men nu vil jeg så godt prøve at finde
ud af hvor lang tid det egentlig tager at sende mine data ud på sub-second
niveau. Det virker ikke til det er muligt med time.h..
- Martin