線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1319
推到 Plurk!
推到 Facebook!

RS232傳輸問題

尚未結案
js6910
一般會員


發表:2
回覆:0
積分:0
註冊:2004-09-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-23 11:48:41 IP:140.134.xxx.xxx 未訂閱
因為我的RS232傳輸到電腦時 數據沒辦法作即時的處理 會停一段時間在作處理   以下是我的程式碼< class="code"> { char *buf=(char*)Buffer; char receive[2048]; char tt[4]; AnsiString data[2]; //xi,yi 資料數 static int c=0; for( int i=0;i<8;i ) //i與資料數相關 { receive[i]=buf[i]; tt[0] = receive[i 1]; tt[1] = receive[i 2]; tt[2] = receive[i 3]; tt[3] = receive[i 4]; if( (tt[0]>='0'&& tt[0]<='F') && (tt[1]>='0'&& tt[1]<='F') && (tt[2]>='0'&& tt[2]<='F') && (tt[3]>='0'&& tt[3]<='F')){ data[0] = AnsiString(receive[i 1]) AnsiString(receive[i 2]); data[1] = AnsiString(receive[i 3]) AnsiString(receive[i 4]); int A= Transform16to10(data[0]); int B= Transform16to10(data[1]); Memo1->Lines->Add(IntToStr(A)); Memo1->Lines->Add(IntToStr(B)); OriginalBitmap->Canvas->Pixels[A][B]=clBlue; Image1->Picture->Assign(OriginalBitmap); } } } 發表人 - taishyang 於 2005/02/23 12:28:41
stellos
中階會員


發表:24
回覆:84
積分:51
註冊:2004-06-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-03 00:34:45 IP:220.138.xxx.xxx 未訂閱
這麼一小段程式看不出問題 也許是Transform16to10做了很久 也或許你的Image很大
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-03 09:20:16 IP:61.66.xxx.xxx 未訂閱
引言: if( (tt[0]>='0'&& tt[0]<='F') && (tt[1]>='0'&& tt[1]<='F') && (tt[2]>='0'&& tt[2]<='F') && (tt[3]>='0'&& tt[3]<='F')){
上面的判斷式不對 '0' = 0x30, 'F' = 0x46;共有22個 可是你只要'0'~'9','A'~'F'共16個吧 判斷是否為16進位可用isxdigit The isxdigit function returns true if the character passed as a parameter is a hexadecimal digit. Otherwise the function returns false. 也就是換成 if ( isxdigit(tt[0]) && isxdigit(tt[1]) && isxdigit(tt[2]) && isxdigit(tt[3]) ) 還有data[2]既然是放xi,yi那位什麼不直接宣告為xi,yi??沒什麼必要用陣列吧 你的Transform16to10可用 char *endptr; int A = strtoul(xi.c_str(),&endptr,16); //16進位轉10進位 int B = strtoul(yi.c_str(),&endptr,16); 試試看吧,有問題再說囉
系統時間:2024-05-04 17:21:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!