校验和:一条指令内所有发送出的数据按Uin8进行累加,取低两个字节,低字节在前,高字节在后。
在定时中断0中检查串行0口收到的数据,并进行协议的解析。
由于串行中断的等级较低,可能会出现中断来不及响应从面造成串行接收的数据丢失,在向仪器发串行数据时,*好能一次发16字节,延时一段时间后再发。
仪器收到命令的判定
是否己收到命令?是:根据命令类型进行分支处理,命令处理完后**收到命令标记。
否,判定接收缓冲区的长度是否大于等于4? 否:退出
是,则读出**个字节判定是否是A? 否:退出
是,则读出**个字节判定是否是W?否:退出
是,则读出第三个字节判定是否是A?否:退出
是,则读出第四个字节,设置己收到命令标志。
判定发送缓冲区是否为0,并且串行发送己空闲,则将**个字节发送出去,启动串行口自动发送,
1.瞬时值传输指令:
AWA A :主动上传瞬时值开.
AWAa :主动上传瞬时值关。
回答:AWA+数据类型+数据长度+时间+数据+校验和。
数据类型:A :
数据:100倍的瞬时值,按int16 linstFZ; int16 linstSZ; int16 linstIZ; int16 linstFC; int16 linstSC; int16 linstIC; int16 linstFA; int16 linstSA; int16 linstIA; 顺序发送,每个数据为2字节,低字节在前。主动上传时一秒47次。
数据长度两个字节,
时间:4年2月2日2时2分2秒 (十六进制码) 2字节OCT次数。
仪器收到此命令后,设置相应标志,允许串行发送中断。在softint1程序中检查标志,如果有主动上传标志,则每次实时分析完成后将要发送的数据送到发送缓冲区,发送缓冲区*长为256字节。向发送缓冲区写数据时不考虑缓冲区内己有的数据。
2.1秒值传输指令:
AWAB :主动上传1秒值开. TEST OK
AWAb :主动上传1秒值关。 TEST OK
回答:AWA+数据类型+数据长度+时间+数据+校验和。
数据类型:B:
数据:100倍的1秒值,按int16 lpFZ; int16 lpSZ; int16 lpIZ; int16 lpFC; int16 lpSC; int16 lpIC; int16 lpFA; int16 lpSA; int16 lpIA;int16 leq1sA int16 leq1sC int16 leq1sZ ;每个数据为2字节,低字节在前。主动上传时一秒一次。
时间:4年2月2日2时2分2秒 ((十六进制码))
仪器收到此命令后,设置相应标志,退出外部中断0。在softint1程序中检查标志,如果有主动上传标志,则每秒将要发送的数据送到发送缓冲区,发送缓冲区*长为256字节。向发送缓冲区写数据时不考虑缓冲区内己有的数据。
3.读写时钟(暂无用)
AWAC:读出仪器内部时钟
回答:AWA+C+数据长度+当前时钟+ 校验和
AWAc+数据总长+时钟 +校验和:写入时钟 TEST OK
时间:4年2月2日2时2分2秒 (BCD码) 。
仪器收到此命令后,允许串行发送中断,将要回答的数据写入发送缓冲区,如果是写入时钟,则直接跳到写入。
5. 读积分值,启动暂停测量(暂无用)
AWAI:读出仪器内部的积分值。
回答:AWA+I+数据总长(48)+启动时间+Tm+LeqAT+ LeqCT + LeqZT +sta_weight+3字节保留+sta_ln[10]+校验和
sta_ln[10]内的指标顺序为Lmax,Lmin,L5,L10,L50,L90,L95,SD,SEL,E
AWAi +数据总长+Ts+stat+校验和 **积分值,设定测量时间,启动测量
uint8 stat; //测量状态,送0
Ts由Ts.hh,Ts.mm,Ts.ss 三个字节组成。
6.读写峰值(暂无用)
AWAP:读出峰值C声级
回答:AWA+P+数据总长+Cpeak+(int16)+ Cpeak-(int16)+校验和
AWAp: 峰值C声级清零(暂无用)
8. 关闭打开串行口通信
AWAO+仪器序号(6位):打开串行口发送,仪器每次复位后总是允许串行口发送。
AWAo+仪器序号(6位):关闭串行口发送,仪器只能接收打开串行通信命令,不再对其它串行口命令回应,并将主动上传命令**。
9,**FLASH
AWAf+数据总长+X+仪器机号(6位)+ 校验和 :**X区FLASH
X=22到27
22,23区放预存测点名,24,25区放历史校准信息,26,27放仪器信息
10.读FLASH(测量结果,64k)
AWAF+ASC(0):查寻存贮的测量结果总数
回答:AWA+F+数据总长+总数+ 校验和
AWAFX :读出位置号为X的测量结果,X为位置号,取值范围为1~128,每个位置号下*多存放512字节数据。
回答:AWA+F+数据总长+数据+ 校验和
11.读/写 flashname区(预存文件名,8k)
AWAD:读出所有预存文件名
回答:AWA+D+数据总长+数据+ 校验和
AWAd+数据总长+起始位置+要写入区块数+校验和---等回应写入的命令----写入数据。
从起始位置写入数据,要写入区块数一次必须为1、2、8。起始位置取值范围为0~15,一个区块为512字节。
注意写前应先清FLASH区
12.读校准结果,8k
AWAE:读出校准记录
回答:AWA+E+数据总长+数据+ 校验和
15.读/写15区FLASH(仪器信息,8k)(暂无用)
AWAG:读出仪器信息
回答:AWA+G+数据总长+数据+ 校验和
AWAg+数据总长+起始位置+要写入区块数+校验和---等回应写入的命令----写入数据。
从起始位置写入数据,要写入区块数一次必须为1、2、8。起始位置取值范围为0~15,
AWA6228仪器的计算机接收软件功能及操作同AWA6291,可以在AWA6291软件的基础上加入仪器型号选取菜单,也可利用仪器复位时发出的仪器型号来判定。
AWA6228软件主要完成
1. 预存测点名的读出,编辑,**,写入,保存。
2. 测量结果的读出,**,保存,转为EXCEL文件。
3. 校准信息的读出,**,保存。
4. 实时监测功能,实时监测数据的记录。
http://www.shidaiyq.com