Example #1
0
//------------------------------------------------------------------------------
// Async Upload DB0 (using callback as completion trigger)
//------------------------------------------------------------------------------
void AsCBUploadDB0()
{
    int Size = sizeof(Buffer); // Size is IN/OUT par
    // In input it tells the client the size available
    // In output it tells us how many bytes were uploaded.
    int res;
    JobDone=false;

    res=Cli_AsUpload(Client, Block_SDB, 0, &Buffer, &Size);

    if (res==0)
    {
        while (!JobDone)
        {
            SysSleep(100);
        }
        res=JobResult;
    }

    if (Check(res,"Async (callback) Block Upload (SDB 0)"))
    {
        printf("Dump (%d bytes) :\n",Size);
        hexdump(&Buffer,Size);
    }
}
Example #2
0
//---------------------------------------------------------------------------
void TCustomMsgServer::TerminateAll() 
{
    int c;
    longword Elapsed;
    bool Timeout;

    if (ClientsCount > 0)
    {
        for (c = 0; c < MaxWorkers; c++)
        {
            if (Workers[c] != 0)
                PMsgWorkerThread(Workers[c])->Terminate();
        }
        // Wait for closing
        Elapsed = SysGetTick();
        Timeout = false;
        while (!Timeout && (ClientsCount > 0))
        {
            Timeout = DeltaTime(Elapsed) > WkTimeout;
            if (!Timeout)
                SysSleep(100);
        };
        if (ClientsCount > 0)
            KillAll(); // one o more threads are hanged
        ClientsCount = 0;
    }
}
Example #3
0
File: main.c Project: x-lugoo/pos
int MainIdleProc(void)
{
	// should not let POS go into sleep mode when running simulator
	int	iRet;

	if (POWER_BATTERY == OsCheckPowerSupply())
	{
		if (glSysParam.stEdcInfo.ucIdleShutdown)
		{
			PowerOff();
		}
		else
		{
			// Modified by Kim_LinHB 2014-7-8
			Gui_ClearScr();
			Gui_ShowMsgBox(_T("POWER SAVING"), gl_stTitleAttr, NULL, _T("PRESS ANY KEY\nTO RECOVER"), gl_stCenterAttr, GUI_BUTTON_NONE, 0, NULL);

			do 
			{
				iRet = SysSleep("00");
			} while((iRet==-3) && (kbhit()!=0));
			// 很奇怪的现象:除非在上次SysSleep返回之后调用DelayMs(3000),否则即使间隔1分钟,调用SysSleep仍会直接返回-3。
			// 因此我在这里加了判断,如果返回-3而且没有按键则继续重复SysSleep
			// 在外部已经保证了进入MainIdleProc的间隔>=1分钟
			// it needs to delay 3 seconds after return from SysSleep, otherwise SysSleep will return -3 even the period of calling SysSleep is over 1 min,
			// so here is a special processing, if return -3 from SysSleep and no key was pressed then continue calling SysSleep.

			DelayMs(100);
			kbflush();
			Gui_ClearScr(); // Added by Kim_LinHB 2014-08-13 v1.01.0003
		}
		return 0;
	}
	return -1;
}
Example #4
0
// Shutdown or reboot the PC
bool wxShutdown(wxShutdownFlags wFlags)
{
    switch (wFlags) {
    case wxSHUTDOWN_POWEROFF:
        // TODO: turn off lamps
#ifdef __WXPALMOS6__
        //extern void SysReset (void);
        //extern UInt32 SysTaskID (void);
        #define SysReset()
        #define SysTaskID() (0)
        SysSleep ();
#else
        //SysSleep (false, false);// undocument API
        SysDoze (true);
#endif
        break;
    case wxSHUTDOWN_REBOOT:
        SysReset ();
        break;
    }
    return false;
}
Example #5
0
//------------------------------------------------------------------------------
// Async Upload DB0 (using polling as completion trigger)
//------------------------------------------------------------------------------
void AsPOUploadDB0()
{
    int Size = sizeof(Buffer); // Size is IN/OUT par
    // In input it tells the client the size available
    // In output it tells us how many bytes were uploaded.
    int res;
    JobDone=false;

    res=Cli_AsUpload(Client, Block_SDB, 0, &Buffer, &Size);

    if (res==0)
    {
        while (Cli_CheckAsCompletion(Client,&res)!=JobComplete)
        {
            SysSleep(100);
        };
    }

    if (Check(res,"Async (polling) Block Upload (SDB 0)"))
    {
        printf("Dump (%d bytes) :\n",Size);
        hexdump(&Buffer,Size);
    }
}
Example #6
0
int main( void ) {
    SysInit();
    EeepromInit();
    TimerInit();
    ComInit();
    Ds1302Init();
    HtlcdInit();
    BottonInit();
    LedInit();
    MenuInit();
    INTEN
    while(1) {
        u8 botton_bit = 0;
        if(TimerGetSec() > 20) {
            TimerSetSec(0);
            SysSleep();
        }
        if(TimerGetTimeFlag() > 0x01) {
            TimerSetTimeFlag(0);
            MenuRefreshTime();
        }
        MenuFlickerServerTime();
        botton_bit = BottonRead();
        if(botton_bit > 0x01) {
            TimerSetSec(0);
            SysOpen();
        }
        switch(botton_bit) {
            case 0x01:
                MenuSetFeatures(7);
            break;//后减档
            case 0x02:
                MenuSetFeatures(5);
            break;//后加档
            case 0x03:
                MenuSetFeatures(4);
            break;//前换挡
            case 0x11:
                MenuSetFeatures(1);
            break;//区域3
            case 0x12:
                MenuSetFeatures(6);//1
            break;//区域2
            case 0x13:
                MenuSetFeatures(8);
            break;//区域1
            case 0x14:
                MenuSetFeatures(2);
            break;//区域1
            case 0x15:
                MenuSetFeatures(3);
            break;//放开信号
        }
        
        if(ComGetFlag() == 0x80) {
            ComClearFlag();
            LedSet(0);
            switch(ComGetData(0)) {
                case front:
                    switch(ComGetData(1)) {
                        case dce_gear:
                            MenuSetStalls(front,ComGetData(2)+1);
                            MenuSetBattery(ComGetData(3));
                        break;
                    }
                break;
                case behind: 
                    switch(ComGetData(1)) {
                        case dce_gear:
                            MenuSetStalls(behind,ComGetData(2));
                            MenuSetBattery(ComGetData(3));
                        break;
                    }
                break;
                case dce_powe:
                    MenuSetBattery(ComGetData(1));
                break;
            }
        }
    }
}