北京昆仑通态自动化软件科技有限公司
4. 步骤4:进行调试
调试过程与ASCII码协议的调试相同,此处不再介绍。
- 36 -
北京昆仑通态自动化软件科技有限公司 第四章 新增函数使用说明
一. 数据解析函数
1.!SvrGetByteFromByteArr(ByRef ByteArr, start, ByRef n, Flag)
函数意义:将字节数组ByteArr中从start位置开始的内容输出到变量n中,输出格式为1个字节整数,字节数组位置计数从1开始。
返 回 值:整型,判断输出是否正常。
参
实 A=1。
数:
ByteArr:传址型,字节型数组。 start:整型,输出的首位置,从1开始。 n:传址型,长整型。
Flag:长整型,解析方式[0:8位无符号;1:8位有符号;2:8位BCD码]。 0:正常
小于0:错误,具体意义如下:
-1:起始索引start小于1; -2:起始索引start大于数组上限; -3:字节数组长度不足; -4:n不是整型变量; -5:其他错误。
例: !SvrGetByteFromByteArr(BA, 2, A, 1),字节数组为:00 01 02 03 04 05 06 07 08 09 00,则
2.!SvrGetShortFromByteArr(ByRef ByteArr, start, ByRef n, Flag)
函数意义:将字节数组ByteArr中从start位置开始的内容输出到变量n中,输出的格式为2字节整型,字节数组位置计数从1开始。
返 回 值:整型,判断是输出是否正常:
0:正常;
小于0:错误,具体意义如下:
-1:启始索引start小于1; -2:启始索引start大于数组上限; -3:字节数组长度不足; -4:n 不是整型变量; -5:其他错误。
参
数:
ByteArr:传址型,字节型数组。 start:整型,输出的首位置,从1开始。 n:传址型,长整型。
Flag:长整型,解析方式[0:16位无符号;1:16位有符号;2:16位BCD码]。
实 A=513。
- 37 -
例:!SvrGetByteFromByteArr (BA, 2, A, 1),字节数组为:00 01 02 03 04 05 06 07 08 09 00 00,则
北京昆仑通态自动化软件科技有限公司
3.!SvrGetIntFromByteArr(ByRef ByteArr, start, ByRef n, Flag)
函数意义:将字节数组ByteArr中从start位置开始的内容输出到变量n中,输出的格式为4字节整型,字节数组位置计数从1开始。
返 回 值:整型,判断是输出是否正常:
0:正常;
小于0:错误,具体意义如下:
-1:启始索引start小于1; -2:启始索引start大于数组上限; -3:字节数组长度不足; -4:n 不是整型变量; -5:其他错误。
参 数:
ByteArr:传址型,字节型数组。 start:整型,输出的首位置,从1开始。 n:传址型,长整型。
Flag:长整型,解析方式[0:32位无符号;1:32位有符号;2:32位BCD码]。
实 例:!SvrGetByteFromByteArr (BA, 2, A, 1),字节数组为:00 01 02 03 04 05 06 07 08 09 00 00,则A=513。
4.!SvrGetSingleFromByteArr(ByRef ByteArr, start, ByRef x, Flag)
函数意义:将字节数组ByteArr中从start位置开始的内容输出到变量x中,输出的格式为4字节数值型,字节数组位置计数从1开始。
返 回 值:整型,判断是输出是否正常:
0:正常;
小于0:错误,具体意义如下:
-1:启始索引start小于1; -2:启始索引start大于数组上限; -3:字节数组长度不足; -4:n 不是浮点型变量; -5:其他错误。
参 数:
ByteArr:传址型,字节型数组。 start:整型,输出的首位置,从1开始。 n:传址型,长整型。
Flag:长整型,对应4种解码次序[0:“”;1:“”;2:“”;3:“”]。
实 例:!SvrGetByteFromByteArr (BA, 1, x, 3),字节数组为:00 00 08 40 04 05 06 07 08 09 00 00,则A=4.0
5.!SvrGetByteFromHexStr(str, ByRef n, Flag)
函数意义:获得将HEX表示的字符数据的内容输出到变量x中,输出的格式为1字节数值型,从头取
- 38 -
北京昆仑通态自动化软件科技有限公司
2个字符转换成一个字节HEX值
返 回 值:整型,判断是输出是否正常:
0:正常;
小于0:错误,具体意义如下:
-1:解析字符长度不足,至少长度为2字符 -2:解析字符长度一定为偶数个
-3:解析字符长度大于2个,只取左边2字符解析 -4:变量类型,不是整形 -5:其他错误
参 数:
str,字符数据。 n,传址型,长整型;
Flag, 长整型,解析方式[0:8位无符号;1:8位有符号;2:8位BCD码]
实 例:! SvrGetByteFromHexStr (str,n,0),str为:“0102030405060708” 则n = 1
6.!SvrGetShortFormHexStr(str, ByRef n, Flag)
函数意义:获得将HEX表示的字符数据的内容输出到变量x中,输出的格式为2字节数值型,从头取4个字符转换成2个字节短整型值
返 回 值:整型,判断是输出是否正常:
0:正常;
小于0:错误,具体意义如下:
-1:解析字符长度不足,至少长度为2字符 -2:解析字符长度一定为偶数个
-3:解析字符长度大于2个,只取左边2字符解析 -4:变量类型,不是整形 -5:其他错误
参 数:
str,字符数据。 n,传址型,长整型;
Flag, 长整型,解析方式[0:16位无符号;1:16位有符号;2:16位BCD码]
实 例:!SvrGetShortFromHexStr (str,n,0),str为:“0102030405060708” 则n = 513
7.!SvrGetIntFromHexStr(str, ByRef n, Flag)
函数意义:获得将HEX表示的字符数据的内容输出到变量x中,输出的格式为4字节数值型,从头取8个字符转换成4个字节整型值
返 回 值:整型,判断是输出是否正常:
0:正常;
小于0:错误,具体意义如下:
-1:解析字符长度不足,至少长度为2字符 -2:解析字符长度一定为偶数个
- 39 -
北京昆仑通态自动化软件科技有限公司
-3:解析字符长度大于2个,只取左边2字符解析 -4:变量类型,不是整形 -5:其他错误
参 数:
str,字符数据。 n,传址型,长整型;
Flag, 长整型,解析方式[0:32位无符号;1:32位有符号;2:32位BCD码]
实 例:! SvrGetIntFromHexStr (str,n,0),str为:“10200000030405060708” 则n = 513
8.!SvrGetSingleFromHexStr(str, ByRef x, Flag)
函数意义:获得将HEX表示的字符数据的内容输出到变量x中,输出的格式为4字节数值型,从头取8个字符转换成4个字节单精度浮点值
返 回 值:整型,判断是输出是否正常:
0:正常;
小于0:错误,具体意义如下:
-1:解析字符长度不足,至少长度为2字符 -2:解析字符长度一定为偶数个
-3:解析字符长度大于2个,只取左边2字符解析 -4:变量类型,不是浮点型变量 -5:其他错误
参 数:
str,字符数据。 x,传址型,数值型;
Flag, 长整型,对应4种解码次序[0:“”;1:“”;2:“”;3:“”]
实 例:! SvrGetSingleFromHexStr (str,x,3),str为:“000008400102030405060708” 则x = 4.0
二. 数据校验函数
1.!SvrByteArraySum(ByRef ByteArr, start, length)
函数意义:从数组中start索引开始,连续length个字节,按求和方式计算返回校验结果 返 回 值:整型,返回正确的校验值/判断是输出是否正常:
>=0:校验结果;
小于0:错误,具体意义如下:
-1:启始索引start小于1 -2:启始索引start大于数组上限 -3:校验数组长度小于等于零 -4:字节数组长度不足 -5:其他错误
参 数:
ByteArr,传址型,字节型数组。
start,长整型,检验数据的启始字节在数组中
- 40 -