🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.sys.palmtop
2 messages
2 total messages Started by Piotr Ziemian (Automex) Sun, 24 Apr 2005 00:11
[PCC] ReadFile zjada zera !
#104
Author: Piotr Ziemian (Automex)
Date: Sun, 24 Apr 2005 00:11
51 lines
2680 bytes
Witam!

Z góry przepraszam, że post ten idzie na kilka grup, ale szukam w możliwie
szerokim gronie osoby, która mogłaby rzucić trochę światła na mój problem
dotyczący komunikacji poprzez łącze szeregowe.
Przy pomocy funkcji API:
<CODE>
BOOL Success = (ReadFile(FHandle, Buffer, Count, &BytesTrans, NULL) != 0);
</CODE>
odczytuję sobie dane z RS'a.
Wszystko jest fajnie. Tylko denerwuje mnie jedna rzecz. Dlaczego po
pierwszym uruchomieniu transmisji ReadFile "zjada" zera w odbieranej
odpowiedzi ? Kolejna próba uruchomienia transmisji (przy pomocy przycisku w
programie) juz działa dobrze. Co takiego może być nie tak ? Aby było
ciekawiej, to program identycznie zachowuje się na emulatorze jak i na
normalnym pocket'cie (Acer n30).
Pierwsze uruchomienie transmisji skutkuje logiem:
<LOG>
>> 0314e9
<< 08140204030205d4
>> 0315e8
<< 1315303430323934a5 Nie udało się odczytać całej ramki !
>> 051d40207e
<< 231dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
>> 0e3105812bfd1fffe000ffffff18
<< 0a30053c6025 Nie udało się odczytać całej ramki !
</LOG>

Kolejne (bez wychodzenia z programu):
<LOG>
>> 0314e9
<< 08140204030205d4
>> 0315e8
<< 131530343032393400000000000000000000a5
>> 051d40207e
<< 231dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
>> 0e3105812bfd1fffe000ffffff18
<< 0a3000053c0060000025
</LOG>

Acha fromat ramki jaki stosuję to <LEN> <DANE>...<DANE> <CRC>. Bajt <LEN>
mówi ile bajtów jest w ramce włącznie z nim samym czyli: <03> <14> <E9> -> 3
bajty -> jeden bajt danych

Jeszcze jedno ! Program z identyczną transmisją ale skompilowany i
uruchomiony na komputerze PC nie robi takich numerów ! A transmisja różni
się od "pocket'owej" tylko tym ,że PC działa z wykorzystaniem struktury
OVERLAPPED.

Pozdrawiam,
Piotr
Re: [PCC] ReadFile zjada zera !
#105
Author: Piotr Ziemian (Automex)
Date: Sun, 24 Apr 2005 13:20
43 lines
1992 bytes
Użytkownik "Piotr Ziemian (Automex)" <ziemianp@gazeta.pl> napisał w 
wiadomości news:d4eo7h$7m3$1@inews.gazeta.pl...
> Pierwsze uruchomienie transmisji skutkuje logiem:
> <LOG>
>>> 0314e9
> << 08140204030205d4
>>> 0315e8
> << 1315303430323934a5 Nie udało się odczytać całej ramki !
>>> 051d40207e
> << 231dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
>>> 0e3105812bfd1fffe000ffffff18
> << 0a30053c6025 Nie udało się odczytać całej ramki !
> </LOG>
>
> Kolejne (bez wychodzenia z programu):
> <LOG>
>>> 0314e9
> << 08140204030205d4
>>> 0315e8
> << 131530343032393400000000000000000000a5
>>> 051d40207e
> << 231dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
>>> 0e3105812bfd1fffe000ffffff18
> << 0a3000053c0060000025
> </LOG>
>
Odpowiem sobie sam :)
Poprawiłem u siebie strukturę DCB, a konkretnie to zmieniłem:
<CODE>
  DCB dcb;
  if (GetCommState(FHandle,&dcb))
  {

    dcb.fBinary = TRUE; // <-- ta linia jest nowa !
    dcb.BaudRate = FBaudRate;
    ...
  }
</CODE>

Teraz transmisja "śmiga" od razu :)

Pozdrawiam,
Piotr
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads