int main(int argc, char** argv) { SigInit(FurtherSignalHandling); if ( HandleCommandLine(argc, argv) != 0 ) return 10; if (CsfProcInit(true, true, NULL, INI_CORECONFIG, INI_STACKCONFIG, INIDEF_CORECONFIG, INIDEF_STACKCONFIG) != 0) CsErrx("main: could not initialise core/stack dump on error"); alarmInitialise(); clearAlarms(); if ( IpcInit() != 0 ) { CsErrx("IpcInit() failed"); return -1; } LoadIniFile(); CsMutexInit(&g_rxQueueLock , CSSYNC_THREAD); CsMutexInit(&g_queueLock , CSSYNC_THREAD); CsMutexInit(&g_heartbeatMapLock , CSSYNC_THREAD); CsMutexInit(&g_persistLock , CSSYNC_THREAD); CsMutexInit(&g_LANCommunicationTimerLock, CSSYNC_THREAD); CsMutexInit(&g_stateLock, CSSYNC_THREAD); appQueueId = IpcGetID(DC_TASK); wsQueueId = IpcGetID(WS_TASK); asQueueId = IpcGetID(AS_TASK); avlTaskId = IpcGetID(MYKI_AVL_TaskId); printerTaskId = IpcGetID(DC_PRINTER_TASK); if(InitialiseWebsocket()!=0) { return -1; } // Create Timer Service InitTimerService(); getNetworkSettings(); while(initCCE()!=0) { CsErrx("Cannot connect to CCE waiting 5 seconds"); CsSleep(5, 0); } // Execute application ProcessMessages(NULL); if (IpcClose() != 0) CsErrx("IpcClose: failed to close"); CsMutexDestroy(&g_rxQueueLock ); CsMutexDestroy(&g_queueLock ); CsMutexDestroy(&g_heartbeatMapLock ); CsMutexDestroy(&g_LANCommunicationTimerLock ); CsMutexDestroy(&g_persistLock ); CsMutexDestroy(&g_stateLock ); return 0; }
PageTimers::PageTimers (QWidget *parent) : Background (parent), edit_mode (false) { QGridLayout *layout = new QGridLayout (this); layout->setMargin (0); layout->setSpacing (0); { digital_timer = new DigitalTimer (this); connect (digital_timer, SIGNAL (enterEditModeRequested ()), this, SLOT (enterEditModeDigitalTimerPressed ())); connect (digital_timer, SIGNAL (leaveEditModeRequested ()), this, SLOT (leaveEditMode ())); layout->addWidget (digital_timer, 1, 1); } { analog_timer = new AnalogTimer (this); connect (analog_timer, SIGNAL (clearAlarms ()), this, SLOT (clearCurrentAlarms ())); connect (analog_timer, SIGNAL (enterEditModeRequested ()), this, SLOT (enterEditModeAnalogTimerPressed ())); connect (analog_timer, SIGNAL (leaveEditModeRequested ()), this, SLOT (leaveEditMode ())); connect (analog_timer, SIGNAL (pressed ()), this, SIGNAL (analogTimerPressed ())); connect (analog_timer, SIGNAL (released ()), this, SIGNAL (analogTimerReleased ())); connect (analog_timer, SIGNAL (slide ()), this, SIGNAL (analogTimerSlide ())); connect (analog_timer, SIGNAL (zeroTimeReached ()), this, SIGNAL (zeroTimeReached ())); layout->addWidget (analog_timer, 2, 1); } layout->setColumnStretch (0, 15); layout->setColumnStretch (1, 50); layout->setColumnStretch (2, 15); layout->setRowStretch (0, 2); layout->setRowStretch (1, 40); layout->setRowStretch (2, 40); layout->setRowStretch (3, 10); layout->setRowStretch (4, 2); #if 0 // Link with Reference { QHBoxLayout *hlayout = new QHBoxLayout (); hlayout->addStretch (1); QPushButton *add_timer_button = new QPushButton ("Add timer", this); connect (add_timer_button, SIGNAL (clicked ()), this, SIGNAL (switchToPageDishSelect ())); hlayout->addWidget (add_timer_button); hlayout->addStretch (1); layout->addLayout (hlayout); add_timer_button->hide (); } #endif connect (this, SIGNAL (pressed ()), this, SLOT (leaveEditMode ())); updateContent (); update_timer.setInterval (100); update_timer.setSingleShot (false); update_timer.start (); leave_edit_mode_timer.setSingleShot (false); connect (&leave_edit_mode_timer, SIGNAL (timeout ()), this, SLOT (leaveEditMode ())); connect (analog_timer, SIGNAL (lmb_pressed ()), &leave_edit_mode_timer, SLOT (stop ())); connect (digital_timer, SIGNAL (lmb_pressed ()), &leave_edit_mode_timer, SLOT (stop ())); connect (analog_timer, SIGNAL (userIsAlive ()), this, SLOT (restartTirednessTimer ())); connect (digital_timer, SIGNAL (userIsAlive ()), this, SLOT (restartTirednessTimer ())); connect (analog_timer, SIGNAL (lmb_released ()), this, SLOT (startTirednessTimer ())); connect (digital_timer, SIGNAL (lmb_released ()), this, SLOT (startTirednessTimer ())); }