如何將一個string的變數轉成byte由rRS232送出 |
答題得分者是:h@visli
|
itsgero2798
一般會員 發表:17 回覆:17 積分:6 註冊:2007-09-28 發送簡訊給我 |
|
h@visli
資深會員 發表:103 回覆:429 積分:431 註冊:2004-02-13 發送簡訊給我 |
var
CmdStr: string; begin //.... CmdStr := #$FF#$07#$F8; SendCmd(CmdStr); //.... end; ===================引 用 itsgero2798 文 章=================== 請教一下,現已知將 指令FFh 07h F8h 以BYTE送出為 #$FF #$07 #$F8 若指令為一個 STRING的變數,如何轉成BYTE送出,在前面加上#$不對 要如何改才對呢
------
------------------------ 博采眾家之長,奉獻綿薄之力 ------------------------ |
itsgero2798
一般會員 發表:17 回覆:17 積分:6 註冊:2007-09-28 發送簡訊給我 |
|
h@visli
資深會員 發表:103 回覆:429 積分:431 註冊:2004-02-13 發送簡訊給我 |
|
itsgero2798
一般會員 發表:17 回覆:17 積分:6 註冊:2007-09-28 發送簡訊給我 |
其實我輸入是一段字串,先轉成ASCII 再作 XOR計算出 CHECKSUM再輸出,
所以每輸入不同的的字串會計算出不同的CHECKSUM,計算出來的CHECKSUM再轉成 ASCII CODE以byte輸出,如下,計算出來為string 如何以byte由rs232送出 function checksum( s : string ) : String; var i, j, xorValue : Integer; HexArray : array[1..250] of Integer; begin xorValue := 0; i := Length(s); for j := 1 to i do begin HexArray[j] := Ord( Copy(s, j, 1)[1] ); end; for j := 1 to i do begin xorValue := XorValue Xor HexArray[j] ; end; result := InttoHex( XorValue, 2); end; |
h@visli
資深會員 發表:103 回覆:429 積分:431 註冊:2004-02-13 發送簡訊給我 |
你把你的RS232发送接口函数贴出来吧。
另外你的代码可以优化如下: [code delphi] function checksum( s : string ) : String; var i, xorValue : Integer; begin xorValue := 0; for i := 1 to Length(s) do xorValue := xorValue xor Byte(s[i]); Result := IntToHex(xorValue, 2); end; [/code]
------
------------------------ 博采眾家之長,奉獻綿薄之力 ------------------------ |
itsgero2798
一般會員 發表:17 回覆:17 積分:6 註冊:2007-09-28 發送簡訊給我 |
|
h@visli
資深會員 發表:103 回覆:429 積分:431 註冊:2004-02-13 發送簡訊給我 |
你可以直接以String类型发送,如果一定要一位一位的转成byte类型来发送,就直接用byte(s[i]),String串中的每一位Char你都可以直接转成byte类型的。
===================引 用 itsgero2798 文 章=================== 謝謝大大指教,我使用的發送的function如下 procedure TForm1.Send( s : string ); var lrc:LongWord; begin if (hComm=0) then exit; //檢查Handle值 WriteFile(hComm,PChar( s )^,Length( s ), lrc, nil); // 送出資料 end;
------
------------------------ 博采眾家之長,奉獻綿薄之力 ------------------------ |
itsgero2798
一般會員 發表:17 回覆:17 積分:6 註冊:2007-09-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |