none
遇到RS232不曉得怎麼寫入機器!! RRS feed

  • 問題

  • 我有一台有RS232的機器,

    因為我的機器,可以用網路上的某一個RS-232 Terminal程式,

    可以讀出裡面的資料,因為他要我們按ALT + 0,放掉0

    再按5的時候alt不放,再放掉alt,這個時候我的RS232機器就會進入傳輸狀態

    我認為,是我們寫入資料給RS232他才會啟動,

    確定這台機器,RS232是通的。

    但是我目前想要自己寫一個讀取的程式,可是遇到一些問題,

    我目前的認知是,他是用ASCII碼,來啟動但是,

    在程式裡,要怎麼寫ASCII碼給那台機器,是直接write("48")(0的ASCII碼

    好像是48吧!)是這樣嗎??

    那ALT要怎麼寫呢???

     

    目前我卡在這,沒什麼頭述,請有人有經驗嗎???

     

    2007年6月8日 上午 05:26

解答

  • 我想你跟廠商要到白皮書比較實在。

     

    所有通訊命令都會記在白皮書上面。

     

    沒有白皮書,前因後果都不知道,到時候會無法除錯。

     

    VB 本身不包裝鍵盤掃描碼,只包 AsciiKey ,你去看 KeyPress 事件就知道了,Alt, Ctrl, Shift 是屬於鍵盤掃描碼的東西,所以一般 Windows 軟體不會去特別處理這些組合鍵的問題,此外這些功能鍵本身不在 Ascii 字元碼範圍內,字串命令是送不出去的。

     

    很多 COM 埠通訊在處理控制命令可能會用 ^ 起頭,我不確定是否是 ^ 。所以一切要以廠商提供的白皮書為準,高單價的這東西應該要隨硬體附上(萬元以上),低單價的可能會另外賣(千元以下)。

    2007年6月9日 下午 01:32
    版主

所有回覆

  • 用 "0" 或 Chr(48)

    我想 Alt+0 應該是那個應用程式的功能鍵,並非是傳輸到通訊對象的按鍵。

    Alt會出現在鍵盤掃描碼中,不會出現在 ASCII 字元碼中,關於 ASCII 字元碼你可以看線上手冊這個位置:

    ms-help://MS.MSDNQTR.v80.cht/MS.MSDN.v80/MS.VisualStudio.v80.cht/dv_vsref/html/55a5ff74-169c-49d9-9d5d-5e6cba634ac5.htm

     

    建議你索取該通訊對象的白皮書,裡面有完整的命令可查閱,不同硬體會有不同的命令字串,沒有白皮書也猜不出來。

    2007年6月8日 上午 07:37
    版主
  • 我想,可能不是這樣子的,目前的情況是這樣,

    我使用「超級終端機」按著廠商給我的規格,baud rate為9600,data bits 為8,

    parity為none,stop bits 為1,handshaking為none,設定後按連線,就接到我目前

    這台機器上,

    而我在畫面空白的地方,按了「Alt+0」「Alt」不放,再按「Alt+5」,資料就會自動傳輸了,

    而我現在想做的是,不要去按鍵盤上的按鍵,那我要用vb直接用一個button,代替這一個動作,

    就不曉得這個「Alt+0+5」到底代表著什麼意思呢?

    我應該對那台RS232的機器,寫入什麼樣的字元才會啟動那台機器呢??

    我的疑問在這,請問有人能夠幫助我這個問題嗎?

    2007年6月8日 下午 03:18
  • 我想你跟廠商要到白皮書比較實在。

     

    所有通訊命令都會記在白皮書上面。

     

    沒有白皮書,前因後果都不知道,到時候會無法除錯。

     

    VB 本身不包裝鍵盤掃描碼,只包 AsciiKey ,你去看 KeyPress 事件就知道了,Alt, Ctrl, Shift 是屬於鍵盤掃描碼的東西,所以一般 Windows 軟體不會去特別處理這些組合鍵的問題,此外這些功能鍵本身不在 Ascii 字元碼範圍內,字串命令是送不出去的。

     

    很多 COM 埠通訊在處理控制命令可能會用 ^ 起頭,我不確定是否是 ^ 。所以一切要以廠商提供的白皮書為準,高單價的這東西應該要隨硬體附上(萬元以上),低單價的可能會另外賣(千元以下)。

    2007年6月9日 下午 01:32
    版主
  •  謝謝你的回答,

    之前一直在看廠商給的說書,原來那些按鍵,不過是送一個字元給機器,

    原來是要送一個ASCII碼,給機器,機器就會自動啟動傳輸,

    而原來只要送一個ASCII碼「5」就可以了~~~

    謝謝你的幫助,我對VB.NET不太熟悉,非常謝謝網路上的各位的幫助!謝謝。

    2007年6月9日 下午 02:04