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

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

?? rs232u.cpp

?? Texas Instruments的TUSB3410轉串口電路測試應用程序的源碼。
?? CPP
字號:
/* Copyright (C) Jungo 2003 - 2004 */

#include <windows.h>
#include <commctrl.h>
#include <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
#include <process.h>
#include "rs232u.h"
#include "resource.h"
#include "rs232u_lib.h"

HINSTANCE hGInstance = NULL;
BOOL ReadThreadEnd = TRUE;
BOOL ReadThreadActive = FALSE;
WDL_HANDLE handle;
 
/****************************************************************
* Main Windows Application Routine
*****************************************************************/

int PASCAL WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nShowCmd)
{
    INITCOMMONCONTROLSEX ccex;

    hGInstance = hInstance; // store global copy of instance handle

    ccex.dwSize = sizeof(ccex);
    ccex.dwICC = ICC_PROGRESS_CLASS;

    // Initialize the common controls used in this app
    if (!InitCommonControlsEx(&ccex))
    {
        MessageBox(NULL, "Failed to Initialize Application", "Failure!",
            MB_ICONSTOP);
        return EXIT_FAILURE;
    }

    if (DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL,
        (DLGPROC)DlgProc)==-1)
    {
        MessageBox(NULL, "Failed to create main dialog box.", "Failure!",
            MB_ICONSTOP);
        return EXIT_FAILURE;
    }
    return EXIT_SUCCESS;
}

BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    static HWND hListBox;
    static HWND hSpeedList;
    WDL_STATUS status;
    char sMsg[200];
    char buf[512];

    switch(uMsg)
    {
    case WM_INITDIALOG:
    {
        WDL_CALLBACK_OPS ops;
        int i;

        hSpeedList = GetDlgItem(hwndDlg, IDC_SPEED_COMBO); 
        for (i = 0; i < 6; i++) 
            SendMessage(hSpeedList, CB_INSERTSTRING, i, (LPARAM) szBaudRate[i]); 
        SendMessage(hSpeedList, CB_SETCURSEL, 0, 0);
            
        hListBox = GetDlgItem(hwndDlg, IDC_MSGBOX);

        SendMessage(hListBox, LB_INSERTSTRING, 0, (LPARAM) "USB HID Monitor");

        status = WDL_Init(&handle, VID, PID, (void *)hwndDlg, "");
        if (status)
        {
            sprintf(sMsg, "WDL_Init() failed with status 0x%x - %s", status,
                WDL_Stat2Str(status));
            SendMessage(hListBox, LB_INSERTSTRING, 0, (LPARAM)sMsg);
            break;
        }
        ZeroMemory(&ops, sizeof(ops));
        ops.cbConnect = OnConnect;
        ops.cbDisconnect = OnDisconnect;
        status = WDL_SetNotificationCallback(handle, &ops);
        if (status)
        {
            sprintf(sMsg, "WDL_SetNotificationCallback() failed with "
                "status 0x%x - %s", status, WDL_Stat2Str(status));
            SendMessage(hListBox, LB_INSERTSTRING, 0, (LPARAM)sMsg);
            break;
        }

        if (WDL_IsAttached(handle)==WDL_SUCCESS)
        {
            SendMessage(hListBox, LB_INSERTSTRING, 0,
                (LPARAM)"USB Device Located!");
            OnConnect(handle, (void *)hwndDlg);
        }
        break;
    }

    case WM_COMMAND:
    {
        if (LOWORD(wParam) == IDC_SEND_BUTTON)
        {
            int bytes = GetDlgItemText(hwndDlg, IDC_MSGBOX_OUT, buf, sizeof(buf));
            status = RS232U_Write(handle, buf, bytes);
            if (status)
            {
                sprintf(sMsg, "RS232U_Write() failed with status 0x%x - %s ",
                    status, WDL_Stat2Str(status));
                MessageBox(NULL, sMsg, "Failed to write the text", MB_ICONSTOP);
            }
        }
        else if (LOWORD(wParam) == IDC_SPEED_COMBO && 
            HIWORD(wParam) == CBN_SELCHANGE)
        {
            int i;
            
           // int bytes = GetDlgItemText(hwndDlg, IDC_SPEED_COMBO, buf, sizeof(buf));

            /*
            for (i = 0; i < 6; i++)
                if (!strcmp(buf, szBaudRate[i]))
                    break;
                    */
            i = SendMessage((HWND)lParam, CB_GETCURSEL, 0, 0);
                    
            WDL_STATUS status = RS232U_SetSpeed(handle, (BYTE)i);
            if (status)
            {
                sprintf(sMsg, "RS232U_SetSpeed() failed with status 0x%x - %s ",
                    status, WDL_Stat2Str(status));
                MessageBox(NULL, sMsg, "Failed to set the speed", MB_ICONSTOP);
            }
        }
        else if (LOWORD(wParam) == IDC_HW_CHECK && HIWORD(wParam) == BN_CLICKED)
        {
            WPARAM iVal = SendMessage((HWND)lParam, BM_GETCHECK, 0, 0);     

            WDL_STATUS status = RS232U_SetHWFlowControl(handle, (iVal == BST_CHECKED));
            if (status)
            {
                sprintf(sMsg, "RS232U_SetHWFlowControl() failed with status 0x%x - %s ",
                    status, WDL_Stat2Str(status));
                MessageBox(NULL, sMsg, "Failed to set the hardware flow control", MB_ICONSTOP);

                WPARAM iOppositeVal = (iVal == BST_CHECKED) ? BST_UNCHECKED : BST_CHECKED;
                SendMessage((HWND)lParam, BM_SETCHECK, iOppositeVal, 0);
            }
        }
        break;
    }

    case WM_CLOSE:
        ReadThreadEnd = TRUE;

        if (ReadThreadActive)
        {
            PostMessage(hwndDlg, WM_CLOSE, 0, 0);
            break;
        }
        WDL_Close(handle);

        EndDialog(hwndDlg, 0);
        break;

    default:
        break;
    }
    return FALSE;
}

void ReadThread(void *context)
{
    HWND hListBox;
    size_t num_read;
    unsigned char msg[MAX_REPORT_LEN-2+1]; // +1 = null-terminated

    ReadThreadActive = TRUE;

    hListBox = GetDlgItem((HWND)context, IDC_MSGBOX);

    SendMessage(hListBox, LB_INSERTSTRING, 0, (LPARAM)"Read thread started");

    while (!ReadThreadEnd)
    {
        if (RS232U_Read(handle, msg, &num_read)==WDL_SUCCESS)
        {
            msg[num_read] = '\0';
            SendMessage(hListBox, LB_INSERTSTRING, 0, (LPARAM)msg);
        }
    }

    SendMessage(hListBox, LB_INSERTSTRING, 0, (LPARAM)"Read thread ended");

    ReadThreadActive = FALSE;
}

// Connect callback
void __cdecl OnConnect(WDL_HANDLE handle, void *context)
{
    char sMsg[200];
    WPARAM wNewCheckedVal = BST_CHECKED;

    HWND hListBox = GetDlgItem((HWND)context, IDC_MSGBOX);
    SendMessage(hListBox, LB_INSERTSTRING, 0, (LPARAM)"Connected!");

    WDL_STATUS status = RS232U_SetSpeed(handle, 0);
    if (status)
    {
        sprintf(sMsg, "RS232U_SetSpeed() failed with status 0x%x - %s ",
            status, WDL_Stat2Str(status));
        MessageBox(NULL, sMsg, "Failed to set the speed", MB_ICONSTOP);
    }

    HWND hHWFlowCtrlCheckBox = GetDlgItem((HWND)context, IDC_HW_CHECK);

    status = RS232U_SetHWFlowControl(handle, TRUE);
    if (status)
    {
        sprintf(sMsg, "RS232U_SetHWFlowControl() failed with status 0x%x - %s ",
            status, WDL_Stat2Str(status));
        MessageBox(NULL, sMsg, "Failed to set the hardware flow control", MB_ICONSTOP);
        wNewCheckedVal = BST_UNCHECKED;
    }

    SendMessage(hHWFlowCtrlCheckBox, BM_SETCHECK, wNewCheckedVal, 0);

    ReadThreadEnd = FALSE;
    _beginthread(ReadThread, 0, context);
}

// Disconnect callback
void __cdecl OnDisconnect(WDL_HANDLE handle, void *context)
{
    HWND hListBox = GetDlgItem((HWND)context, IDC_MSGBOX);

    SendMessage(hListBox, LB_INSERTSTRING, 0, (LPARAM)"Disconnected!");
    ReadThreadEnd = TRUE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本午夜一区二区| 亚洲人午夜精品天堂一二香蕉| 91蝌蚪国产九色| 成人免费高清视频在线观看| 从欧美一区二区三区| 国产激情视频一区二区三区欧美| 韩国理伦片一区二区三区在线播放| 午夜国产不卡在线观看视频| 天堂在线一区二区| 日本在线不卡一区| 蜜乳av一区二区| 韩国女主播成人在线| 国产精品99久久久久| 丰满亚洲少妇av| av在线不卡电影| 欧美亚洲国产bt| 4438x成人网最大色成网站| 91精品国产色综合久久不卡电影| 日韩一卡二卡三卡国产欧美| 欧美精品一区二区三区在线| 日本一区二区三区在线不卡| 亚洲欧美怡红院| 午夜电影一区二区三区| 国产资源精品在线观看| 丰满白嫩尤物一区二区| 色悠悠久久综合| 在线观看91av| 国产人久久人人人人爽| 亚洲激情av在线| 久久99蜜桃精品| 99热99精品| 日韩欧美国产高清| 成人欧美一区二区三区1314| 亚洲丶国产丶欧美一区二区三区| 国产一区二区在线影院| 91原创在线视频| 精品少妇一区二区三区视频免付费 | 一区二区久久久| 日韩av电影天堂| 国产成人精品免费网站| 欧美日韩国产一区二区三区地区| 欧美刺激午夜性久久久久久久| 国产精品福利一区二区| 免费人成精品欧美精品| av中文字幕不卡| 欧美精品一区二区不卡 | 色系网站成人免费| 日韩午夜小视频| 一区二区免费看| 国产成人免费视| 69p69国产精品| 一区二区三区日本| 国产成人午夜视频| 日韩欧美黄色影院| 亚洲国产综合人成综合网站| 高清国产午夜精品久久久久久| 日韩一区二区三区观看| 亚洲国产日韩一级| 色成人在线视频| 国产精品污www在线观看| 久久精品国产在热久久| 精品入口麻豆88视频| 一区二区三区在线免费视频| 粉嫩蜜臀av国产精品网站| 欧美变态tickling挠脚心| 视频一区免费在线观看| 色综合色狠狠天天综合色| 国产精品久久福利| 成人激情免费视频| 国产亚洲综合性久久久影院| 久久 天天综合| 日韩一区二区三区视频在线| 爽爽淫人综合网网站| 欧美老女人在线| 日精品一区二区| 67194成人在线观看| 日日摸夜夜添夜夜添国产精品| 欧美午夜精品免费| 亚洲一二三区视频在线观看| 欧美三区在线观看| 日日骚欧美日韩| 精品日韩一区二区三区免费视频| 免费高清在线视频一区·| 日韩欧美中文一区二区| 狠狠色丁香九九婷婷综合五月| 337p日本欧洲亚洲大胆色噜噜| 久久 天天综合| 中文字幕成人av| 色综合天天性综合| 亚洲综合色成人| 91精品国产美女浴室洗澡无遮挡| 蜜臀av性久久久久蜜臀av麻豆| 精品成人一区二区三区四区| 国产一区二区0| 国产精品毛片无遮挡高清| 91网址在线看| 视频一区二区三区入口| www国产精品av| 成人免费黄色大片| 亚洲精品v日韩精品| 69堂成人精品免费视频| 国产一区不卡在线| 亚洲人成在线播放网站岛国| 欧美三级日本三级少妇99| 美女一区二区久久| 国产精品视频一区二区三区不卡| 91美女福利视频| 看电视剧不卡顿的网站| 国产精品久久久久久久久免费相片| 91成人在线精品| 国产一区二区三区蝌蚪| 亚洲天堂福利av| 精品国产免费一区二区三区四区 | 欧美日韩一区久久| 国产最新精品免费| 一区二区三区日韩在线观看| xnxx国产精品| 欧美亚洲另类激情小说| 国产成人精品免费视频网站| 五月综合激情婷婷六月色窝| 国产精品嫩草影院av蜜臀| 欧美精品一级二级三级| 成人动漫视频在线| 青青草原综合久久大伊人精品 | 五月天亚洲婷婷| 石原莉奈一区二区三区在线观看| 久久日韩粉嫩一区二区三区| 欧美四级电影网| 91在线视频观看| 久久99国产精品久久| 亚洲黄色小说网站| 国产日韩欧美在线一区| 4438成人网| 欧美日韩免费电影| 91丝袜高跟美女视频| 国产精一品亚洲二区在线视频| 人人超碰91尤物精品国产| 亚洲精品欧美激情| 亚洲欧洲一区二区三区| 国产亚洲精品福利| 精品久久久久久久人人人人传媒 | 日韩一区二区三区视频在线观看| 色狠狠色噜噜噜综合网| 波多野洁衣一区| 成人激情动漫在线观看| 国产一区二区三区免费| 国产一区二区久久| 裸体健美xxxx欧美裸体表演| 日韩在线观看一区二区| 亚洲国产精品久久艾草纯爱 | 另类中文字幕网| 免费在线一区观看| 亚洲成人av一区二区| 夜夜嗨av一区二区三区| 亚洲精品国产无套在线观| 亚洲免费三区一区二区| 亚洲色图欧洲色图婷婷| 亚洲欧美一区二区三区久本道91| 综合色中文字幕| 亚洲乱码国产乱码精品精的特点| 中文字幕在线一区二区三区| 国产精品对白交换视频| 国产精品天干天干在线综合| 亚洲国产精品黑人久久久| 国产女人水真多18毛片18精品视频| 久久久久国产精品人| 中文一区二区完整视频在线观看| 欧美国产亚洲另类动漫| 成人欧美一区二区三区白人| 亚洲一区免费视频| 日本在线不卡视频| 国产一区二区三区免费| 波多野结衣中文字幕一区二区三区| av电影天堂一区二区在线 | 水野朝阳av一区二区三区| 免费的成人av| 国产不卡视频一区| 欧美午夜精品久久久久久孕妇| 日韩一区二区在线观看视频| 国产亚洲欧洲997久久综合| 亚洲视频网在线直播| 美国三级日本三级久久99| 国产白丝精品91爽爽久久 | 国产精品一二三| 99免费精品在线观看| 777xxx欧美| 中文字幕国产一区| 亚洲国产中文字幕| 国产在线观看一区二区| 91麻豆国产自产在线观看| 欧美一区二区视频在线观看2022| 国产偷国产偷精品高清尤物| 一区二区三区在线影院| 国产乱码精品1区2区3区| 色综合久久88色综合天天| 欧美mv日韩mv| 夜夜亚洲天天久久| 福利电影一区二区| 51精品秘密在线观看| 成人欧美一区二区三区在线播放|