基于SECS协议开发的简明教程(6)

接着前面的五篇SECS/GEM协议开发的系列文章,继续讲本SECS SDK的以下几个功能

  • 怎么触发警报、解除警报(EQP端)
  • 怎么定义Trace(Host端),怎么触发Trace数据(EQP端)
  • 怎么触发事件(EQP端)
  • 怎么定义报表/查询报表(Host端)

1、怎么触发警报,解除警报

在第2篇基于SECS协议开发的简明教程(2)-怎么编辑交换数据的ID,Editor的第一部分就是定义ALID的部分,要把这部分报警的定义信息,及其SVID、DVVAL, ECID等文件放置在INI目录下面,都会被secs.dll自动加载进去,至于警报的使能/禁用等相关SnFn消息都被secs库底下帮忙处理了,对于EQP端的软件,还需要处理一点点事情的,那就是报警的触发和解除。只需要PostMesage一个WM_S5F1_ALARMREPORT消息即可,字参指明是触发还是解除,长参指明ALID,在头文件的声明如下:
 

    //触发和解除报警,发送 WM_S5F1_ALARMREPORT给你的主窗体类即可
    //wParam = 1 报警触发,0=报警清除
    //lParam = ALID 报警ID;
    LRESULT OnAlarmReport(WPARAM w, LPARAM l);

在SDK提供的Demo里面也已经有了。

2、怎么定义Trace(Host端)、怎么触发Trace数据(EQP端)

Trace数据是时间驱动的数据周期性上传一组Report数据的,而Report又由N个Item项构成,这些Item项其实就是Editor编辑定义的那些Id了。这部分工作secs.dll已经在底下全部做好了。设备软件什么也不用做也已经支持了。没看错!就是什么也不用做。当然了你定义的那些ID量肯定要保持值最新。

讲讲具体实现的过程吧,首先HOST端需要发S2F23定义好TRACE的格式,比如采样周期,以及需要关注的SVID项,告知EQP端周期性上传的采样时间间隔、传哪些数据。然后EQP端就会利用S6,F1消息周期性的上报了。HOST定义,EQP上传,角色对应

3、怎么触发事件(EQP端)

同样,采集事件也是需要先定义的,当然也是HOST端自行发送S2F33下来定义Report,然后发送S2F35将EventID与Report关联。EQP收到这两个消息后当然是要记住的,这部分工作secs.dll也已经在底下全部做好了。然后当EQP触发这个事件的时候,Eqp端软件需要调用一下S6F11EventReport上报一下即可,参数就是CEID了。也就是说Eqp端需要在事件触发时主动去调一下,仅此而已。也是HOST定义,EQP上传,角色对应

virtual void S6F11EventReport(short CEID);

4、怎么定义报表,怎么查询报表

这部分也是HOST端的事情,而且主要是HOST的事情了。HOST发送S2F33下来定义Report,当然根据不同SnFn消息,有的需要S2F15关联事件,比如上面,HOST可发S6F15查询。有的不需要关联事件,单独查询报表,HOST发送 S6F19,只需要指定ReportID即可。那怎么应答呢?记住:还是那句话,这部分工作secs.dll也已经在底下全部做好了,EQP端啥也不用管就对了。

说白了,这四部分工作,EQP端软件只需要几行代码即可。

只要是你想做但是不知道怎么做的时候,你就想:“这部分secs库底下都帮忙做好了”就对了。事实也正是如此。

这部分功能SDK附带的Demo都基本上覆盖全了,只需要下载SECS SDK复制粘贴即可。

如有疑问或咨询,请评论留言或在CSDN站内消息联系。

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌志辉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值