forked from GerhardHoffmann/DCLibraries
Prepare new implementation of downloading the bootloader.
This commit is contained in:
parent
6377c6c18f
commit
27c0aa56ee
@ -29,25 +29,31 @@ T_runProc::T_runProc()
|
||||
QTimer *runProc_callProcesses = new QTimer();
|
||||
connect(runProc_callProcesses, SIGNAL(timeout()), this, SLOT(runProc_slotProcess()));
|
||||
runProc_callProcesses->setSingleShot(false);
|
||||
runProc_callProcesses->start(100); // in ms
|
||||
runProc_callProcesses->start(10); // in ms
|
||||
|
||||
hwapi_lastDoorState=0; // default: all doors (should be) closed, coin box inserted
|
||||
// bit0: upper door 1:middle 2:lower 3=cash-box out
|
||||
|
||||
hwapi_triggerBL = new QTimer();
|
||||
connect(hwapi_triggerBL, SIGNAL(timeout()), this, SLOT(bl_performComplStart()));
|
||||
hwapi_triggerBL->setSingleShot(false);
|
||||
hwapi_triggerBL->stop();
|
||||
// hwapi_triggerBL = new QTimer();
|
||||
// connect(hwapi_triggerBL, SIGNAL(timeout()), this, SLOT(bl_performComplStart()));
|
||||
// hwapi_triggerBL->setSingleShot(false);
|
||||
// hwapi_triggerBL->stop();
|
||||
|
||||
myTO = new QTimer();
|
||||
myTO->setSingleShot(true);
|
||||
myTO->start(200);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void T_runProc::runProc_slotProcess(void)
|
||||
{
|
||||
#ifndef THIS_IS_CA_MASTER
|
||||
cash_paymentProcessing();
|
||||
doors_supervise();
|
||||
bl_performComplStart(); // neu 1.12.23
|
||||
dcBL_cycle();
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
bool T_runProc::cash_startPayment(uint32_t amount)
|
||||
@ -654,7 +660,7 @@ bool T_runProc::bl_isUp(void)
|
||||
receivedData[3]==45 && receivedData[4] ==95 && receivedData[5]==176)
|
||||
{
|
||||
qDebug() << "got BL response to readFWversion";
|
||||
epi_clrRawReceivedString();
|
||||
//epi_clrRawReceivedString();
|
||||
return true;
|
||||
}
|
||||
// response to "start BL"
|
||||
@ -662,7 +668,7 @@ bool T_runProc::bl_isUp(void)
|
||||
receivedData[3]==223 && receivedData[4] ==131 )
|
||||
{
|
||||
qDebug() << "hwapi_bl_isUp: got BL response to start";
|
||||
epi_clrRawReceivedString();
|
||||
//epi_clrRawReceivedString();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -677,7 +683,8 @@ void T_runProc::bl_completeStart(void)
|
||||
|
||||
bool T_runProc::bl_performComplStart(void)
|
||||
{
|
||||
// must be called cyclic by timer
|
||||
bool result;
|
||||
|
||||
static uint8_t retryCtr;
|
||||
|
||||
if ((bl_startupStep<1) || (bl_startupStep>10))
|
||||
@ -691,58 +698,69 @@ bool T_runProc::bl_performComplStart(void)
|
||||
|
||||
if (bl_startupStep==2)
|
||||
{
|
||||
qDebug()<<"rebooting";
|
||||
bl_rebootDC();
|
||||
hwapi_triggerBL->stop();
|
||||
hwapi_triggerBL->start(1000); // call next step in 1s
|
||||
myTO->stop();
|
||||
myTO->start(500);
|
||||
retryCtr=0;
|
||||
bl_startupStep++;
|
||||
} else
|
||||
|
||||
if (bl_startupStep==3)
|
||||
{
|
||||
//qDebug()<<"starting BL";
|
||||
bl_startBL();
|
||||
hwapi_triggerBL->stop();
|
||||
hwapi_triggerBL->start(100);
|
||||
bl_startupStep++;
|
||||
|
||||
if (!myTO->isActive())
|
||||
{
|
||||
qDebug()<<"starting BL";
|
||||
bl_startBL();
|
||||
myTO->stop();
|
||||
myTO->start(500);
|
||||
bl_startupStep++;
|
||||
}
|
||||
} else
|
||||
|
||||
if (bl_startupStep==4)
|
||||
{
|
||||
//if (!myTO->isActive())
|
||||
//{
|
||||
bl_checkBL();
|
||||
hwapi_triggerBL->stop();
|
||||
hwapi_triggerBL->start(100);
|
||||
bl_startupStep++;
|
||||
|
||||
//}
|
||||
if (!myTO->isActive())
|
||||
{
|
||||
qDebug()<<"checking BL";
|
||||
bl_checkBL();
|
||||
myTO->stop();
|
||||
myTO->start(200);
|
||||
bl_startupStep++;
|
||||
}
|
||||
|
||||
} else
|
||||
|
||||
if (bl_startupStep==5)
|
||||
{
|
||||
hwapi_triggerBL->stop();
|
||||
if (bl_isUp())
|
||||
if (!myTO->isActive())
|
||||
{
|
||||
bl_startupStep=99;
|
||||
// BL is up and running
|
||||
} else
|
||||
{
|
||||
retryCtr++; // start again
|
||||
if (retryCtr>=15)
|
||||
qDebug()<<"step 5";
|
||||
result = bl_isUp();
|
||||
qDebug()<<"BL result: "<< result;
|
||||
if (result)
|
||||
{
|
||||
bl_startupStep=99;
|
||||
//qDebug()<<"BL error!!!";
|
||||
qDebug()<<"BL is working now...";
|
||||
// BL is up and running
|
||||
return true;
|
||||
} else
|
||||
{
|
||||
bl_startupStep=3;
|
||||
//qDebug()<<"BL retry...";
|
||||
retryCtr++; // start again
|
||||
if (retryCtr>=10)
|
||||
{
|
||||
bl_startupStep=99;
|
||||
qDebug()<<"BL error!!!";
|
||||
} else
|
||||
{
|
||||
bl_startupStep=3;
|
||||
myTO->stop();
|
||||
myTO->start(200);
|
||||
qDebug()<<"BL retry...";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user