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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 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;
//---------------------------------------------------------------------------
//內(nèi)部函數(shù)

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

函數(shù)名  作用 
CreateFile 打開串口 
GetCommState  檢測串口設(shè)置 
SetCommState 設(shè)置串口
BuilderCommDCB 用字符串中的值來填充設(shè)備控制塊
GetCommTimeouts 檢測通信超時設(shè)置
SetCommTimeouts 設(shè)置通信超時參數(shù)
SetCommMask 設(shè)定被監(jiān)控事件
WaitCommEvent 等待被監(jiān)控事件發(fā)生
WaitForMultipleObjects 等待多個被監(jiān)測對象的結(jié)果 
WriteFile 發(fā)送數(shù)據(jù) 
ReadFile  接收數(shù)據(jù)
GetOverlappedResult 返回最后重疊(異步)操作結(jié)果 
PurgeComm 清空串口緩沖區(qū),退出所有相關(guān)操作 
ClearCommError 更新串口狀態(tài)結(jié)構(gòu)體,并清除所有串口硬件錯誤 
CloseHandle  關(guān)閉串行口       */
//------ 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)) //獲得串口設(shè)置并用它填充dcb結(jié)構(gòu)體
                ShowMessage("GetCommState failed");

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

        //設(shè)置dcb結(jié)構(gòu)成員變量
        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");


        //設(shè)置事件掩碼,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ū),退出所有相關(guān)操作
        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ù)結(jié)構(gòu)地址

        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)結(jié)構(gòu)體,并清除所有串口硬件錯誤
                else if (!WaitComEv && GetLastError()==ERROR_IO_PENDING)
                {
                   ClearCommError(hCom,&dwError,&comstat);//更新串口狀態(tài)結(jié)構(gòu)體,并清除所有串口硬件錯誤

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

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

                      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)結(jié)構(gòu)體,并清除所有串口硬件錯誤
                      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);

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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一二三四社区欧美黄| 欧美精品 国产精品| 亚洲国产精品v| 国产xxx精品视频大全| 欧美激情一区在线| 91色porny在线视频| 亚洲伊人色欲综合网| 欧美欧美午夜aⅴ在线观看| 男女男精品视频| 精品国产成人在线影院| 国产成人精品免费| 亚洲欧美日韩在线不卡| 欧美剧情片在线观看| 久久精品国产精品亚洲精品| 久久久av毛片精品| 99re66热这里只有精品3直播| 亚洲综合视频在线观看| 91精品在线麻豆| 国产福利不卡视频| 亚洲一区二区三区四区五区中文| 91精品国产综合久久精品性色| 精品一区二区三区的国产在线播放 | 一本一道波多野结衣一区二区| 亚洲最新视频在线观看| 欧美一级精品大片| 色综合av在线| 国产精品久久久久久久久搜平片| 久久亚洲精华国产精华液| 国产精品综合视频| 亚洲美腿欧美偷拍| 91精品国产欧美一区二区成人| 福利一区福利二区| 午夜影视日本亚洲欧洲精品| 久久色视频免费观看| 色婷婷精品大在线视频| 激情综合网av| 亚洲综合在线视频| 国产亚洲婷婷免费| 5566中文字幕一区二区电影| 成人av资源站| 久久66热偷产精品| 亚洲在线观看免费| 国产欧美精品国产国产专区| 欧美日韩精品高清| 91影视在线播放| 国产主播一区二区三区| 五月天久久比比资源色| 日韩欧美国产成人一区二区| 色诱亚洲精品久久久久久| 精品无人区卡一卡二卡三乱码免费卡| 亚洲视频每日更新| 久久久国产精华| 欧美电影免费观看高清完整版在线观看 | av激情亚洲男人天堂| 日本不卡视频在线| 一级特黄大欧美久久久| 国产精品人成在线观看免费 | 国产精品久久久99| 亚洲精品一区二区三区影院| 欧美日韩国产在线观看| www.亚洲国产| 色综合天天综合| 国产99精品国产| 精品一区二区三区免费视频| 美女精品一区二区| 五月婷婷久久综合| 亚洲成av人**亚洲成av**| 亚洲欧美日本在线| 亚洲视频精选在线| 亚洲婷婷综合色高清在线| 国产欧美精品区一区二区三区| 久久综合色之久久综合| 日韩免费成人网| 日韩欧美一区二区免费| 日韩欧美中文一区| 欧美一区二区三区精品| 91精品久久久久久久99蜜桃 | 一区二区高清视频在线观看| 亚洲欧洲韩国日本视频| 亚洲手机成人高清视频| 亚洲色欲色欲www| 国产精品免费久久久久| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 日产国产欧美视频一区精品| 天天色综合成人网| 日本成人在线不卡视频| 美女一区二区视频| 激情丁香综合五月| 国产成人精品一区二区三区网站观看| 高清免费成人av| 99久久久无码国产精品| 99精品欧美一区二区三区小说| 欧美精品在线观看播放| 亚洲va欧美va国产va天堂影院| 亚洲精品国产视频| 一区二区在线观看视频在线观看| 亚洲综合免费观看高清在线观看| 亚洲小说欧美激情另类| 亚洲一区二区免费视频| 蜜臀精品一区二区三区在线观看 | 色欧美88888久久久久久影院| 色婷婷久久久久swag精品| 欧美人与z0zoxxxx视频| 精品国产伦一区二区三区观看方式 | 3d动漫精品啪啪1区2区免费| 日韩欧美视频在线| 欧美国产精品一区二区| 亚洲欧美国产三级| 日本中文字幕不卡| 国产69精品久久777的优势| 色又黄又爽网站www久久| 欧美电影在线免费观看| 久久久久久亚洲综合| 亚洲精品免费在线观看| 麻豆专区一区二区三区四区五区| 国产一区二区三区在线观看精品| a级精品国产片在线观看| 欧美丰满一区二区免费视频| 久久网这里都是精品| 综合亚洲深深色噜噜狠狠网站| 午夜在线成人av| 国产69精品一区二区亚洲孕妇| 欧美色视频在线| 国产偷国产偷亚洲高清人白洁| 亚洲与欧洲av电影| 岛国一区二区在线观看| 欧美一区二区三区的| 亚洲欧美中日韩| 狠狠色综合日日| 欧美三级日本三级少妇99| 欧美国产精品v| 日韩精品91亚洲二区在线观看 | 免费不卡在线视频| 色综合久久66| 国产精品乱码人人做人人爱| 婷婷一区二区三区| 国产69精品久久久久毛片| 6080午夜不卡| 亚洲精品高清在线观看| 国产成a人亚洲精| 精品免费国产二区三区| 亚洲国产日韩av| 色综合久久久久综合体| 亚洲国产精品国自产拍av| 久久激情五月婷婷| 欧美日韩的一区二区| 尤物av一区二区| av欧美精品.com| 中文在线一区二区 | 亚洲免费观看在线视频| 男男视频亚洲欧美| 欧美亚洲国产bt| 亚洲欧美自拍偷拍| 床上的激情91.| 国产校园另类小说区| 老司机精品视频一区二区三区| 欧美日韩亚洲综合| 亚洲伊人色欲综合网| 91一区一区三区| 亚洲精品中文字幕乱码三区| youjizz久久| 国产精品盗摄一区二区三区| 成熟亚洲日本毛茸茸凸凹| 国产欧美日韩中文久久| 国产一区在线观看视频| 精品久久久久久久久久久院品网 | 亚洲444eee在线观看| 在线观看成人小视频| 亚洲卡通动漫在线| 日韩精品中午字幕| 欧美videossexotv100| 亚洲一区在线看| 日本乱码高清不卡字幕| 亚洲精品免费电影| 欧美性做爰猛烈叫床潮| 亚洲成人www| 91精品国产色综合久久不卡电影| 日韩 欧美一区二区三区| 91精品国产综合久久福利软件| 日韩在线观看一区二区| 日韩欧美亚洲国产另类| 国产一区二区主播在线| 国产亚洲一区二区在线观看| 国产风韵犹存在线视精品| 国产精品免费久久| 91成人网在线| 免费看日韩a级影片| 国产午夜精品美女毛片视频| 成人精品鲁一区一区二区| 亚洲狼人国产精品| 7777精品伊人久久久大香线蕉的 | 午夜在线电影亚洲一区| 精品999在线播放| 亚洲成在人线免费| 精品视频资源站| 麻豆国产精品视频| 久久影院午夜片一区| 不卡的看片网站| 视频一区中文字幕| 国产亚洲欧美日韩俺去了|