亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tiregauge.c

?? Tilcon是目前最先進的實時操作系統圖形開發工具。同步支持最新版本的Tornado/VxWorks以及WindML多媒體庫。適用與VxWorks實時環境下構建虛擬儀表
?? C
字號:
/***********************************************************************
**      simpletemplate.c
***********************************************************************/

/*----------------------------------------------------------------------
**      Define the Main TWD window filename.
**
**      To use a filename other than "main.twd", you can give the name
**      of your TWD file on the command line as the first argument or
**      change the following line:
*/

#define MAIN_WINDOW_FILE  "main.twd"

/*----------------------------------------------------------------------
**      Change the following lines if you are going beyond a simple application
**
**      Each engine can work with many applications but APPNAME should be unique
**      unless the applications cooperate to share the same objects.
**
**      Each application can open many channels to other applications and
**      engines but each channel's USERPROG in the application must be unique.
*/

#define APPNAME                 "simpletemplate"
#define USERPROG                "simpletemplate"


/*----------------------------------------------------------------------
**      INCLUDE FILES
*/

#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#include <tilcon/TRTAPI.h>      /* Tilcon API functions */

#if defined (CC_TRT_DOS)
#include <windows.h>
#endif


/*----------------------------------------------------------------------
**      define TRT_OS_ENV
**
**      NOTE: do not change the order
**            CC_TRT_WCE has CC_TRT_DOS defined as well and must follow it
*/
#ifdef          CC_TRT_VXWORKS
#define TRT_OS_ENV TRT_VXWORKS
#endif

#ifdef          CC_TRT_NTO
#define TRT_OS_ENV TRT_NTO_PHOTON
#endif

#ifdef          CC_TRT_DOS
#define TRT_OS_ENV TRT_MS_WINDOWS
#endif

#ifdef          CC_TRT_WCE
#define TRT_OS_ENV TRT_WCE
#endif

#ifdef          CC_TRT_LINUX
#define TRT_OS_ENV TRT_LNX_X11R6
#endif


/*----------------------------------------------------------------------
**      GLOBALS
*/

pid_t TRT_cid;                             /* Identifies Tilcon Runtime */
TRT_ReceiveData rec_data;                  /* Record from API */
char *main_window_file = MAIN_WINDOW_FILE; /* twd filename */
char  main_window_id[TRT_MAX_ID_LENGTH];   /* window id inside file */


/*----------------------------------------------------------------------
**      GUI Abstraction Layer
*/

void gui_finished()
{
    TRT_SetValues(TRT_cid,"Start", TRT_ATT_DIM,0,NULL);
    TRT_SetValues(TRT_cid,"Stop",TRT_ATT_DIM,1,NULL);
}

void gui_set_pressure(double pressure)
{
    TRT_SetValues(TRT_cid,"Pressure",TRT_ATT_VALUE,pressure,NULL);
}

double gui_get_setpoint()
{
    double tmp;

    TRT_GetValues(TRT_cid,"Setpoint",TRT_ATT_VALUE,&tmp,NULL);
    return(tmp);
}

/*----------------------------------------------------------------------
**      SIMULATE HARDWARE
**
**      the hardware is composed of the following in sequence:
**              - a compressor
**              - a valve to allow air to escape
**              - a pressure sensor on the hose to the item being filled
*/

#define HW_SIMULATION	1
#define COMPRESSOR_OFF_VALVE_CLOSED  0  /* start and finish     */
#define COMPRESSOR_OFF_VALVE_OPEN    1  /* pressure dropping    */
#define COMPRESSOR_ON_VALVE_CLOSED   2  /* pressure increasing  */
#define COMPRESSOR_ON_VALVE_OPEN     3  /* useless -- never use */

static int hw_state = COMPRESSOR_OFF_VALVE_CLOSED;
static double hw_pressure = 0.0;

void hw_simulate()
{
    switch(hw_state)
    {
        case COMPRESSOR_OFF_VALVE_CLOSED:
            break;

        case COMPRESSOR_OFF_VALVE_OPEN:
            hw_pressure -= 0.5;
            break;

        case COMPRESSOR_ON_VALVE_CLOSED:
            hw_pressure += 0.5;
            break;

        case COMPRESSOR_ON_VALVE_OPEN:
            /*
            **  should never be here
            */
            break;

    }
}

void hw_simulate_new_tire(double pressure)
{
    hw_pressure = pressure;
}

double hw_read_pressure()
{
    return(hw_pressure);
}

void hw_incr_pressure()
{
    hw_state = COMPRESSOR_ON_VALVE_CLOSED;
}

void hw_decr_pressure()
{
    hw_state = COMPRESSOR_OFF_VALVE_OPEN;
}

void hw_hold_pressure()
{
    hw_state = COMPRESSOR_OFF_VALVE_CLOSED;
}

/*----------------------------------------------------------------------
**      Application Logic
*/

#define APP_START         0
#define APP_FILLING       1
#define APP_EMPTYING      2

static int    app_state = APP_START;
static double app_pressure;
static double app_setpoint;

void app_update()
{
    /*
    **  Note that app_setpoint was read from the GUI layer in by app_start()
    **  and will not be reread until finished
    */
    
	if(app_state != APP_START)
    {
        app_pressure = hw_read_pressure();
        gui_set_pressure(app_pressure);
    }

    switch(app_state)
    {
        case APP_FILLING:
            if(app_pressure >= app_setpoint)
            {
                hw_hold_pressure();
                app_state = APP_START;
                gui_finished();
            }
            break;

        case APP_EMPTYING:
            if(app_pressure <= app_setpoint)
            {
                hw_hold_pressure();
                app_state = APP_START;
                gui_finished();
            }
            break;

        case APP_START:
            /*
            **  nothing to do
            */
            break;
    }
}

void app_start()
{
    switch(app_state)
    {
        case APP_START:
            app_setpoint = gui_get_setpoint();
            app_pressure = hw_read_pressure();

            if(app_pressure > (app_setpoint + 0.25)) 
            {
                hw_decr_pressure();
                app_state = APP_EMPTYING;
            }
            else if(app_pressure < (app_setpoint - 0.25))
            {
                hw_incr_pressure();
                app_state = APP_FILLING;
            }
            else
            {
                /*
                **      tire is at the correct pressure
                */

#ifdef HW_SIMULATION
                /*
                **      app logic for simulated hardware
                **
                **      simulate a new tire at 0 pressure
                */
                hw_simulate_new_tire(0.0);
                gui_set_pressure(0.0);
                hw_incr_pressure();
                app_state = APP_FILLING;
#else
                /*
                **      app logic for real hardware
                */
                hw_hold_pressure();
                app_state = APP_START;
                gui_finished();
#endif
            }
            break;

        case APP_FILLING:
        case APP_EMPTYING:
            /*
            **  ignore Start button presses in other states
            **  user may have pressed it twice quickly
            */
            break;
    }
}

void app_stop()
{
    hw_hold_pressure();
    app_state = APP_START;
}

/*----------------------------------------------------------------------
**      On Error Exit With Message Box
*/

void ExitBox(char *ErrorMessage)
{
    TRT_MessageBox( TRT_cid, NULL, APPNAME,
            ErrorMessage, NULL, "OK", NULL,
            TRT_MessageBox_FontHelvetica, 14,
            TRT_MessageBox_Exclamation|TRT_MessageBox_Wait,
            0, NULL, NULL);
    TRT_Exit (TRT_cid);
    exit(0);
}

/***********************************************************************
**************************  Main Entry Point  **************************
***********************************************************************/

#if defined(CC_TRT_DOS) && !defined(_CONSOLE)
/*----------------------------------------------------
**      MS Windows non-console application entry point
*/
int PASCAL WinMain ( HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow )
{
#else
/*----------------------------------------------------
**      standard application entry point
*/
int main ( int argc, char *argv[] )
{
#endif

    /*----------------------------------------------
    **  variables
    */

    long           errorcode = 0;
    int            c;
    int            ContinueLooping = TRUE;
    TRT_StartData  StartData;


    /*----------------------------------------------
    **  if given an optional command line argument , use it
    */

#if defined(CC_TRT_DOS) && !defined(_CONSOLE)

    if(lpszCmdLine && lpszCmdLine[0])
    {
        /*
        **      Assume the lpszCmdLine contains only
        **      the single TWD filename
        */
        main_window_file = lpszCmdLine;
    }

#else

    if(argc > 1)
    {
        main_window_file = argv[1];
    }

#endif

    /*----------------------------------------------
    **  Initialize the StartData structure
    */
    StartData.Os_Env    = TRT_OS_ENV;
    StartData.Display   = NULL;
    StartData.IPAddr    = NULL;
    StartData.AppName   = APPNAME;
    StartData.Userprog  = USERPROG;
    StartData.Flags     = 0;

    /*----------------------------------------------
    **  Start the Embedded Engine and connect to it
    */
    errorcode = TRT_StartEx (0, &StartData);
    TRT_cid   = StartData.TRT_CID;

    if(errorcode)
    {
            printf("Cannot Start Runtime\n");
            exit(0);
    }

    /*----------------------------------------------
    **  force all API commands to be synchronous
    */
    errorcode = TRT_Debug(TRT_cid, 3);

    if(errorcode) ExitBox("Cannot run TRT_Debug");

    /*----------------------------------------------
    **  Setup timer hints for 1/10th second
    */

    errorcode  = TRT_TimerHintEnable(TRT_cid,2);  /* 2*50ms */

    if(errorcode) ExitBox("Cannot start timerhints");

    /*----------------------------------------------
    **  Load Main Window
    */
    errorcode  = TRT_WindowLoad(TRT_cid, main_window_file );

    if(errorcode) ExitBox("Cannot load the Main Window! File NOT found");

    /*----------------------------------------------
    **  Get the name of the Window
    */
    errorcode = TRT_GetWindowID(TRT_cid,main_window_id);

    if(errorcode) ExitBox("Cannot Get Main Window ID");

    /*----------------------------------------------
    **  Display Main Window
    */
    errorcode = TRT_WindowDisplay(TRT_cid,main_window_id);

    if(errorcode) ExitBox("Cannot Display Main Window");

    /*----------------------------------------------
    **  Main Loop
    **  Wait for communication from Engine
    **  Act on notification
    */
    while(ContinueLooping)
    {

        /* Wait for a notification */
        c = TRT_GetInput(NULL, 0, NULL, 0, &rec_data, TRT_BLOCK);

        switch(c)
        {
            /*------------------
            **  Received a standard notification
            */
            case 0:
            {
                /*
				** what type of object is notifying us?
                */
				switch (rec_data.code)
                {
                    /*------------------
                    **  if 'X' close button is presed
                    **  on the window title bar, then stop looping
                    */
                    case TRT_window:
                    if (rec_data.state == TRT_window_quit)
                    {
                        ContinueLooping = FALSE;
                    }
                    break;

                    /*------------------*/
                    case TRT_timer_hint:
                    hw_simulate();
                    app_update();
                    break;

                    /*------------------*/
                    case TRT_button:
                    if(strcmp(rec_data.ID,"Start") == 0)
                    {
                        app_start();
                        break;
                    }

                    /*------------------*/
                    if(strcmp(rec_data.ID,"Stop") == 0)
                    {
                        app_stop();
                        break;
                    }

                    /*
                    ** deliberately fall through to default
                    ** no break;
                    */

                    /*------------------*/
                    default:
                    {
                        char message[40+TRT_MAX_ID_LENGTH];
                        sprintf(message,"Unhandled notification for object '%s'",rec_data.ID);
                        TRT_MessageBox( TRT_cid, NULL, APPNAME,
                            message, NULL, "OK", NULL,
                            TRT_MessageBox_FontHelvetica, 14,
                            TRT_MessageBox_Exclamation|TRT_MessageBox_Wait,
                                                0, NULL, NULL);
                    }

                }
            }
            break;

            /*------------------
            **  A Callback function was called inside TRT_GetInput
            */
            case 1:
            break;

            /*------------------
            **  Non-blocking mode -- no new events or a critical error
            **  Blocking mode -- a critical error
            */
            case -1:
            break;

            /*------------------
            **  should never happen
            */
            default:
            break;

        }
    }

    /*----------------------------------------------
    **  Cleanup and exit
    */

    TRT_WindowDelete (TRT_cid, main_window_id ); /* Close Window */
    TRT_Exit (TRT_cid);                          /* Notify Runtime to exit */
    return(0);
}

/********************** end of file simpletemplate.c ********************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区免费在线观看| 成人av电影免费在线播放| 精品一区二区久久| 精品国产成人在线影院| 日本不卡在线视频| 精品国产凹凸成av人导航| 国产精品正在播放| 国产精品美女久久久久久久久| 成人理论电影网| 亚洲综合精品久久| 91精品国产黑色紧身裤美女| 韩国午夜理伦三级不卡影院| 欧美韩国日本一区| 91成人免费网站| 日本欧美一区二区在线观看| 国产婷婷色一区二区三区四区| 国产丶欧美丶日本不卡视频| 亚洲激情图片一区| 日韩一区和二区| 岛国一区二区在线观看| 欧美日韩精品专区| 亚洲日本在线天堂| 91精品久久久久久蜜臀| 国模大尺度一区二区三区| 一区二区中文字幕在线| 欧美日韩国产另类一区| 国产精品伊人色| 一个色在线综合| 2020国产精品久久精品美国| 91免费版在线| 狠狠色丁香久久婷婷综合_中| 国产精品你懂的在线欣赏| 精品视频在线免费观看| 国产一区久久久| 亚洲一区二区三区四区五区黄| 精品欧美乱码久久久久久1区2区| 成人avav影音| 日韩精品久久理论片| 国产精品福利一区二区| 欧美午夜精品一区二区三区| 国产福利一区在线| 日韩av成人高清| 亚洲精品国产高清久久伦理二区| 欧美不卡一区二区三区| 在线观看亚洲专区| 久久综合九色综合欧美98| 成人av在线一区二区| 麻豆91在线播放免费| 亚洲裸体xxx| 国产欧美一区二区三区网站| 欧美一区二区三区免费观看视频 | 欧美日韩亚洲不卡| 国产一区二区三区不卡在线观看 | 亚洲成人自拍网| 欧美国产精品v| 精品国产一区二区在线观看| 欧美揉bbbbb揉bbbbb| 91麻豆免费观看| 成人激情午夜影院| 国产九色sp调教91| 久久精品99久久久| 亚洲成年人网站在线观看| 亚洲婷婷综合色高清在线| 久久精品亚洲精品国产欧美kt∨ | 国产成人精品免费| 捆绑紧缚一区二区三区视频| 婷婷成人综合网| 亚洲成人av电影在线| 亚洲综合视频网| 亚洲精品成人悠悠色影视| 国产精品日产欧美久久久久| 亚洲精品在线网站| 欧美mv日韩mv国产网站| 日韩亚洲欧美一区二区三区| 欧美精品一级二级| 91精品国产综合久久久久久| 欧美日韩亚洲综合| 91国内精品野花午夜精品| 91网上在线视频| 色香色香欲天天天影视综合网| 国产高清在线观看免费不卡| 国产白丝精品91爽爽久久| 国产成人高清在线| 99免费精品在线| 91视频观看视频| 激情深爱一区二区| 国产人妖乱国产精品人妖| 精品久久一区二区三区| 欧美一区二区三区在线看| 欧美一级高清大全免费观看| 欧美一区中文字幕| 26uuu另类欧美| 日本一区二区在线不卡| 综合av第一页| 午夜精品国产更新| 麻豆精品视频在线| 国产乱子伦一区二区三区国色天香 | 成人免费毛片片v| 精品久久久久av影院| 精品视频1区2区3区| 91精品国产色综合久久不卡蜜臀 | 欧美日韩国产精品成人| 欧美日韩不卡在线| 日韩欧美在线综合网| 久久九九久久九九| 亚洲美女屁股眼交3| 视频一区二区欧美| 激情综合色播五月| eeuss鲁片一区二区三区在线看| 色哟哟一区二区三区| 在线成人小视频| 国产亚洲综合性久久久影院| 亚洲激情男女视频| 免费的成人av| 成人av在线播放网站| 欧美亚洲动漫精品| 精品国产91久久久久久久妲己| 中文字幕一区av| 日韩电影在线观看一区| 成人性色生活片免费看爆迷你毛片| 一本大道av伊人久久综合| 日韩一区二区三区av| 国产精品久久夜| 日本成人在线看| 99久久国产综合精品麻豆| 91精品国产手机| 亚洲男同性恋视频| 色噜噜夜夜夜综合网| 欧美日韩1234| 国产精品免费网站在线观看| 三级欧美在线一区| 不卡免费追剧大全电视剧网站| 26uuu亚洲婷婷狠狠天堂| 狠狠色狠狠色综合| 91久久精品网| 国产精品嫩草99a| 精品一区二区久久久| 欧美三级在线看| 亚洲欧洲另类国产综合| 精品无人码麻豆乱码1区2区| 欧美三级电影一区| 日韩一区中文字幕| 国产高清不卡一区二区| 欧美xxxxx裸体时装秀| 亚洲成a人片在线不卡一二三区| 成人a免费在线看| 久久精品夜夜夜夜久久| 精品制服美女久久| 91精品国产欧美一区二区成人| 一区二区欧美精品| 91麻豆免费视频| 最新国产の精品合集bt伙计| 国产成人精品三级| 国产无人区一区二区三区| 久久99国产精品成人| 日韩免费观看2025年上映的电影 | 久久精品在这里| 精品一区二区三区视频在线观看| 777奇米四色成人影色区| 亚洲一区二区五区| 欧洲av在线精品| 亚洲视频香蕉人妖| 91免费国产在线| 亚洲欧美日韩人成在线播放| 99久久国产综合精品色伊| 最近中文字幕一区二区三区| 97精品电影院| 亚洲激情图片qvod| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 欧美喷水一区二区| 亚洲综合一二三区| 欧美在线一二三四区| 亚洲一区二区在线免费看| 欧美日本在线观看| 秋霞电影一区二区| 精品国产一区二区三区四区四| 久久国产尿小便嘘嘘| 26uuu精品一区二区在线观看| 激情图片小说一区| 国产精品少妇自拍| 日韩av午夜在线观看| 不卡一区二区三区四区| 中文字幕制服丝袜成人av| 99精品国产热久久91蜜凸| 亚洲精品欧美在线| 欧美裸体一区二区三区| 美女免费视频一区二区| 久久久不卡网国产精品二区| 粉嫩aⅴ一区二区三区四区| 亚洲色图在线播放| 欧美日韩视频第一区| 久草在线在线精品观看| 国产欧美综合在线观看第十页| av电影在线观看不卡| 亚洲一区二区三区精品在线| 91精品国产综合久久久久久漫画 | 国产精品综合一区二区三区| 中文字幕第一页久久| 欧美性色综合网| 久久99最新地址|