Ik moet een apllicatie schrijven die communiceert met een microcontroller board. Nu wil ik uit een file een line halen en die dan via rs232 naar dat ding sturen. Ik krijg dan een checksum terug en die controleer ik dan.
Nu had ik het volgende bedacht:
Het versturen lijkt goed te gaan. Echter moet ik daarna wachten op de byte die ik terug krijg van de controller. Vandaar die SetCommMask op EV_RXCHAR.
Als ik de boel compile en de code uitvoer, zie ik op mijn digitale geheugen scoop dat er wel data wisseling plaatsvindt (paar karakter naar board en weer 1 van board naar host) maar ik krijg nergens de uitvoer van "if(Receive_byte==checksum)" te zien. Grrrr.
Staat er iets raars tussen ofzo ?
Nu had ik het volgende bedacht:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| unsigned char lengte, i;
unsigned char temp[2], checksum, Receive_byte, received_checksum;
unsigned char test;
string line;
unsigned long dwCommEvent, dwBytesTransferred;
ifstream in("C:\\test2.hex", ios::binary);
while(getline(in, line))
{
TransmitCommChar(hComm, 'L');
checksum=0;
for( i=0; i<lengte; i++ )
{
temp[0]=line[9+(2*i)];
temp[1]=line[9+1+(2*i)];
checksum+=hex2byte(temp);
TransmitCommChar(hComm, hex2byte(temp));
}
SetCommMask( hComm, EV_RXCHAR );
WaitCommEvent (hComm, &dwCommEvent, 0);
if (dwCommEvent & EV_RXCHAR)
{
do
{
ReadFile( hComm, &Receive_byte, 1, &dwBytesTransferred, 0 );
} while (dwBytesTransferred == 1);
if( Receive_byte==checksum )
MainForm->Memo1->Text = "Checksum OK.";
else
MainForm->Memo1->Text = "Checksum Wrong !!!";
}
} |
Het versturen lijkt goed te gaan. Echter moet ik daarna wachten op de byte die ik terug krijg van de controller. Vandaar die SetCommMask op EV_RXCHAR.
Als ik de boel compile en de code uitvoer, zie ik op mijn digitale geheugen scoop dat er wel data wisseling plaatsvindt (paar karakter naar board en weer 1 van board naar host) maar ik krijg nergens de uitvoer van "if(Receive_byte==checksum)" te zien. Grrrr.
Staat er iets raars tussen ofzo ?
Het maakt niet niet uit of het rechts of het links is, maar TimmeStein weet precies wat de Jinx is !