關於 傳送16進制的COMMAND 不知為何第一次傳與第二次傳收到的資訊不同 |
尚未結案
|
jeff71321
一般會員 發表:6 回覆:14 積分:4 註冊:2005-01-20 發送簡訊給我 |
不好意思,小弟要傳送一組16進制的COMMAND透過RS-232送到設備裡,我參考了站上幾篇文章寫出了傳送端與接收端程式,來檢查傳出的訊息是否正確,但是不知為何,同一個指令,第一次傳出的COMMAND與第2次傳出的..在接收端上出現的資訊卻不同,而且收到的資訊也和我傳出的資料不一樣,不知是哪裏出現的問題,可以請各位大大幫我看看嗎。感謝各位囉!! 傳送端的程式:
#include接收端程式: #include發表人 - jeff71321 於 2005/07/22 17:06:19 |
jeff71321
一般會員 發表:6 回覆:14 積分:4 註冊:2005-01-20 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
jeff71321
一般會員 發表:6 回覆:14 積分:4 註冊:2005-01-20 發送簡訊給我 |
感謝taishyang大大的回覆...我的格式已經修正了...如果還有問題麻煩您在告訴我,還有大大的意思是指COM元件的EVENTS有一個OnReceiveData的選項在那裡選上Button1Click嗎..還是說要改哪些地方ㄋ,您說的書是不是C BUILER與RS232串列通訊埠這本書ㄋ,我去書店找的時候店員說沒了..我有訂購但是他還沒通知我,請問大大能大概說明一下...該如何使用大大說的方法,還有可以幫我說明一下,像我這樣的寫法,有哪裡是不對ㄉㄋ,因為感覺第一次收到的資料上有些是正確的有些是錯的,但是第2次按下去就變的不一樣了,送的COMMAND是同一個,感覺像會積存...就麻煩各位大大幫我講解一下吧...感恩!!
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
引言:不解,不是應先知道接收了幾個字元。 然後才去讀出幾個嗎??? 你怎麼強制讀五個?怪怪的做法。void __fastcall TForm1::Button1Click(TObject *Sender) { ByteReceive=Comm1->ReadInputByte(); for(i=0;i<5;i ) { rdata[i]=IntToHex(ByteReceive[i],1); } E1->Text=rdata[0]; E2->Text=rdata[1]; E3->Text=rdata[2]; E4->Text=rdata[3]; E5->Text=rdata[4]; } |
jeff71321
一般會員 發表:6 回覆:14 積分:4 註冊:2005-01-20 發送簡訊給我 |
//--------------------------------------------------------------------------- #include經過暗黑大大剛剛講的我又把程式改成這樣,但是情況還是沒有改變 還有我有用Comm1ReceiveData把此函式裡面寫入 void __fastcall TForm1::Comm1ReceiveData(TObject *Sender) { ByteReceive=Comm1->ReadInputByte(); for(i=0;i<5;i ) { rdata[i]=IntToHex(ByteReceive[i],1); } }不知taishyang大大寫的意思是否是這樣,但是這樣子用以後情況還是沒有改變 是不是我哪裡用錯了,麻煩大大們指導我,真是太感謝了。 另外..C BUILDER與RS-232這本書,書商說不知何時會再版.....目前沒有書了,我買不到QQ"...學校圖書館休館...我只能靠各位大大指導了...拜託各位大大了...感恩感恩 |
jeff71321
一般會員 發表:6 回覆:14 積分:4 註冊:2005-01-20 發送簡訊給我 |
#include不好意思...我剛剛將接收端改成使用Comm1ReceiveData但是他在Memo1上顯示的訊息並不是我傳送端所傳的封包4C 41 32 2D 0A而且每次傳送同一個封包資料第一次收到與第2次收到的顯示資料也不一樣,我知道我哪邊一定還有錯誤 想請各位大大教導我哪邊是不正確的?還是說我傳送端的寫法有錯...謝謝 |
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
jeff71321
一般會員 發表:6 回覆:14 積分:4 註冊:2005-01-20 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
jcjroc
高階會員 發表:21 回覆:279 積分:115 註冊:2002-09-18 發送簡訊給我 |
引言: taishyang大大 您說的方式我有用了....情況一樣 但是我發現我的問題在於用單台電腦將其RS232的TX與RX兩隻腳短路 這樣測試資料就會是正確的,但是如果我用2台電腦測試將其中1台電腦的TX與RX對調然後兩台電腦做傳輸測試就會出現傳第一次與第2次的收到資料不同 請問有大大知道是為何會這樣嗎 還有我用的元件是用 C Builder與RS232串列通訊埠裡面所寫的TCOMM 因為之前同學有借過這本書檔案有留著你兩台電腦在傳輸資料前是否有先做同步ㄋ, 你可以試著將傳輸速度調慢一點看看. |
jeff71321
一般會員 發表:6 回覆:14 積分:4 註冊:2005-01-20 發送簡訊給我 |
jcjroc大大...不好意思喔
我想請問一下,如果說需要做同步的話,又應該要如何做ㄋ 因為我現在有一組VB的傳送指令程式是設備的公司寫的,我想知道那個程式送的封包,送出來是啥資料,因為它給的說明資料裡的指令似乎給的不正確,但是他的VB程式可以控制設備,我又不是很懂VB(只能大概知道他程式內是在寫啥動作),所以想寫接收程式來看VB所送出來的資料。 或是說有大大能夠幫我看看他VB的程式(不知這能不能貼VB的程式上來),看我傳送端寫的封包指令與他的VB端寫的有啥不同。真的非常感謝大家
|
jeff71321
一般會員 發表:6 回覆:14 積分:4 註冊:2005-01-20 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |