串口 pdu解码

一、PDU编码
function Encode2(var s: WideString): String; //中文编码转PDU格式
var
i,len:Integer;
cur:Integer;
t:String;
begin
Result:='';
len:=Length(s);
i:=1;
while i<=len do
begin
cur:=ord(s[i]);
FmtStr(t,'%4.4X',[cur]); //BCD转换
Result:=Result+t;
inc(i);
end;
end;
二、PDU解码

function TForm1.DecodeChinese(SRC: String): string; //中文解码
var i:Integer;
S:String;
D:WideChar;
ResultW:WideString;
begin
for i:=1 to Round(Length(Src)/4) do begin
S:=Copy(Src,(i-1)*4+1,4);
D:=WideChar(StrToInt('$'+s)); //此处是重点,用delphi提供的widechar可以转换
ResultW:=ResultW+D;
end;
Result:=ResultW;
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值