checking as provided by thomas

This commit is contained in:
Thomas Sax 2024-11-08 12:57:26 +01:00
parent 3acf0e3342
commit 2b6a37da9e
10 changed files with 196 additions and 197 deletions

View File

@ -591,6 +591,8 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
connect(myFenster02, SIGNAL(quitMyApp()), this, SLOT(close()));
HWaccess->bl_stopBL(); // 6.11.2024, to be sure about BL-status after DCdiag program start
}
MainWindow::~MainWindow()
@ -959,7 +961,7 @@ void MainWindow::chainControl(void)
uint16_t nextScreen=0;
uint8_t useNavi=0;
bool busy=false;
bool busy=false, nowBL;
static uint32_t offlineCtr;
// call permanent functions here:
@ -967,19 +969,14 @@ void MainWindow::chainControl(void)
//diary->working();
//conf->working();
//qDebug()<<"mainwin chaincontrol calling mif";
if (HWaccess->sys_areDCdataValid()==false)
nowBL=myFenster12->isBLup();
if (HWaccess->sys_areDCdataValid()==false && !nowBL)
{
qDebug()<<"mainwin: lost connection to DC "<<offlineCtr;
//qDebug()<<"mainwin: lost connection to DC "<<offlineCtr;
offlineCtr++;
}
// working step chain:
if (chainCurrentStep != chainNextStep)
{
@ -1009,7 +1006,7 @@ void MainWindow::chainControl(void)
if (chain_stepIni)
busy=myFenster02->work_ini(&nextScreen, &useNavi);
else
busy=myFenster02->working(&nextScreen, &useNavi);
busy=myFenster02->working(&nextScreen, &useNavi, nowBL);
} else
if (chainCurrentStep==3)
{
@ -1271,5 +1268,7 @@ void MainWindow::vendingTimeout(void)
timerVendingTimeout->stop();
}
bool MainWindow::BLisRunning()
{
return myFenster12->isBLup();
}

View File

@ -147,6 +147,7 @@ public:
#define FORWBUTTON 3
void enableNaviButtons(uint8_t buttonNr, bool enabled);
void enableNaviButtons(uint8_t switchBitwise);
bool BLisRunning();
private slots:
void chainControl();

View File

@ -35,8 +35,9 @@
#define PAGE_NEXT20 20
// fix: customize:
//#define WCS_STARTSCREEN PAGE_COMPORT // if APservice uses masterLib
#define WCS_STARTSCREEN PAGE_SERVICEMAIN // if APservice uses slaveLib
//#define WCS_STARTSCREEN PAGE_COMPORT
//#define WCS_STARTSCREEN PAGE_NEXT16
#define WCS_STARTSCREEN PAGE_SERVICEMAIN
// PAGE_COMPORT:
#define WCS_WIN01BAK PAGE_COMPORT
@ -44,6 +45,7 @@
#define WCS_WIN01FWD PAGE_SERVICEMAIN
// PAGE_SERVICEMAIN:
//#define WCS_WIN02BAK PAGE_NEXT16
#define WCS_WIN02BAK PAGE_BOOTLOADER
#define WCS_WIN02MID PAGE_SERVICEMAIN
#define WCS_WIN02FWD PAGE_TIMEDATEVERSION
@ -170,8 +172,8 @@
#define WCS_WIN02SHORT08 PAGE_VAULTRECORD
#define WIN02_LABEL_SHORT09 "Program"
#define WCS_WIN02SHORT09 PAGE_PROG_JSON
#define WIN02_LABEL_SHORT10 " "
#define WCS_WIN02SHORT10 PAGE_SERVICEMAIN
#define WIN02_LABEL_SHORT10 " B L "
#define WCS_WIN02SHORT10 PAGE_BOOTLOADER

View File

@ -360,7 +360,7 @@ bool T_win02::work_ini(uint16_t *nextScreen, uint8_t *useNavi)
}
bool T_win02::working(uint16_t *nextScreen, uint8_t *useNavi)
bool T_win02::working(uint16_t *nextScreen, uint8_t *useNavi, bool isBLup)
{
// one state of the vending/operating FSM
// called cyclic until this state changes intentionally to another state
@ -395,6 +395,13 @@ bool T_win02::working(uint16_t *nextScreen, uint8_t *useNavi)
tmpStr.clear();
// update values:
if (HWaccess->bl_isUp()==1)
//if (isBLup)
{
labState->setText(" DC2 Bootloader");
labState->setStyleSheet(COLOR_RED);
} else
if (HWaccess->sys_areDCdataValid())
{
labState->setText(" DC2 connected "); // datenverkehr läuft
@ -431,8 +438,6 @@ bool T_win02::working(uint16_t *nextScreen, uint8_t *useNavi)
}
labLoc2->setText(myStr);
if (cunu>0 && manu>0)
{
myStr.clear();

View File

@ -90,7 +90,7 @@ public:
// bit0,1: enable/disable button "next"
// bit2,3: enable/disable button "home"
// bit4,5: enable/disable button "back"
bool working (uint16_t *nextScreen, uint8_t *useNavi);
bool working (uint16_t *nextScreen, uint8_t *useNavi, bool isBLup);
~T_win02();
private slots:

View File

@ -18,6 +18,7 @@ T_win04::T_win04(hwinf *HWaccess, QWidget *parent) : QWidget(parent)
myTabFont.setPixelSize(PIXELSIZE_BUTTONS);
pb_refresh = new QPushButton("Refresh");
pb_refresh->setFont(myTabFont);
pb_refresh->setStyleSheet("background-color: rgb(250,150,150)"); // hell rot
myLayout->addWidget(pb_refresh,1,1);
connect(pb_refresh, SIGNAL(clicked()), this, SLOT(ButtonRefreshClicked()));
@ -99,6 +100,7 @@ void T_win04::Nav_next(void)
void T_win04::ButtonRefreshClicked(void)
{
win04_dataAreValid=0;
pb_refresh->setStyleSheet("background-color: white");
}
bool T_win04::work_ini(uint16_t *nextScreen, uint8_t *useNavi)
@ -175,6 +177,27 @@ bool T_win04::working(uint16_t *nextScreen, uint8_t *useNavi)
struct T_dynamicCondition myDynMachCond;
struct T_devices devPara; // used devices
// neu, 24.7.24
static bool win04_dcDataAreValid;
bool bget;
bget=HWaccess->sys_areDCdataValid();
if (bget && !win04_dcDataAreValid)
{
// DC soeben ANgesteckt
win04_dcDataAreValid=true;
win04_dataAreValid=0;
// genau jetzt die Geräte Stati einlesen, scheinen nicht immer aktuell zu sein
pb_refresh->setStyleSheet("background-color: rgb(150,230,150)"); // hell grün
}
if (!bget && win04_dcDataAreValid)
{
// DC soeben ABgesteckt
win04_dcDataAreValid=false;
win04_dataAreValid=0;
pb_refresh->setStyleSheet("background-color: rgb(250,150,150)"); // hell rot
}
HWaccess->sys_restoreDeviceParameter(&devPara);
if (!win04_dataAreValid)

View File

@ -114,6 +114,37 @@ T_win09::T_win09(hwinf *HWaccess, QWidget *parent) : QWidget(parent)
connect(pbCreditWake, SIGNAL(clicked()), this, SLOT(slot_startTest()));
*/
/*
pbTest1 = new QPushButton("PTU up");
pbTest1->setCheckable(false); // true = toggle button
pbTest1->setFont(myTabFont);
pbTest1->setStyleSheet("background-color: yellow");
myLayout->addWidget(pbTest1, 5, 0);
connect(pbTest1, SIGNAL(clicked()), this, SLOT(slot_pbTest1()));
pbTest2 = new QPushButton("PTU dn");
pbTest2->setCheckable(false); // true = toggle button
pbTest2->setFont(myTabFont);
pbTest2->setStyleSheet("background-color: yellow");
myLayout->addWidget(pbTest2, 6, 0);
connect(pbTest2, SIGNAL(clicked()), this, SLOT(slot_pbTest2()));
pbTest3 = new QPushButton("DC up");
pbTest3->setCheckable(false); // true = toggle button
pbTest3->setFont(myTabFont);
pbTest3->setStyleSheet("background-color: yellow");
myLayout->addWidget(pbTest3, 7, 0);
connect(pbTest3, SIGNAL(clicked()), this, SLOT(slot_pbTest3()));
pbTest4 = new QPushButton("DC dn");
pbTest4->setCheckable(false); // true = toggle button
pbTest4->setFont(myTabFont);
pbTest4->setStyleSheet("background-color: yellow");
myLayout->addWidget(pbTest4, 8, 0);
connect(pbTest4, SIGNAL(clicked()), this, SLOT(slot_pbTest4()));
*/
setLayout(myLayout);
myNextStep=0;
myStep=0;
@ -210,6 +241,33 @@ void T_win09::slot_startTest(void)
HWaccess->sys_runCompleteTest();
}
// 8.10.2024 new, control power up/down
/*
void slot_pbTest1(void)
{
HWaccess->prepareForPowerDown();
}
void slot_pbTest2(void)
{
HWaccess->justReactivated();
}
void slot_pbTest3(void)
{
HWaccess->dcNotActive();
}
void slot_pbTest4(void)
{
HWaccess->dcIsActive();
}
*/

View File

@ -37,6 +37,7 @@ class T_win09 : public QWidget
QPushButton *pbModemPwr, *pbModemWake, *pbCreditPwr, *pbCreditWake, *pbModemRes;
QLabel *showModemCondition;
//QPushButton *pbTest1, *pbTest2, *pbTest3, *pbTest4;
public:
explicit T_win09(hwinf *HWaccess = nullptr, QWidget *parent = nullptr);
@ -58,6 +59,12 @@ public slots:
void slot_CreditWake(void);
void slot_startTest(void);
void slot_ModemRes(void);
// void slot_pbTest1(void);
// void slot_pbTest2(void);
// void slot_pbTest3(void);
// void slot_pbTest4(void);
};

View File

@ -44,11 +44,11 @@ T_win12::T_win12(hwinf *HWaccess, QWidget *parent) : QWidget(parent)
// linke Spalte: controls
QLabel *lab7 = new QLabel(" ");
lab7->setFont(myTabFont);
myVlayer_left->addWidget(lab7);
myVlayer_right->addWidget(lab7);
but9 = new QPushButton("Starting \nBootloader");
myVlayer_left->addWidget(but9);
connect(but9, SIGNAL(clicked()), this, SLOT(slot_b9()));
myVlayer_right->addWidget(but9);
connect(but9, SIGNAL(clicked()), this, SLOT(slot_startCompleteBL()));
but9->setStyleSheet(BUTTONCOLOR0);
but9->setFont(myTabFont);
@ -57,8 +57,8 @@ T_win12::T_win12(hwinf *HWaccess, QWidget *parent) : QWidget(parent)
myH0layer->addWidget(lab3);
but4 = new QPushButton("load Bin-File");
myVlayer_left->addWidget(but4);
connect(but4, SIGNAL(clicked()), this, SLOT(slot_b4()));
myVlayer_right->addWidget(but4);
connect(but4, SIGNAL(clicked()), this, SLOT(slot_loadBin()));
but4->setStyleSheet(BUTTONCOLOR0);
but4->setFont(myTabFont);
@ -67,8 +67,8 @@ T_win12::T_win12(hwinf *HWaccess, QWidget *parent) : QWidget(parent)
myH0layer->addWidget(lab4);
but5 = new QPushButton(" send file to DC");
myVlayer_left->addWidget(but5);
connect(but5, SIGNAL(clicked()), this, SLOT(slot_b5()));
myVlayer_right->addWidget(but5);
connect(but5, SIGNAL(clicked()), this, SLOT(slot_sendBin()));
but5->setStyleSheet(BUTTONCOLOR0);
but5->setFont(myTabFont);
@ -76,49 +76,22 @@ T_win12::T_win12(hwinf *HWaccess, QWidget *parent) : QWidget(parent)
lab5->setFont(myTabFont);
myH0layer->addWidget(lab5);
/*
but6 = new QPushButton(" ");
myVlayer_left->addWidget(but6);
connect(but6, SIGNAL(clicked()), this, SLOT(slot_b6()));
but6->setStyleSheet(BUTTONCOLOR0);
but6->setFont(myTabFont);
but7 = new QPushButton(" ");
myVlayer_left->addWidget(but7);
connect(but7, SIGNAL(clicked()), this, SLOT(slot_b7()));
but7->setStyleSheet(BUTTONCOLOR0);
but7->setFont(myTabFont);
but8 = new QPushButton(" ");
myVlayer_left->addWidget(but8);
connect(but8, SIGNAL(clicked()), this, SLOT(slot_b8()));
but8->setStyleSheet(BUTTONCOLOR0);
but8->setFont(myTabFont);
*/
/*
but9 = new QPushButton("complete start");
myVlayer_left->addWidget(but9);
connect(but9, SIGNAL(clicked()), this, SLOT(slot_b9()));
but9->setStyleSheet(BUTTONCOLOR0);
but9->setFont(myTabFont);
*/
myTabFont.setPixelSize(14);
but1 = new QPushButton("restart DC: ");
myVlayer_left->addWidget(but1);
connect(but1, SIGNAL(clicked()), this, SLOT(slot_b1()));
but1 = new QPushButton("restart DC: \n");
myVlayer_right->addWidget(but1);
connect(but1, SIGNAL(clicked()), this, SLOT(slot_restart()));
but1->setStyleSheet(BUTTONCOLOR0);
but1->setFont(myTabFont);
but2 = new QPushButton("Start BL: ");
myVlayer_left->addWidget(but2);
connect(but2, SIGNAL(clicked()), this, SLOT(slot_b2()));
but2 = new QPushButton("Start BL: \n");
myVlayer_right->addWidget(but2);
connect(but2, SIGNAL(clicked()), this, SLOT(slot_startBl()));
but2->setStyleSheet(BUTTONCOLOR0);
but2->setFont(myTabFont);
but3 = new QPushButton("check BL: ");
myVlayer_left->addWidget(but3);
connect(but3, SIGNAL(clicked()), this, SLOT(slot_b3()));
but3 = new QPushButton("check BL: \n");
myVlayer_right->addWidget(but3);
connect(but3, SIGNAL(clicked()), this, SLOT(slot_checkBl()));
but3->setStyleSheet(BUTTONCOLOR0);
but3->setFont(myTabFont);
@ -128,8 +101,8 @@ T_win12::T_win12(hwinf *HWaccess, QWidget *parent) : QWidget(parent)
myTabFont.setPixelSize(22);
but10 = new QPushButton("stop BL: ");
myVlayer_left->addWidget(but10);
connect(but10, SIGNAL(clicked()), this, SLOT(slot_b10()));
myVlayer_right->addWidget(but10);
connect(but10, SIGNAL(clicked()), this, SLOT(slot_stopBL()));
but10->setStyleSheet(BUTTONCOLOR0);
but10->setFont(myTabFont);
@ -156,9 +129,10 @@ T_win12::T_win12(hwinf *HWaccess, QWidget *parent) : QWidget(parent)
myTO->setSingleShot(true);
myTO->start(2);
trigger_BLstartup=false;
win12_startProgramming=0;
win12_startProgramming=false;
win12_nrOfFWblocks=0;
win12_currentBlkNr=0;
APservBLisUp=false;
}
T_win12::~T_win12()
@ -179,20 +153,29 @@ void T_win12::Nav_next(void)
myNextStep=WCS_WIN12FWD;
}
void T_win12::slot_b1(void)
void T_win12::slot_startCompleteBL(void)
{
// replaces the next three single steps restart_DC, start_BL and check_BL
showState->setText(" starting bootloader... ");
showFile->setText(" ");
HWaccess->bl_completeStart();
}
// single steps from former version:
void T_win12::slot_restart(void)
{
showProgress->append(" rebooting");
HWaccess->dc_autoRequest(false);
HWaccess->bl_rebootDC();
}
void T_win12::slot_b2(void)
void T_win12::slot_startBl(void)
{
HWaccess->dc_autoRequest(false);
HWaccess->bl_startBL();
}
void T_win12::slot_b3(void)
void T_win12::slot_checkBl(void)
{
HWaccess->dc_autoRequest(false);
showState->setText(" ");
@ -202,17 +185,24 @@ void T_win12::slot_b3(void)
myStep=20;
}
void T_win12::slot_b4(void)
void T_win12::slot_loadBin(void)
{
QString myStr;
QString fileName;
win12_nrOfFWblocks=0;
fileName.clear();
// bin file im selben folder wie in PTU5: /etc/dc/
fileName = QFileDialog::getOpenFileName(this, ("Select DC firmware file:"),
"C:/own/work2023/PSA1256ptu5/PTU SW",
"/etc/dc",
("binary file(*.bin)"));
// Jsons im selben folder wie in PTU5: /etc/psa_config
//fileName = QFileDialog::getOpenFileName(this, ("Select JSON file:"),
// "/etc/psa_config",
// ("binary file(*.json)"));
//qDebug()<<"T_win12: selected file: "<<fileName;
bool ret=HWaccess->bl_storeFirmware(fileName);
win12_nrOfFWblocks = HWaccess->bl_getNrOfFirmwareBlocks();
@ -229,42 +219,27 @@ void T_win12::slot_b4(void)
showFile->setText(" cannot load file :-( ");
}
void T_win12::slot_b5(void)
void T_win12::slot_sendBin(void)
{
win12_startProgramming=true;
showProgress->clear();
myStep=5;
}
void T_win12::slot_b6(void)
{
}
void T_win12::slot_b7(void)
{
}
void T_win12::slot_b8(void)
{
}
void T_win12::slot_b9(void)
{
showState->setText(" Bootloader is off ");
showFile->setText(" ");
//trigger_BLstartup=true;
//myStep=0;
// neu, 29.9: Start-Schrittkette jetzt in HWapi:
HWaccess->bl_completeStart();
}
void T_win12::slot_b10(void)
void T_win12::slot_stopBL(void)
{
showState->setText(" Bootloader is off ");
showFile->setText(" ");
HWaccess->bl_stopBL();
HWaccess->dc_autoRequest(true);
APservBLisUp=false;
}
bool T_win12::isBLup()
{
return APservBLisUp;
}
bool T_win12::work_ini(uint16_t *nextScreen, uint8_t *useNavi)
@ -295,98 +270,17 @@ bool T_win12::working(uint16_t *nextScreen, uint8_t *useNavi)
*nextScreen=0; // 0=no change
*useNavi=0;
//int8_t iresult;
int8_t iresult;
if (HWaccess->bl_isUp())
if (HWaccess->bl_isUp()==1)
APservBLisUp=true;
if (APservBLisUp)
showState->setText(" Bootloader is running");
else
showState->setText(" - - - ");
/*
if (myStep==0)
{
if (trigger_BLstartup)
{
HWaccess->dc_autoRequest(false);
myStep++;
}
} else
if (myStep==1)
{
//qDebug()<<"win12 chain step 1";
if (trigger_BLstartup)
{
//qDebug()<<"starting up BL step1";
trigger_BLstartup=false;
HWaccess->bl_rebootDC();
myTO->stop();
myTO->start(1000); // restart
retryCtr=0;
myStep++;
//qDebug()<<"win12 chain step 2";
}
} else
if (myStep==2)
{
if (!myTO->isActive())
{
qDebug()<<"starting BL";
HWaccess->bl_startBL();
myTO->stop();
myTO->start(100);
myStep++;
//qDebug()<<"win12 chain step 3";
}
} else
if (myStep==3)
{
if (!myTO->isActive())
{
HWaccess->bl_checkBL();
myTO->stop();
myTO->start(100);
myStep++;
//qDebug()<<"win12 chain step 4";
}
} else
if (myStep==4)
{
if (!myTO->isActive())
{
//qDebug()<<"starting up BL step4";
myTO->stop();
if (HWaccess->bl_isUp())
{
myStep++;
//qDebug()<<"win12 chain step 5";
showState->setText(" --- BL is up and running ---");
//qDebug()<<"BL laeuft!!!";
} else
{
retryCtr++; // start again
if (retryCtr>=15)
{
myStep=99;
//qDebug()<<"win12 chain step 99";
showState->setText(" --- BL error! ---");
//qDebug()<<"BL error!!!";
} else
{
myStep=3;
//qDebug()<<"BL retry...";
//qDebug()<<"win12 chain step 3";
}
}
}
} else
if (myStep==5)
{
if (win12_startProgramming)
@ -405,8 +299,12 @@ bool T_win12::working(uint16_t *nextScreen, uint8_t *useNavi)
if (myStep==6)
{
//qDebug()<<"starting transfer";
// -------------------------------------------------------------------
HWaccess->bl_blockAutoLoad(win12_currentBlkNr);
// -------------------------------------------------------------------
//if (win12_currentBlkNr%10==0) // nur jeden 10. Block anzeigen
// geht auch nicht schneller
showProgress->append(swl_int2str(win12_currentBlkNr));
myStep++;
//qDebug()<<"win12 chain step 6->7";
@ -414,8 +312,13 @@ bool T_win12::working(uint16_t *nextScreen, uint8_t *useNavi)
if (myStep==7)
{
// -------------------------------------------------------------------
iresult=HWaccess->bl_blockAutoResponse();
// 0: wait 1: OK, blk was sent 2: OK, transfer complete 3: error
// -------------------------------------------------------------------
if (iresult==1)
{
win12_currentBlkNr++;
@ -452,7 +355,7 @@ bool T_win12::working(uint16_t *nextScreen, uint8_t *useNavi)
{
}
/*
if (myStep==20)
{
if (!myTO->isActive())

View File

@ -50,6 +50,7 @@ class T_win12 : public QWidget
bool trigger_BLstartup;
int retryCtr;
QTextEdit *showProgress;
bool APservBLisUp;
public:
explicit T_win12(hwinf *HWaccess = nullptr, QWidget *parent = nullptr);
@ -61,21 +62,21 @@ public:
bool working (uint16_t *nextScreen, uint8_t *useNavi);
~T_win12();
bool isBLup();
public slots:
void Nav_back(void);
void Nav_home(void);
void Nav_next(void);
void slot_b1(void);
void slot_b2(void);
void slot_b3(void);
void slot_b4(void);
void slot_b5(void);
void slot_b6(void);
void slot_b7(void);
void slot_b8(void);
void slot_b9(void);
void slot_b10(void);
void slot_restart(void);
void slot_startBl(void);
void slot_checkBl(void);
void slot_startCompleteBL(void);
void slot_sendBin(void);
void slot_loadBin(void);
void slot_stopBL(void);
};