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

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

?? serial.c

?? msp430心電儀上位機的心電圖顯示程序。為了顯示EKG
?? C
?? 第 1 頁 / 共 2 頁
字號:
        ret = cfsetospeed(&termios, B115200);        break;#if defined(B230400)    case 230400:        ret = cfsetospeed(&termios, B230400);        break;#endif#if defined(B460800)    case 460800:        ret = cfsetospeed(&termios, B460800);        break;#endif#if defined(B921600)    case 921600:        ret = cfsetospeed(&termios, B921600);        break;#endif    }    if (ret < 0)    {        close(ports[port].fd);        ports[port].fd = -1;        return  -1;    }    do    {        ret = tcsetattr(ports[port].fd, TCSANOW, &termios);    }    while (ret < 0  &&  errno == EINTR);    if (ret < 0)    {        close(ports[port].fd);        ports[port].fd = -1;        return  -1;    }#endif    ports[port].serial_in_ptr = ports[port].serial_in_buf;    ports[port].serial_in_count = 0;    return  port;}/* Close serial connection */void serial_close(int port){    assert(port >= 0  &&  port < MAX_PORTS);#if defined(WIN32)    if (ports[port].handle != INVALID_HANDLE_VALUE)    {        CloseHandle(ports[port].handle);        ports[port].handle = INVALID_HANDLE_VALUE;    }#else    if (ports[port].fd >= 0)    {        close(ports[port].fd);        ports[port].fd = -1;    }#endif}/* Receive character, timeout is in in milliseconds, -1 means wait   forever.  Returns error code if timeout or error, and charcter code    othervise */int serial_getchar(int port, int timeout){    assert(port >= 0  &&  port < MAX_PORTS);    assert(timeout == -1  ||  timeout >= 0);    if (ports[port].serial_in_count > 0)    {        ports[port].serial_in_count--;        return (*ports[port].serial_in_ptr++ & 0xff);  /* 8-bit transparent */    }    ports[port].serial_in_count = serial_read(port, ports[port].serial_in_buf, sizeof(ports[0].serial_in_buf), timeout);    if (ports[port].serial_in_count < 0)    {        /* Error */        return  RP_VAL_SERIALGETCHARRET_ERR;    }    if (ports[port].serial_in_count == 0)    {        /* Timeout */        return  RP_VAL_SERIALGETCHARRET_TMOUT;    }    ports[port].serial_in_ptr = ports[port].serial_in_buf;    ports[port].serial_in_count--;    return (*ports[port].serial_in_ptr++ & 0xff);}/* Receive character, timeout is in in milliseconds, -1 means wait   forever.  Returns error code if timeout or error, and charcter code    othervise */int serial_read(int port, char *buf, size_t len, int timeout){#if defined(WIN32)    int ret;    COMMTIMEOUTS ctm;    DWORD dtmp;    BOOL res;    assert(port >= 0  &&  port < MAX_PORTS);    assert(ports[port].handle != INVALID_HANDLE_VALUE);    assert(timeout == -1  ||  timeout >= 0);    if (!(res = GetCommTimeouts(ports[port].handle, &ctm)))    {        assert(0);        return  -1;    }    assert(ctm.ReadIntervalTimeout == 20);    assert(ctm.ReadTotalTimeoutMultiplier == 0);    assert(ctm.WriteTotalTimeoutConstant == 0);    assert(ctm.WriteTotalTimeoutMultiplier == 0);    ctm.ReadTotalTimeoutConstant = timeout;    if (!(res = SetCommTimeouts(ports[port].handle, &ctm)))    {        assert(0);        return  -1;    }    if (!(res = ReadFile(ports[port].handle, buf, len, &dtmp, NULL)))        return  -1;    ret = dtmp;#else    int ret;    assert(port >= 0  &&  port < MAX_PORTS);    assert(ports[port].fd >= 0);    assert(timeout == -1  ||  timeout >= 0);    if (timeout != -1)    {        struct timeval tv;        struct timeval end;        struct timeval cur;        struct timezone tz;        fd_set rset;        /* It is quite possible that targets would install           some signal handlers, so we have to ignore EINTR           in all cases */        /* Let us calculate the timeout */        tv.tv_sec = timeout/1000;        tv.tv_usec = (timeout%1000)*1000;        /* Let us get current time */        if ((ret = gettimeofday(&cur, &tz)) < 0)            return -1;        /* Let us figure out end time */        end.tv_sec  = cur.tv_sec + tv.tv_sec;        end.tv_usec = cur.tv_usec + tv.tv_usec;        if (end.tv_usec >= 1000000)        {            end.tv_sec++;            end.tv_usec -= 1000000;        }        assert(end.tv_usec < 1000000);        for (;;)        {            FD_ZERO(&rset);            FD_SET(ports[port].fd, &rset);            if ((ret = select(ports[port].fd + 1, &rset, NULL, NULL, &tv)) > 0)            {                assert(FD_ISSET(ports[port].fd, &rset));                break;            }            if (ret == 0)            {                /* Timeout */                return  0;            }            if (ret < 0  &&  errno != EINTR)                return  -1;            /* We have been interrupted by a signal */            /* We have to recalculate the timeout */            if ((ret = gettimeofday(&cur, &tz)) < 0)                return  -1;            if (cur.tv_sec > end.tv_sec                ||                (cur.tv_sec == end.tv_sec  &&  cur.tv_usec >= end.tv_usec))            {                tv.tv_sec  = 0;                tv.tv_usec = 0;                continue;            }            tv.tv_sec = end.tv_sec - cur.tv_sec;            if (cur.tv_usec <= end.tv_usec)            {                tv.tv_usec = end.tv_usec - cur.tv_usec;            }            else            {                assert(tv.tv_sec > 0);                tv.tv_sec--;                tv.tv_usec = end.tv_usec + 1000000 - cur.tv_usec;            }        }    }    else    {        /* Forever */        for (;;)        {            fd_set rset;            FD_ZERO(&rset);            FD_SET(ports[port].fd, &rset);            if ((ret = select(ports[port].fd + 1, &rset, NULL, NULL, NULL)) > 0)            {                assert(FD_ISSET(ports[port].fd, &rset));                break;            }            if (ret < 0  &&  errno != EINTR)                return  -1;            assert(ret != 0);            assert(errno == EINTR);        }    }    /* We have to ignore EINTR here too */    do    {        ret = read(ports[port].fd, buf, len);    }    while (ret < 0  &&  errno == EINTR);#endif    return ret;}/* Send character */void serial_putchar(int port, int c){    char b[4];#if defined(WIN32)    DWORD dtmp;    assert(port >= 0  &&  port < MAX_PORTS);    assert(ports[port].handle != INVALID_HANDLE_VALUE);    b[0] = c & 0xff;    WriteFile(ports[port].handle, b, 1, &dtmp, NULL);#else    int ret;    assert(port >= 0  &&  port < MAX_PORTS);    assert(ports[port].fd >= 0);    b[0] = c & 0xff;    ret = 0;    do    {        ret = write(ports[port].fd, b, 1);    }    while (ret < 0  &&  errno == EINTR);#endif}/* Send buffer */int serial_write(int port, char *buf, size_t len){#if defined(WIN32)    BOOL res;    DWORD dtmp;    assert(port >= 0  &&  port < MAX_PORTS);    assert(ports[port].handle != INVALID_HANDLE_VALUE);    assert(buf != NULL);    assert(len > 0);    res = WriteFile(ports[port].handle, buf, len, &dtmp, NULL);    if (!res  ||  dtmp != len)        return  FALSE;#else    int ret;    assert(port >= 0  &&  port < MAX_PORTS);    assert(ports[port].fd >= 0);    assert(buf != NULL);    assert(len > 0);    ret = 0;    do    {        ret = write(ports[port].fd, buf, len);    }    while (ret < 0  &&  errno == EINTR);    if (ret != (int) len)        return  FALSE;#endif    return  TRUE;}/* Discard input */void serial_flushinput(int port){    assert(port >= 0  &&  port < MAX_PORTS);#if defined(WIN32)    assert(ports[port].handle != INVALID_HANDLE_VALUE);    PurgeComm(ports[port].handle, PURGE_RXCLEAR);#else    assert(ports[port].fd >= 0);    tcflush(ports[port].fd, TCIFLUSH);#endif    ports[port].serial_in_count = 0;}/* Send break */void serial_sendbreak(int port){    assert(port >= 0  &&  port < MAX_PORTS);#if defined(WIN32)    assert(ports[port].handle != INVALID_HANDLE_VALUE);    SetCommBreak(ports[port].handle);    Sleep(500);    ClearCommBreak(ports[port].handle);#else    assert(ports[port].fd >= 0);    tcsendbreak(ports[port].fd, 0);#endif}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产麻豆91精品| 精品剧情v国产在线观看在线| 91精品国产品国语在线不卡| 国产欧美精品在线观看| 亚洲精品成人悠悠色影视| 激情六月婷婷综合| 欧美色网站导航| 国产精品乱人伦| 精品写真视频在线观看| 欧美日韩一区二区三区四区五区| 国产欧美久久久精品影院| 麻豆视频观看网址久久| 在线观看国产一区二区| 亚洲欧美怡红院| 国产69精品一区二区亚洲孕妇| 717成人午夜免费福利电影| 国产精品自在在线| 日韩一区二区在线观看| 亚洲一区二区在线观看视频| 91在线高清观看| 国产精品电影一区二区三区| 国产自产2019最新不卡| 精品久久一二三区| 久久精品国产一区二区三区免费看 | 国产精品视频麻豆| 麻豆国产精品777777在线| 欧美人与z0zoxxxx视频| 亚洲va欧美va国产va天堂影院| 91免费看片在线观看| **网站欧美大片在线观看| 9久草视频在线视频精品| 国产色婷婷亚洲99精品小说| 国产剧情在线观看一区二区| 精品日韩在线一区| 国产精品影音先锋| 国产亚洲欧美在线| 丁香啪啪综合成人亚洲小说| 中文字幕av不卡| 91看片淫黄大片一级在线观看| 亚洲欧美一区二区三区久本道91| 波多野洁衣一区| 亚洲免费毛片网站| 在线免费av一区| 日韩经典中文字幕一区| 日韩欧美一区二区三区在线| 黄色资源网久久资源365| 久久亚洲精品国产精品紫薇| 国产精品一二一区| 综合欧美一区二区三区| 欧美三级在线播放| 蜜臂av日日欢夜夜爽一区| 久久精品人人做人人爽人人| 99视频精品免费视频| 久久婷婷成人综合色| 欧美大黄免费观看| 国产一区激情在线| 国产视频一区不卡| 91网址在线看| 日韩经典一区二区| 国产精品沙发午睡系列990531| 91论坛在线播放| 理论电影国产精品| 国产精品丝袜在线| 欧美久久久一区| 国产成人8x视频一区二区 | 成人免费在线观看入口| 欧美影院午夜播放| 国产伦精品一区二区三区免费迷| 亚洲色图在线看| 日韩区在线观看| 一本到不卡精品视频在线观看| 免费观看一级欧美片| 日韩码欧中文字| 欧美精品一区二区三区四区 | 日韩免费一区二区三区在线播放| 成人午夜免费av| 老司机精品视频导航| 一区二区视频在线看| 欧美精品一区二区久久婷婷| 91美女片黄在线观看| 经典三级一区二区| 亚洲bt欧美bt精品| 自拍偷拍亚洲综合| 亚洲一区二区三区四区中文字幕| 久久这里只精品最新地址| 欧美在线看片a免费观看| 国产成人免费在线视频| 日韩综合小视频| 夜夜嗨av一区二区三区| 国产精品久久777777| 久久综合久久99| 欧美成人a在线| 欧美精品丝袜中出| 欧美性猛片xxxx免费看久爱| av一区二区三区| 国产精品99久久久| 亚洲mv在线观看| 一区二区三区欧美日| 中文字幕一区二区三区精华液| 久久综合给合久久狠狠狠97色69| 日韩三级视频在线看| 8x福利精品第一导航| 欧美日韩一卡二卡三卡| 91免费看片在线观看| 久久成人综合网| 麻豆精品一二三| 日韩精品每日更新| 人人狠狠综合久久亚洲| 午夜天堂影视香蕉久久| 亚洲一区自拍偷拍| 粉嫩av亚洲一区二区图片| 国产一区欧美一区| 国产精品自拍一区| 国产成人精品www牛牛影视| 久久99国产精品尤物| 精品一区二区免费看| 开心九九激情九九欧美日韩精美视频电影 | 欧美探花视频资源| 欧美系列亚洲系列| 91福利在线看| 在线观看一区二区视频| 欧美色精品在线视频| 精品视频免费看| 欧美一区二区三区小说| 日韩一区和二区| 久久久久久久久99精品| 中文字幕国产精品一区二区| 国产精品女主播av| 亚洲精品视频免费看| 婷婷国产在线综合| 精品一区二区三区免费视频| 国产美女精品人人做人人爽| 精东粉嫩av免费一区二区三区| 国产高清精品网站| 96av麻豆蜜桃一区二区| 欧美日韩一区中文字幕| 精品久久久久久无| 中文字幕免费在线观看视频一区| 亚洲婷婷在线视频| 天堂成人国产精品一区| 极品美女销魂一区二区三区| av中文字幕不卡| 欧美三电影在线| 欧美精品一区二区三区蜜臀| 国产精品天天看| 日本中文一区二区三区| 黑人精品欧美一区二区蜜桃 | 成人短视频下载| 在线观看91精品国产入口| 久久综合色8888| 亚洲精品菠萝久久久久久久| 久久成人免费网站| 91麻豆国产自产在线观看| 日韩精品一区二区三区老鸭窝| **欧美大码日韩| 黄网站免费久久| 欧美日本视频在线| 欧美激情中文字幕一区二区| 夜夜嗨av一区二区三区网页| 黄色小说综合网站| 欧美人牲a欧美精品| 欧美—级在线免费片| 日日噜噜夜夜狠狠视频欧美人| 成人激情视频网站| 精品国产免费人成电影在线观看四季| 中文字幕五月欧美| 韩国欧美一区二区| 在线不卡a资源高清| 亚洲欧美日韩国产手机在线| 久久97超碰国产精品超碰| 欧美日韩一区二区三区不卡 | 一区二区免费看| 粉嫩13p一区二区三区| 日韩精品一区国产麻豆| 亚洲一二三专区| 91在线小视频| 国产精品日韩精品欧美在线| 精东粉嫩av免费一区二区三区| 欧美乱妇一区二区三区不卡视频| 日韩毛片在线免费观看| 成人夜色视频网站在线观看| 日韩精品资源二区在线| 日本不卡一区二区| 欧美三级欧美一级| 亚洲狠狠丁香婷婷综合久久久| 成人免费av资源| 国产精品久久久久久户外露出| 国产成人日日夜夜| www久久精品| 精品一区二区国语对白| 日韩三级视频中文字幕| 麻豆成人免费电影| 精品久久一区二区三区| 美腿丝袜亚洲色图| 精品精品国产高清a毛片牛牛| 全国精品久久少妇| 91麻豆精品国产91久久久久 | 日韩精品五月天| 这里是久久伊人| 麻豆专区一区二区三区四区五区|