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

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

?? sioport.c

?? 該文件為UCOSII下的TCP/IP移植(二)
?? C
字號:
// Serial.cpp

#define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
#include <windows.h>
//#include <stdio.h>
//#include <process.h>
//#include <conio.h>
#include "sioport.h"


HANDLE m_hIDComDev = NULL;
BOOL m_bOpened = FALSE;
OVERLAPPED m_OverlappedRead;
OVERLAPPED m_OverlappedWrite;


unsigned char IsOpened(void)
{
	return m_bOpened;
}

unsigned char Open(int nPort, int nBaud)
{
    char szPort[15];
    char szComParams[50];
    DCB dcb;
    COMMTIMEOUTS CommTimeOuts;
    unsigned char ucSet;

    if (m_bOpened)
        return TRUE;

    wsprintf(szPort, "COM%d", nPort);
    m_hIDComDev = CreateFile(szPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL);

    if (m_hIDComDev == INVALID_HANDLE_VALUE)
        return FALSE;

    memset(&m_OverlappedRead, 0, sizeof(OVERLAPPED));
    memset(&m_OverlappedWrite, 0, sizeof(OVERLAPPED));

    CommTimeOuts.ReadIntervalTimeout = 0xFFFFFFFF;
    CommTimeOuts.ReadTotalTimeoutMultiplier = 0;
    CommTimeOuts.ReadTotalTimeoutConstant = 0;
    CommTimeOuts.WriteTotalTimeoutMultiplier = 0;
    CommTimeOuts.WriteTotalTimeoutConstant = 5000;
    SetCommTimeouts(m_hIDComDev, &CommTimeOuts);

    wsprintf(szComParams, "COM%d:%d,n,8,1", nPort, nBaud);

    m_OverlappedRead.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
    m_OverlappedWrite.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);

    dcb.DCBlength = sizeof(DCB);
    GetCommState(m_hIDComDev, &dcb);
    dcb.BaudRate = nBaud;
    dcb.ByteSize = 8;
    dcb.Parity = 0;
    ucSet = (unsigned char)((FC_RTSCTS & FC_DTRDSR) != 0);
    ucSet = (unsigned char)((FC_RTSCTS & FC_RTSCTS) != 0);
    ucSet = (unsigned char)((FC_RTSCTS & FC_XONXOFF) != 0);
    if (!SetCommState(m_hIDComDev, &dcb) ||
        !SetupComm(m_hIDComDev, 10000, 10000) ||
        m_OverlappedRead.hEvent == NULL ||
        m_OverlappedWrite.hEvent == NULL)
    {
        DWORD dwError = GetLastError();
        if (m_OverlappedRead.hEvent != NULL)
            CloseHandle(m_OverlappedRead.hEvent);
        if (m_OverlappedWrite.hEvent != NULL)
            CloseHandle(m_OverlappedWrite.hEvent);
        CloseHandle(m_hIDComDev);
        return FALSE;
    }
    m_bOpened = TRUE;
    return m_bOpened;
}

unsigned char Close(void)
{
    if (!m_bOpened || m_hIDComDev == NULL)
        return TRUE;
    if (m_OverlappedRead.hEvent != NULL)
        CloseHandle(m_OverlappedRead.hEvent);
    if (m_OverlappedWrite.hEvent != NULL)
        CloseHandle(m_OverlappedWrite.hEvent);
    CloseHandle(m_hIDComDev);
    m_bOpened = FALSE;
    m_hIDComDev = NULL;
    return TRUE;
}

BOOL WriteCommByte(unsigned char ucByte)
{
    BOOL bWriteStat;
    DWORD dwBytesWritten;

    bWriteStat = WriteFile(m_hIDComDev, (LPSTR)&ucByte, 1, &dwBytesWritten, &m_OverlappedWrite);
    if (!bWriteStat && (GetLastError() == ERROR_IO_PENDING)) {
		if (WaitForSingleObject(m_OverlappedWrite.hEvent, 1000)) {
            dwBytesWritten = 0;
		} else {
            GetOverlappedResult(m_hIDComDev, &m_OverlappedWrite, &dwBytesWritten, FALSE);
            m_OverlappedWrite.Offset += dwBytesWritten;
        }
    }
    return TRUE;
}

int SendData(const char* buffer, int size)
{
    DWORD dwBytesWritten = 0;
    int i;

    if (!m_bOpened || m_hIDComDev == NULL)
        return 0 ;
    for (i = 0; i < size; i++) {
        WriteCommByte(buffer[i]);
        dwBytesWritten++;
    }
    return (int)dwBytesWritten;
}

int ReadDataWaiting(void)
{
    DWORD dwErrorFlags;
    COMSTAT ComStat;

    if (!m_bOpened || m_hIDComDev == NULL) 
        return 0 ;
    ClearCommError(m_hIDComDev, &dwErrorFlags, &ComStat);
    return (int)ComStat.cbInQue;
}

int ReadData(void* buffer, int limit)
{
    BOOL bReadStatus;
    DWORD dwBytesRead, dwErrorFlags;
    COMSTAT ComStat;

    if (!m_bOpened || m_hIDComDev == NULL) 
        return 0;
    ClearCommError(m_hIDComDev, &dwErrorFlags, &ComStat);
    if (!ComStat.cbInQue)
        return 0;
    dwBytesRead = (DWORD)ComStat.cbInQue;
    if (limit < (int)dwBytesRead)
        dwBytesRead = (DWORD)limit;
    bReadStatus = ReadFile(m_hIDComDev, buffer, dwBytesRead, &dwBytesRead, &m_OverlappedRead);
    if (!bReadStatus) {
        if (GetLastError() == ERROR_IO_PENDING) {
            WaitForSingleObject(m_OverlappedRead.hEvent, 2000);
            return (int)dwBytesRead;
        }
        return 0;
    }
    return (int)dwBytesRead;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月激情六月综合| 亚洲啪啪综合av一区二区三区| 一区二区成人在线观看| 91蜜桃婷婷狠狠久久综合9色| 中文字幕一区日韩精品欧美| 波多野结衣在线一区| 亚洲色图一区二区三区| 91香蕉视频黄| 亚洲国产日产av| 日韩欧美国产不卡| 国产一区二区精品久久91| 国产日产欧产精品推荐色| 成人av综合在线| 亚洲综合av网| 欧美大片在线观看| 国产91精品久久久久久久网曝门| 国产精品你懂的在线欣赏| 91久久线看在观草草青青 | 久久久久久免费| 国产成人激情av| 亚洲影院在线观看| 日韩午夜小视频| 成人国产电影网| 亚洲国产精品欧美一二99| 欧美老人xxxx18| 国内国产精品久久| 一区二区三区精品在线| 日韩三级伦理片妻子的秘密按摩| 国产在线精品一区二区不卡了| 国产婷婷色一区二区三区在线| 一本大道久久a久久精品综合| 日韩1区2区3区| 中文字幕亚洲在| 日韩女优毛片在线| 色系网站成人免费| 国产曰批免费观看久久久| 亚洲啪啪综合av一区二区三区| 91.麻豆视频| 国产精品18久久久久久久久| 亚洲卡通动漫在线| 久久久精品黄色| 欧美日韩极品在线观看一区| 国产激情视频一区二区三区欧美 | 九一久久久久久| 亚洲午夜久久久久久久久电影院| 久久综合色播五月| 欧美日本高清视频在线观看| 成人毛片老司机大片| 久久er精品视频| 午夜欧美一区二区三区在线播放| 国产精品久久午夜夜伦鲁鲁| 日韩一级大片在线观看| 欧美在线免费观看视频| 成人99免费视频| 精彩视频一区二区三区| 亚洲国产一区二区三区| 最新热久久免费视频| 久久久久久久久久久黄色| 日韩一区二区在线观看视频播放| 色婷婷亚洲精品| 波多野结衣亚洲| 丁香激情综合国产| 国产一区二区在线电影| 日本aⅴ免费视频一区二区三区 | 久久精品夜夜夜夜久久| 欧美一区二区三区四区五区 | 久久久三级国产网站| 91精品国产91热久久久做人人 | 欧美天堂亚洲电影院在线播放| 不卡av电影在线播放| 国产夫妻精品视频| 国产一区在线观看视频| 久久精品国产亚洲5555| 奇米影视在线99精品| 日韩av午夜在线观看| 亚洲五月六月丁香激情| 夜夜嗨av一区二区三区网页| 综合中文字幕亚洲| 亚洲日本一区二区| 一区二区三区在线视频观看| 亚洲视频每日更新| 成人欧美一区二区三区1314| 国产精品嫩草99a| 国产精品久久久久久妇女6080| 国产欧美日韩中文久久| 欧美激情一区三区| 国产精品视频免费看| 国产精品国产a| 亚洲免费观看高清完整版在线| 亚洲精品乱码久久久久久黑人| 亚洲欧美色综合| 亚洲一区中文日韩| 天涯成人国产亚洲精品一区av| 日日欢夜夜爽一区| 视频一区欧美日韩| 激情五月播播久久久精品| 精品系列免费在线观看| 国产不卡免费视频| 色综合天天做天天爱| 在线观看成人小视频| 91精品国产色综合久久ai换脸 | 色婷婷综合久久久久中文一区二区| 日本道色综合久久| 日韩一区国产二区欧美三区| 精品久久一区二区| 国产精品人妖ts系列视频| 亚洲麻豆国产自偷在线| 婷婷成人综合网| 国产精品一区二区三区四区| 9i在线看片成人免费| 欧美视频你懂的| 337p日本欧洲亚洲大胆精品| 国产精品久久久久久久久免费樱桃 | 亚洲国产一区二区a毛片| 蜜桃精品在线观看| 99综合影院在线| 6080日韩午夜伦伦午夜伦| 久久综合中文字幕| 一区二区三区精品在线观看| 免费高清不卡av| 99久久综合精品| 欧美一区二区在线不卡| 欧美激情在线看| 视频在线观看一区| 欧美视频日韩视频| 久久久久综合网| 亚洲午夜久久久| 粉嫩av亚洲一区二区图片| 欧美日韩精品一区二区在线播放| 久久这里只有精品6| 亚洲国产精品久久人人爱| 国产伦精品一区二区三区视频青涩 | 国产精品无人区| 免费观看成人av| 色综合久久久久久久久久久| 精品免费视频.| 亚洲成人在线免费| av毛片久久久久**hd| 精品国产麻豆免费人成网站| 亚洲女人小视频在线观看| 狠狠色狠狠色合久久伊人| 欧美三级欧美一级| 亚洲色图欧洲色图| 国产福利一区二区三区| 欧美一卡2卡3卡4卡| 一区二区三区在线观看国产| 国产久卡久卡久卡久卡视频精品| 欧美日韩成人综合| 亚洲精品视频自拍| 成人av网站免费| 日韩av中文字幕一区二区| 成人免费高清在线| 国产午夜亚洲精品羞羞网站| 免费看欧美女人艹b| 欧美日韩一区不卡| 一区二区三区四区乱视频| www.激情成人| 国产精品女人毛片| 国产成人av电影在线观看| 精品电影一区二区| 精品伊人久久久久7777人| 欧美另类一区二区三区| 亚洲一区二区精品久久av| 91网站黄www| 亚洲免费av高清| 91色视频在线| 一区二区三区免费观看| 91久久免费观看| 一级日本不卡的影视| 一本久道中文字幕精品亚洲嫩| 椎名由奈av一区二区三区| 97se亚洲国产综合在线| **网站欧美大片在线观看| www.欧美.com| 亚洲免费高清视频在线| 99久久精品费精品国产一区二区| 国产精品久久久久久久久免费相片| 粉嫩aⅴ一区二区三区四区| 欧美国产乱子伦 | 国产精品美女久久久久久| 国产99久久精品| 中文字幕视频一区| 色欧美片视频在线观看| 亚洲美女免费在线| 欧美性猛片xxxx免费看久爱| 午夜精品久久久| 精品久久久久香蕉网| 国产精品123区| 亚洲欧美国产77777| 欧美午夜寂寞影院| 蜜臀av在线播放一区二区三区| 欧美大胆人体bbbb| 成人做爰69片免费看网站| 18欧美乱大交hd1984| 欧美日韩一区在线观看| 日本欧美肥老太交大片| 久久久噜噜噜久噜久久综合| 成人黄动漫网站免费app| 中文字幕一区二区在线观看| 日本亚洲视频在线|