想发送报文指令【00 00 00 00 00 06 01 01 0C 00 00 1E】,结果变成了以下指令,帮忙看下是什么原因
事件 读取发送.周期事件(源对象 为 时钟)
常规发送("00 00 00 00 00 06 01 01 0C 00 00 1E")
结束 事件
函数 常规发送(指令 为 文本型)
变量 结果 为 文本型[]
变量 数量 为 整数型
结果 = 分割文本(指令," ")
数量=(取文本长度 (指令)-((取文本长度 (指令)+1)/3-1))/2
变量 数据 为 字节型[]=创建 字节型[数量]
变量循环(计次=0,数量-1,1)
数据[计次]=到字节(到文本(到整数((结果[计次]))))
结束循环
客户1.发送数据(数据)
结束 函数
好的,谢谢,后面用直接发送解决了
您好,您发送的指令不正确的原因是:“常规发送”函数中的转换算法不正确,正确的方式为:
函数 常规发送(指令 为 文本型)
变量 指令组 = 分割文本(指令," ")
变量 指令长度 = 取数组成员数(指令组)
变量 指令字节集 为 字节型[] = 创建 字节型[指令长度]
变量循环(i = 0,指令长度,1)
指令字节集[i] = (字节型) Integer.parseInt(指令组[i], 16)
结束循环
客户1.发送数据(指令字节集)
结束 函数如果在知道明确指令整数值(16进制)的条件下,建议直接发送16进制更好,这样可以避免转换过程中的导致的不确定性问题,例如:
变量 字节数据1 为 字节型[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x01, 0x0C, 0x00, 0x00, 0x1E }
客户1.发送数据(字节数据1)