Example #1
0
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;
}
Example #2
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 ()));
}