checking as provided by thomas
This commit is contained in:
		@@ -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();
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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();
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								stepList.h
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								stepList.h
									
									
									
									
									
								
							@@ -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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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();
 | 
			
		||||
 
 | 
			
		||||
@@ -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:
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
@@ -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();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										237
									
								
								win12_BL.cpp
									
									
									
									
									
								
							
							
						
						
									
										237
									
								
								win12_BL.cpp
									
									
									
									
									
								
							@@ -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,17 +299,26 @@ bool T_win12::working(uint16_t *nextScreen, uint8_t *useNavi)
 | 
			
		||||
 | 
			
		||||
    if (myStep==6)
 | 
			
		||||
    {
 | 
			
		||||
        //qDebug()<<"starting transfer";
 | 
			
		||||
 | 
			
		||||
        // -------------------------------------------------------------------
 | 
			
		||||
        HWaccess->bl_blockAutoLoad(win12_currentBlkNr);
 | 
			
		||||
        showProgress->append(swl_int2str(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";
 | 
			
		||||
    } else
 | 
			
		||||
 | 
			
		||||
    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())
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								win12_BL.h
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								win12_BL.h
									
									
									
									
									
								
							@@ -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);
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user