Sendepause



  • 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);
    	...
    

Anmelden zum Antworten