VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

請問文字轉換16位元的問題

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
mp484



註冊時間: 2006-08-08
文章: 84


第 1 樓

發表發表於: 星期五 三月 16, 2018 10:31 pm    文章主題: 請問文字轉換16位元的問題 引言回覆

如何把 98 05 90 B9 E6 轉換為16字元的碼,輸出給RS232?
試了很久一直試不出來,求教!
回頂端
檢視會員個人資料 發送私人訊息
lygcw9603



註冊時間: 2011-12-25
文章: 126


第 2 樓

發表發表於: 星期一 三月 19, 2018 12:39 pm    文章主題: 引言回覆

結果是什麼
回頂端
檢視會員個人資料 發送私人訊息
mp484



註冊時間: 2006-08-08
文章: 84


第 3 樓

發表發表於: 星期二 三月 20, 2018 11:22 am    文章主題: 引言回覆

需要將16進位的98 05 90 B9 E6 轉換成二進位,再傳給 com port
不知怎麼轉換? 求教
回頂端
檢視會員個人資料 發送私人訊息
bx1166



註冊時間: 2011-12-06
文章: 273


第 4 樓

發表發表於: 星期四 三月 22, 2018 5:08 pm    文章主題: 引言回覆

國中數學拿出來用就可以了.
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2157


第 5 樓

發表發表於: 星期四 三月 22, 2018 9:56 pm    文章主題: 引言回覆

0xFF ==>> 16進位的字元 FF 轉成10進位 , 在前面加上0x 即可
而二進位有可能是指用 chr( 10進位) 吧, 應該不是 11111111
試看看是不是 chr(0x98)+chr(0x05)+chr(0x90)+chr(0xb9)+chr(0xe6)
你還要注意傳給com port 是用文字模式還是字元模式的設定值.

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
mp484



註冊時間: 2006-08-08
文章: 84


第 6 樓

發表發表於: 星期六 三月 31, 2018 8:41 pm    文章主題: 引言回覆

目前把從Com Port 接收到input的RS232訊號為16位元的格式 980590B9E600000000000000000000000000000...
以blob的格式存檔後,可以輸出output給RS 232的com port,但運算出來的16進位字元,不知道怎麼轉換成binary的格式
以output輸出給RS 232 的com port ?

如果有人會這方面RS232與硬體連接的轉換程式,我可以付費請你寫這一段轉換程式!我亟需要用,請大家幫忙!
回頂端
檢視會員個人資料 發送私人訊息
Niles



註冊時間: 2004-12-07
文章: 53


第 7 樓

發表發表於: 星期日 四月 01, 2018 4:38 am    文章主題: 引言回覆

試試看這個方式, 不確定是否可行(16進位值上限為 0xFFFFFFFFF)

lcOutput = Hex2CommStr(帶入16進位值)

MsComm.Output = &lcOutput

*-------- Hex2CommStr()
PROCEDURE Hex2CommStr

PARAMETERS lnHex

LOCAL lnOperator, lnCount, lnRest, lnI, lcReturn

lnOperator = 256

lnCount = 0

lnRest = lnHex

DO WHILE lnRest > 0

lnRest = INT(lnRest/lnOperator)

lnCount = lnCount + 1

ENDDO

lcReturn = []

FOR lnI = 1 TO lnCount

lcReturn = lcReturn + IIF(EMPTY(lcReturn), [], [+]) + [CHR(] + TRANSFORM(INT(lnHex / lnOperator ^ (lnCount - 1))) + [)]

lnHex = MOD(lnHex, lnOperator ^ (lnCount - 1))

lnCount = lnCount - 1

NEXT

RETURN lcReturn
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
mp484



註冊時間: 2006-08-08
文章: 84


第 8 樓

發表發表於: 星期一 四月 02, 2018 12:06 pm    文章主題: 引言回覆

感謝您! Niles
我先測試一下,謝謝!
回頂端
檢視會員個人資料 發送私人訊息
kalok



註冊時間: 2010-08-26
文章: 284


第 9 樓

發表發表於: 星期三 四月 04, 2018 8:07 am    文章主題: 引言回覆

輸出serial port應該不難
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作