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

RS232讀值的問題

尚未結案
psp67101
一般會員


發表:5
回覆:10
積分:3
註冊:2005-05-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-19 14:30:09 IP:61.231.xxx.xxx 未訂閱
我用BCB透過RS232傳輸控制一台機器... 這台機器傳回的數值是 XXXX,PX ####;####;####/r 不過呢...若delay 的時間過短會變成XXXX,PX ####;####;####/rXXXX/r 我是利用AnsiString來存上面那些資料 EX.. 我設一個 m = Comm1->Input;這個m有時讀回的數值就沒法斷行.. 而出現二筆資料連在一起的問題... 我想問有沒有什麼方法能夠把那台機器的 buf裡面的資料清乾淨.. 或是各位知道我是那裡出了問題呢.
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-19 19:00:43 IP:59.104.xxx.xxx 未訂閱
看了半天看不懂你在說什麼 @.@ 可以說清楚嗎?
psp67101
一般會員


發表:5
回覆:10
積分:3
註冊:2005-05-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-19 19:20:59 IP:61.231.xxx.xxx 未訂閱
意思就是說 我有個AnsiString將自RS232讀回的資料格式如下 ####,## ####;####;####/r 於量測設備在某些情況無法量出數值,所以讀回的資料會變成 ####,##;####/r 不過出來的數值卻是 ####,##;####/rXXXX/r EX 下面是我for迴圈的動作 mod,1 <-那台設備的內部指令 delay(300) 讀值 <-傳回 OK00/r mse <-內部指令 delay(300) 讀值 <-傳回 OK00,##;####/r mod,2 <-內部指令 delay(300) 讀值 <-傳回OK00 mse <-內部指令 delay(300) 讀值 <-傳回 ER23,##;####/rOK00/r ^^^^^^^後面這個OK00就是我的問題 為什麼我的AnsiString有時會讀回前一個 指令的回傳值;是因為那台機器來不及清 掉Buf裡面的資料嗎; 為什麼二個指令的回傳值會連在一起..
psp67101
一般會員


發表:5
回覆:10
積分:3
註冊:2005-05-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-19 19:21:49 IP:61.231.xxx.xxx 未訂閱
引言:
發表人 - psp67101 於 2005/06/19 19:24:33
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-19 22:07:11 IP:59.104.xxx.xxx 未訂閱
你可以去試試。遇到換行就結束了啊。 這樣還會有兩個值????
psp67101
一般會員


發表:5
回覆:10
積分:3
註冊:2005-05-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-19 22:18:08 IP:61.231.xxx.xxx 未訂閱
引言: 你可以去試試。遇到換行就結束了啊。 這樣還會有兩個值????
我也這樣想丫...不過我覺得這樣不穩定丫... 我想找出問題的原因...為什麼我讀出BUF資料...為什麼還會殘留之前的訊息.. 還是之前就沒讀出來...我看那個AnsiString 裡面的值... 不是有一個斷行了嗎...為什麼不會斷呢.../r不算斷行嗎 還是要/r/n我都搞混了... 我在後面加NULL也不能...有什麼方法可以試呢...
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-06-19 22:48:34 IP:59.104.xxx.xxx 未訂閱
引言: 我也這樣想丫...不過我覺得這樣不穩定丫... 我想找出問題的原因...為什麼我讀出BUF資料...為什麼還會殘留之前的訊息.. 還是之前就沒讀出來...我看那個AnsiString 裡面的值... 不是有一個斷行了嗎...為什麼不會斷呢.../r不算斷行嗎 還是要/r/n我都搞混了... 我在後面加NULL也不能...有什麼方法可以試呢...
\r 不算完整的換行。在 M$ 裏面。 所以你才可以拿它來判讀呀
willishung
一般會員


發表:5
回覆:5
積分:2
註冊:2006-08-01

發送簡訊給我
#8 引用回覆 回覆 發表時間:2006-09-13 11:03:37 IP:211.20.xxx.xxx 未訂閱

int index;
AnsiString GetStr;
RxTmp= RxTmp Rx; //abcd,efghij/rlmnop=abcd,efg hij/rlmnop
infex=RxTmp.Pos("\r");
if(infex)
{
GetStr=RxTmp.SubString(1,infex-1); //GetStr=abcd,efghij
RxTmp=RxTmp.Delete(1,index); //RxTmp=lmnop
}

希望這樣寫你看的出來我要表達的是啥

系統時間:2024-04-18 11:54:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!