#include #include #include #include #include #include #include #include Bool globAppQuit = INS_FALSE; Bool globIpv6_NetworkInstalled = INS_FALSE; Bool globI2c_PeepBuffer = INS_FALSE; Bool globReboot = INS_FALSE; volatile UInt32 CduComSrvPnt = 0; #ifdef COMPILE_IN_WINDOWS #include #ifndef SLEEP #define SLEEP(msec) Sleep((msec)) #endif // SLEEP HINSTANCE globHInstance; #else #include #ifndef SLEEP #define SLEEP(msec) usleep((msec)*1000) #endif // SLEEP #include static void sighandle(int sig) { switch(sig) { case 10: globI2c_PeepBuffer = (globI2c_PeepBuffer == INS_FALSE ? INS_TRUE : INS_FALSE); break; case 16: printf("CduComSrvPnt:0x%x\n", CduComSrvPnt); break; case 17: printf("Ipv6_NetworkInstalled\n"); globIpv6_NetworkInstalled = INS_TRUE; break; case SIGINT: case SIGTERM: globAppQuit = INS_TRUE; break; default: break; } } #endif // COMPILE_IN_WINDOWS #ifdef COMPILE_IN_WINDOWS Int32 WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, Int32 nCmdShow) { globHInstance = hInstance; #else //#ifdef COMPILE_IN_LINUX Int32 main(int argc, char **argv) { signal(SIGINT, sighandle); signal(SIGTERM, sighandle); signal(16, sighandle); /*user define signal, for cducom task debug*/ signal(17, sighandle); /*user define signal, for ipv6 network installed*/ signal(10, sighandle); /*user define signal, for peeping iic buffer*/ if(argc > 1) { if( argv[1][0] == 'r' && argv[1][1] == 'e' && argv[1][2] == 'b' && argv[1][3] == 'o' && argv[1][4] == 'o' && argv[1][5] == 't' && argv[1][6] == '\0') { globReboot = INS_TRUE; } } #endif // COMPILE_IN_WINDOWS gMainBoardCommunication.Init(); // gResourceLoader.Init(); gDisplayRender.Init(); gCduCommunication.Init(); RegisterRenderFuncs(Render, NULL, CleanUpRender, NULL); #ifndef COMPILE_IN_WINDOWS RegisterRender2Funcs(Render_FB1, NULL, CleanUpRender_FB1, NULL); #endif // COMPILE_IN_WINDOWS gMainBoardCommunication.Excute(); // gResourceLoader.Excute(); gDisplayRender.Excute(); gCduCommunication.Excute(); while(globAppQuit != INS_TRUE) { SLEEP(500); } gMainBoardCommunication.TryStop(); // gResourceLoader.TryStop(); gDisplayRender.TryStop(); gCduCommunication.TryStop(); SLEEP(200); gMainBoardCommunication.Stop(); // gResourceLoader.Stop(); gDisplayRender.Stop(); gCduCommunication.Stop(); gMainBoardCommunication.DeInit(); // gResourceLoader.DeInit(); gDisplayRender.DeInit(); gCduCommunication.DeInit(); //fflush(stdout); return 0; }