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

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

?? unit1.cpp

?? BCB下對短信modem操作源代碼
?? CPP
字號:
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "assert.h"

#include "mmsystem.h" //精確計時

HANDLE hCom = 0;
DCB dcb;
OVERLAPPED OverRead, OverWrite;
COMSTAT comstat;
OVERLAPPED os;
DWORD dwEvtMask=0;
String dat;
hComThread *Read232;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
//內部函數(shù)

/*常用串行通訊API函數(shù)及其作用

函數(shù)名  作用 
CreateFile 打開串口 
GetCommState  檢測串口設置 
SetCommState 設置串口
BuilderCommDCB 用字符串中的值來填充設備控制塊
GetCommTimeouts 檢測通信超時設置
SetCommTimeouts 設置通信超時參數(shù)
SetCommMask 設定被監(jiān)控事件
WaitCommEvent 等待被監(jiān)控事件發(fā)生
WaitForMultipleObjects 等待多個被監(jiān)測對象的結果 
WriteFile 發(fā)送數(shù)據(jù) 
ReadFile  接收數(shù)據(jù)
GetOverlappedResult 返回最后重疊(異步)操作結果 
PurgeComm 清空串口緩沖區(qū),退出所有相關操作 
ClearCommError 更新串口狀態(tài)結構體,并清除所有串口硬件錯誤 
CloseHandle  關閉串行口       */
//------ Create COM ----------------------------------------------------------
int __stdcall OpenCom(int port)
{
        String comname;
        comname = "COM" + IntToStr(port);
        if (hCom==INVALID_HANDLE_VALUE)
        {
                ShowMessage("Can not open the port !");
                CloseHandle(hCom);
                hCom = 0;
                return 0;
        }
        if(hCom != 0)
              return 0;
        hCom=CreateFile( comname.c_str(), //文件名
                         GENERIC_READ|GENERIC_WRITE,//訪問模式允許讀寫
                         0, //此項必須是0
                         NULL,//無安全參數(shù)
                         OPEN_EXISTING,//創(chuàng)建方式
                         FILE_FLAG_OVERLAPPED,//異步工作方式
                         NULL);
        if (hCom==INVALID_HANDLE_VALUE)
        {
                ShowMessage("Can not open the port !");
                CloseHandle(hCom);
                hCom = 0;
                return 0;
        }

        if(!GetCommState(hCom,&dcb)) //獲得串口設置并用它填充dcb結構體
                ShowMessage("GetCommState failed");

        if (!SetupComm(hCom,1024,1024)) //設置輸入輸出緩沖區(qū)大小
                ShowMessage("SetupComm failed");

        //設置dcb結構成員變量
        dcb.BaudRate=9600;
        dcb.fParity=0;
        dcb.Parity=NOPARITY;
        dcb.StopBits=ONESTOPBIT;
        dcb.ByteSize=8;
        dcb.fNull=FALSE;

        if(!SetCommState(hCom,&dcb)) //重新配置串口
              ShowMessage("SetCommState failed");


        //設置事件掩碼,EV_RXCHAR表示接收一個字符并放到緩沖區(qū)劃
        if (!SetCommMask(hCom,EV_RXCHAR))
                ShowMessage("SetCommMask failed");


        //創(chuàng)建事件對象,在WaitCommEvent使用
        COMSTAT comstat;
        DWORD dwError=0;
        OverRead.hEvent=CreateEvent(NULL,
                                    true,
                                    false,
                                    NULL);
        ClearCommError(hCom,&dwError,&comstat);

        //清空串口緩沖區(qū),退出所有相關操作
        PurgeComm(hCom, PURGE_TXCLEAR | PURGE_RXCLEAR);

        Form1->Caption=comname+" 通信成功!";
        Form1->RadioGroup1->Enabled=false;
     //   Form1->Button1->Enabled=false;
      //  Form1->Button2->Enabled=true;

        //創(chuàng)建線程
        Read232 = new hComThread(false); // (false/true) (run/not run )WatchThread when begin

        return true;
}


void __fastcall SendDatas( char chStr[1024], unsigned long StrLen)
{
         //發(fā)送數(shù)據(jù)
        BOOL WriteState;
        unsigned long Written ;
        DWORD dwError;

        WriteState = WriteFile(hCom,//用CreateFile 獲得的文件句柄
                                chStr,//輸出緩沖區(qū)首址
                                StrLen,//要求輸出的字節(jié)數(shù)
                                &Written,//實際輸出字節(jié)數(shù)
                                &OverWrite);//重疊操作方式數(shù)據(jù)結構地址

        if (WriteState && GetLastError()== ERROR_IO_PENDING )
        {
             ShowMessage("Error !!!");
        }
}

bool StopCom()
{
        if (hCom) //Stop COM
        {
                if (CloseHandle(hCom))
                {
                        Read232->Terminate();
                        ShowMessage("CloseHandle(hCom) successed");
                }
                else
                { ShowMessage("Can not close the com !!!");
                  return false;
                }

                Form1->RadioGroup1->Enabled=true;
                Form1->Caption="通信停止中";
        }
        else ShowMessage("The com has been stoped !!");

        hCom=0;
        return true;
}
//---------------------------------------------------------------------------
//線程部分
//---------------------------------------------------------------------------
__fastcall hComThread::hComThread(bool CreateSuspended)
        : TThread(CreateSuspended)
{
        FreeOnTerminate = true;
}
//---------------------------------------------------------------------------
void __fastcall hComThread::Execute()
{
        //---- Place thread code here ----
        char ReadBuff[1];
        memset(&OverRead,0,sizeof(OVERLAPPED));
        OverRead.hEvent=CreateEvent(NULL,true,true,NULL);
        if (OverRead.hEvent==NULL) Terminate();

        if (!SetCommMask(hCom,EV_RXCHAR|EV_TXEMPTY)) Terminate();

        while (!Terminated)
        {
                WaitForSingleObject(OverRead.hEvent,INFINITE);

                bool WaitComEv;
                DWORD dwError;
                AnsiString Gotstr;

                DWORD ReadStat;
                DWORD BytesRead;

                //等待被監(jiān)控事件發(fā)生
                WaitComEv=WaitCommEvent(hCom,&dwEvtMask,&OverRead);

                if (WaitComEv)
                        ClearCommError(hCom,&dwError,&comstat); //更新串口狀態(tài)結構體,并清除所有串口硬件錯誤
                else if (!WaitComEv && GetLastError()==ERROR_IO_PENDING)
                {
                   ClearCommError(hCom,&dwError,&comstat);//更新串口狀態(tài)結構體,并清除所有串口硬件錯誤

                   while (comstat.cbInQue>0)// && dwEvtMask==EV_RXCHAR)使用后部分在win98中不行
                   {

                      ReadStat=ReadFile(hCom,//用CreateFile 獲得的文件句柄
                                        ReadBuff,//輸入緩沖區(qū)首址
                                         1,  //設定讀入字節(jié)數(shù)
                                         &BytesRead,//實際讀入字節(jié)數(shù)
                                         &os); //重疊操作方式數(shù)據(jù)結構地址

                      if (!ReadStat && GetLastError()==ERROR_IO_PENDING )
                      {
                         while (!GetOverlappedResult(hCom,&os,&BytesRead,true))
                         {
                            dwError=GetLastError();
                            if (dwError==ERROR_IO_INCOMPLETE)
                               continue;
                            else
                              break;
                         }
                      }

                      dat=dat+ReadBuff[0];
                      //更新串口狀態(tài)結構體,并清除所有串口硬件錯誤
                      ClearCommError(hCom,&dwError,&comstat);

                   }

                }
        }
}
//---------------------------------------------------------------------------
//窗體部分
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
        //清輸入輸出緩沖區(qū)
        PurgeComm(hCom, PURGE_TXCLEAR | PURGE_RXCLEAR);
        dat = "";
        String str; int t;
        str = Memo1->Lines->GetText();
        char *pt = str.c_str();
        t = str.Length();
      //  pt[0] = 0x55; pt[1] = 0x33; pt[2] = 0x34;
        SendDatas(pt, t);
        Label1->Caption = "ok";
       // Label1->Caption = dat;
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button1Click(TObject *Sender)
{
        OpenCom(RadioGroup1->ItemIndex +1 );
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button4Click(TObject *Sender)
{
        Label1->Caption = dat;

}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button3Click(TObject *Sender)
{
        StopCom();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
        // DWORD timeGetTime(void)
        // 返回從Windows啟動開始經(jīng)過的毫秒數(shù)。最大值為4294967295,約49.71天。
        DWORD k = 0, k0; String str = "";
        k0 = timeGetTime();
        while(k < 1000)
            k = timeGetTime() - k0;
        str =str + "1000ms,誤差1 - 2ms   ";
        Label1->Caption = str;

        k0 = 4294967295; k = 100;//測試
        k = k - k0;
        if(k > 90)
           k = 20;
}
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
        Label1->Caption = dat;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ListBox2Click(TObject *Sender)
{
int i;
DWORD dwBytesWritten;
AnsiString AtString;
 i=ListBox2->ItemIndex  ;
 if(i<0) return;
 switch(i)
 {case 0:
 AtString="AT+CSCA?";
  break;
  case 1:
  AtString="AT+CMGL=0";
 break;
  case 2:
  //AtString="AT+CPMS=1";
AtString="AT+CMGL=1";
  break;
  case 3:
 AtString="ATA";
  break;
  case 4:
 AtString="AT+CHUP";
  break;
  case 5:
 AtString="ATD13337319991;";
  break;
    case 6:
 AtString="ATH0";
 break;
    case 7:
AtString="AT+CMGF?";

}
AtString=AtString+char(13);
Memo1->Text =AtString;
Button2Click(Button2);
//dwBytesWritten =AtString.Length() ;
//com2.write(AtString.c_str()  , dwBytesWritten);

        
}
//---------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99视频有精品| 日韩欧美国产三级电影视频| 日本不卡在线视频| 国产精品污网站| 欧美一区三区四区| 99re热视频精品| 国产综合色视频| 日韩国产欧美视频| 亚洲日本在线看| 久久亚区不卡日本| 在线不卡的av| 色综合天天综合网国产成人综合天 | 一区二区三区在线免费播放| 精品国产91亚洲一区二区三区婷婷| 色乱码一区二区三区88| 国产91色综合久久免费分享| 青青草伊人久久| 亚洲国产精品人人做人人爽| 综合精品久久久| 中文字幕一区二区在线播放| 久久伊人蜜桃av一区二区| 51精品久久久久久久蜜臀| 欧美视频在线播放| 91福利资源站| 欧美怡红院视频| 色老汉av一区二区三区| 99久久国产综合色|国产精品| 国内不卡的二区三区中文字幕| 日本色综合中文字幕| 视频在线观看91| 香蕉久久夜色精品国产使用方法| 最新日韩在线视频| 亚洲图片欧美激情| 国产精品三级av| 国产精品理伦片| 最新欧美精品一区二区三区| 日韩一区在线播放| 亚洲精品老司机| 亚洲国产精品综合小说图片区| 亚洲视频一区二区免费在线观看| 国产精品成人一区二区三区夜夜夜 | 亚洲一区免费视频| 亚洲一区在线视频观看| 亚洲一区在线视频| 午夜一区二区三区在线观看| 亚洲一级二级在线| 亚洲一区二区三区四区五区黄| 亚洲综合色网站| 午夜精品久久久久久久| 日韩**一区毛片| 日韩电影在线一区| 国产在线日韩欧美| 国产成人99久久亚洲综合精品| 国产91露脸合集magnet| 丰满少妇在线播放bd日韩电影| 成人免费观看视频| 色综合久久久久久久久| 欧美日韩免费电影| 精品久久久久99| 国产精品国产三级国产三级人妇| 亚洲美女免费在线| 亚洲va国产va欧美va观看| 久久精品国产免费| 丁香六月综合激情| 在线影视一区二区三区| 欧美一区二区福利视频| 亚洲视频免费在线| 污片在线观看一区二区| 韩国毛片一区二区三区| 成人性色生活片| 欧美日本一区二区三区| 久久久亚洲精品石原莉奈| 亚洲欧美偷拍另类a∨色屁股| 亚洲午夜一区二区| 国产伦精品一区二区三区视频青涩| 99视频有精品| 日韩一区二区三区av| 国产精品乱码妇女bbbb| 亚洲成a人v欧美综合天堂下载| 国产一区二区三区日韩| 91黄色激情网站| 国产亚洲一二三区| 亚洲成人手机在线| 国产一区二区伦理片| 欧美综合在线视频| 国产丝袜美腿一区二区三区| 亚洲国产cao| 成人中文字幕电影| 91精品国产综合久久久久久漫画| 中文一区在线播放| 久久精品国产久精国产| 色美美综合视频| 久久蜜桃香蕉精品一区二区三区| 亚洲一区视频在线| 国产99久久久国产精品潘金| 欧美日韩日日夜夜| 中文字幕一区二区日韩精品绯色| 久色婷婷小香蕉久久| 色女孩综合影院| 国产精品久99| 精品综合久久久久久8888| 欧美性大战久久| 1区2区3区精品视频| 国产一区二区三区美女| 在线电影院国产精品| 综合激情成人伊人| 国产成人综合在线播放| 日韩美女在线视频| 日韩不卡一区二区三区| 欧美影视一区二区三区| 中文字幕一区二区5566日韩| 国产一区二区美女诱惑| 欧美成人乱码一区二区三区| 亚洲电影第三页| 在线视频综合导航| 国产精品美女久久久久aⅴ国产馆| 久久精品国产一区二区三区免费看| 99热在这里有精品免费| 国产精品视频免费| 国产成a人亚洲| 欧美激情一区不卡| 国产麻豆一精品一av一免费| 欧美一卡二卡在线观看| 午夜影院在线观看欧美| 在线精品视频一区二区三四| 亚洲同性gay激情无套| 99re成人在线| 久久精品理论片| 欧美久久久影院| 亚洲午夜一区二区| 欧美日韩情趣电影| 天天亚洲美女在线视频| 51精品秘密在线观看| 男人操女人的视频在线观看欧美| 欧美日本免费一区二区三区| 亚洲成人av一区二区| 欧美日韩国产综合久久| 午夜久久久久久| 7777精品伊人久久久大香线蕉最新版| 亚洲成人一区在线| 欧美人与性动xxxx| 青青草国产精品97视觉盛宴| 欧美一区二区黄色| 国产又黄又大久久| 中日韩av电影| 97久久久精品综合88久久| 一区二区三区在线观看视频| 欧美午夜精品久久久久久超碰| 亚洲综合久久久久| 在线91免费看| 激情综合网av| 欧美极品美女视频| 91视频国产资源| 亚洲成人精品影院| 欧美成人综合网站| 国产精品羞羞答答xxdd| 日韩毛片一二三区| 欧美日韩免费高清一区色橹橹| 日韩电影在线免费| 欧美国产1区2区| 日本高清不卡在线观看| 爽好久久久欧美精品| 欧美成人艳星乳罩| av不卡免费在线观看| 丝袜亚洲精品中文字幕一区| 欧美va亚洲va在线观看蝴蝶网| 大尺度一区二区| 亚洲综合在线观看视频| 精品少妇一区二区三区免费观看| 国产电影精品久久禁18| 夜色激情一区二区| 精品日产卡一卡二卡麻豆| 97精品国产97久久久久久久久久久久| 亚洲亚洲精品在线观看| 久久精品免视看| 在线精品视频小说1| 国产美女一区二区| 亚洲一二三四区| 久久久久久9999| 欧美色欧美亚洲另类二区| 精品亚洲aⅴ乱码一区二区三区| 国产精品乱人伦中文| 7777精品伊人久久久大香线蕉超级流畅| 理论片日本一区| 亚洲精品大片www| www国产精品av| 欧美日韩国产经典色站一区二区三区 | 3751色影院一区二区三区| 国产成人av一区| 日本三级韩国三级欧美三级| 国产精品毛片大码女人| 欧美一区二区三区在线观看视频| aaa欧美大片| 国产专区综合网| 日韩高清一级片| 一区二区三区日韩欧美精品| 国产片一区二区三区| 91精品免费在线| 欧美色视频在线观看| 成人ar影院免费观看视频|