如何改成自動傳輸 |
|
quentin520
一般會員 發表:15 回覆:13 積分:5 註冊:2006-12-18 發送簡訊給我 |
void __fastcall TForm1::Button7Click(TObject *Sender)
{ char *ComNo; DCB dcb; String Temp; //取得欲開啟的通訊埠 Temp = "COM" IntToStr(rdCOM->ItemIndex 1); //轉換至指標型態Char ComNo = Temp.c_str(); hComm = CreateFile(ComNo,GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0); if (hComm == INVALID_HANDLE_VALUE) // 如果COM 未開啟 { MessageBox(0, "開啟通訊埠錯誤!!","Comm Error",MB_OK); return; } //將dcb位址傳入,以取得通訊參數 GetCommState(hComm,&dcb); // 得知目前COM 的狀態 dcb.BaudRate = CBR_9600; // 設定鮑率為9600 dcb.ByteSize = 8; // 位元組為 8 bit dcb.Parity = NOPARITY; // Parity 為 None dcb.StopBits = ONESTOPBIT; // 1 個Stop bit //通訊埠設定 if (!SetCommState(hComm, &dcb)) { // 設定COM 的狀態 MessageBox (0, "通訊埠設定錯誤!!!","Set Error",MB_OK); CloseHandle(hComm); return; } Timer4->Enabled = True; } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer4Timer(TObject *Sender) { String Temp; char inbuff[1024]; DWORD nBytesRead, dwEvent, dwError; COMSTAT cs; //取得狀態 ClearCommError(hComm,&dwError,&cs); if(cs.cbInQue == 0) // 資料是否大於我們所準備的Buffer if (cs.cbInQue > sizeof(inbuff)) { PurgeComm(hComm, PURGE_RXCLEAR); // 清除COM 資料 return; } ReadFile(hComm, inbuff,cs.cbInQue,&nBytesRead,NULL); // 接收COM 的資料 //轉移資料到變數中 // 將資料顯示於Memo1 上 mReceive->Text =inbuff; } //--------------------------------------------------------------------------- void __fastcall TForm1::mReceiveKeyPress(TObject *Sender, char &Key) { String Temp; char *SendData; int ln; unsigned long lrc,BS; if (Key!=13) return; if (hComm==0) return; //檢查Handle值 Temp = Memo1->Text;//取得傳送的字串 SendData = Temp.c_str(); //字串轉換 //取得傳送的字串數 BS = Temp.Length(); //BS = StrLen(SendData); //也可以使用此種方式取得字串長度 //實際的傳送動作 WriteFile(hComm,SendData,BS, &lrc,NULL); // 送出資料 上面是我整個程式!但傳送資料需要按ENTER才能傳出!那要如何改成自動傳送呢? |
jcjroc
高階會員 發表:21 回覆:279 積分:115 註冊:2002-09-18 發送簡訊給我 |
|
quentin520
一般會員 發表:15 回覆:13 積分:5 註冊:2006-12-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |