forked from GerhardHoffmann/DCLibraries
		
	Fix: T.S.: set DCdataValid
This commit is contained in:
		@@ -91,6 +91,8 @@ T_datif::T_datif(QObject *parent) : QObject(parent)
 | 
			
		||||
    epi_resetDcDataValid(1);        // data are not yet valid, no response from DC by now
 | 
			
		||||
 | 
			
		||||
    datif_noResponseCtr=0;
 | 
			
		||||
    datif_nowNewDyns=0;
 | 
			
		||||
    datif_nowNewStats=0;
 | 
			
		||||
 | 
			
		||||
    datif_repeatCtr=0;
 | 
			
		||||
    datif_cmdWasPerformed=0;    // 0: no response by now
 | 
			
		||||
@@ -151,13 +153,24 @@ char T_datif::datif_cycleSend()
 | 
			
		||||
    {
 | 
			
		||||
        //qDebug()  << "com port not available";    // wird ununterbrochen ausgegeben
 | 
			
		||||
        epi_resetDcDataValid(2);    // DC data not valid
 | 
			
		||||
        datif_nowNewDyns=0;
 | 
			
		||||
        datif_nowNewStats=0;
 | 
			
		||||
 | 
			
		||||
        return 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // supervise if DC data are valid
 | 
			
		||||
    datif_noResponseCtr++;         // inc every 20ms
 | 
			
		||||
    if (datif_noResponseCtr>250)   // no life sign from device controller (DC) for about 3s
 | 
			
		||||
    if (datif_noResponseCtr>50)   // no life sign from device controller (DC) for about a sec
 | 
			
		||||
     {
 | 
			
		||||
        epi_resetDcDataValid(3);    // DC data has not updated for >=5s -> no longer valid!
 | 
			
		||||
        datif_nowNewDyns=0;
 | 
			
		||||
        datif_nowNewStats=0;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    // 24.7.24 new, data are valid if dynamic machine conditions AND dyn machine states came in
 | 
			
		||||
    if (datif_nowNewDyns && datif_nowNewStats && !epi_areDcDataValid() )
 | 
			
		||||
        epi_setDcDataValid();
 | 
			
		||||
 | 
			
		||||
    // Ueberwachung ob ein oder mehrere Commands am Stueck erfolgreich waren
 | 
			
		||||
    if (gpi_wantToResetSupervision())
 | 
			
		||||
@@ -360,6 +373,9 @@ char T_datif::datif_cycleSend()
 | 
			
		||||
    {
 | 
			
		||||
        dif_scanStep=0;         // always start from beginning
 | 
			
		||||
        epi_resetDcDataValid(4);
 | 
			
		||||
        datif_nowNewDyns=0;
 | 
			
		||||
        datif_nowNewStats=0;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    datif_cmdWasPerformed=0;    // 0: no response by now
 | 
			
		||||
@@ -1035,6 +1051,7 @@ char T_datif::loadRecDataFromFrame()
 | 
			
		||||
        if (RdDleng>28)
 | 
			
		||||
        {
 | 
			
		||||
            gpi_storeDeviceConditions(RdDleng, receivedData);
 | 
			
		||||
            datif_nowNewStats=1;        // 24.7.24 new
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
@@ -1043,9 +1060,9 @@ char T_datif::loadRecDataFromFrame()
 | 
			
		||||
 | 
			
		||||
        if (RdDleng>60)
 | 
			
		||||
        {
 | 
			
		||||
            epi_setDcDataValid();    // DC-Data are valid as DC responded.
 | 
			
		||||
                                        // Could be set to every response but this (31)
 | 
			
		||||
                                        // is a very common and very important request
 | 
			
		||||
            //epi_setDcDataValid();    // 24.7.24 remove here
 | 
			
		||||
            datif_nowNewDyns=1;         // 24.7.24 new
 | 
			
		||||
 | 
			
		||||
            gpi_storeDynMachineConditions(RdDleng, receivedData);
 | 
			
		||||
 | 
			
		||||
            gpi_storeDI_CoinAttach(receivedData[6]);    // new, 14.2.24 needed for direct coin insertion
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user