B
Hi!
Bin jetzt mit meinem prog soweit, dass ich jede Mene strings an sen COM-Port senden kann. Das problem ist, dass mein Kartenleser das alles nicht so schnell verarbeiten kann bzw. während ich noch sende versucht er schon zu antworten. Dadurch bekomme ich z.B. 2 Antworten und dann einen error auf sechs Fragen.
Weiss jemand wie man eine Sendepause Verzögerung programmiert??
Muss ich es vielleicht mit den Handshake-Verfahren machen??
DANKE!
...//SENDEN Status
unsigned long length = 0;
CString sDaten = "60011776";
if(WriteFile(hCom, sDaten, sDaten.GetLength(), &length, NULL) == 0)
{ //hier fehlerbehandlung
MessageBox("3.Senden nicht möglich!");
return;
}
CString sDaten1 = 0x03;
WriteFile(hCom, sDaten1, sDaten1.GetLength(), &length, NULL);
//Empfangen
char Antwort[20];
ReadFile(hCom, Antwort, sizeof(Antwort), &length, NULL);
m_EditFile1 = Antwort;
UpdateData(FALSE);
//Sicherheit
if(Antwort[7] != '4')
{ MessageBox("Keine SIM-Karte im Leser");
CloseHandle(hCom);
}
else
{
//***ROS aus
CString sDaten2 = "600301000063";
WriteFile(hCom, sDaten2, sDaten2.GetLength(), &length, NULL);
WriteFile(hCom, sDaten1, sDaten1.GetLength(), &length, NULL);
//***STATUS
CString sDaten6 = "6002170277";
WriteFile(hCom, sDaten6, sDaten6.GetLength(), &length, NULL);
WriteFile(hCom, sDaten1, sDaten1.GetLength(), &length, NULL);
//Prüfen der Atwort
char Antwort1[9];
ReadFile(hCom, Antwort1, sizeof(Antwort1), &length, NULL);
m_EditFile = Antwort1;
UpdateData(FALSE);
//PUp 5V3V
CString sDaten8 = "6002121363";
WriteFile(hCom, sDaten8, sDaten8.GetLength(), &length, NULL);
WriteFile(hCom, sDaten1, sDaten1.GetLength(), &length, NULL);
//Verify
CString sDatenA = "600D14A02000010837373737FFFFFFFFF0";
WriteFile(hCom, sDatenA, sDatenA.GetLength(), &length, NULL);
WriteFile(hCom, sDaten1, sDaten1.GetLength(), &length, NULL);
...