长距离通信器S1503的应用编程原理
2 编程控制原理
开发S1503系统软件的工具包括编译器、装载器、驱动程序和函数库等。利用交叉编译器Conficomp,可以在PC平台上开发、调试通信器应用程序,然后利用Confiload下载软件,将通信器应用程序下载。PC机应用程序可以利用任何软件进行开发,包括使用Confilib函数库。
在CONFIDENT系统中,如何编程控制通信器是关键,有四种控制方式可供参考。
(1)通信器应用程序
该方式是用用户在Confilib库函数基础上编写的应用程序取代标准通信器应用程序Pyramid,所有逻辑判断均由用户所编写的通信器应用程序完成。主机可不定期地连接到通信器上读取通信器记录信息,并更新通信器数据库。该方式的优点是运行速度快,可单机运行;缺点是需要PROM写入器,缺少方便的界面。
(2)利用Confilib命令的主机应用程序
在该方式中,通信器S1503完全由利用Confilib库函数或其它软件开发的主机程序控制,系统智能部分在主机,通信器不做任何逻辑判断。当主机应用程序调用Confilib函数时,自动将Confilib命令翻译成ConfiTalk命令,然后传递给S1503。S1503根据该命令招待对应的Confilib命令。这种方式的优点是:与通信器应用程序Pyramid控制方式相比,拥有更加方便的界面,主机应用程序更加便于开发、调试;缺点是执行速度慢。
(3)主机应用程序与Pyramid通信
这种方式与第二种方式相似。主要区别在于主机与S1503的标准应用程序Pyramid通信,而不是直接同Confilib通信。主机程序与通信器标准应用程序通过互送邮件实现通信。采用这种方式的优点是:主机应用程序简单,部分逻辑判断可交给通信器应用程序,从而获得较快的运行速度;缺点是:Pyramid邮件不支持写标签和数据库管理功能,不过,这些功能可通过Confilib/Confitalk命令实现。
(4)用户协议
这种方式除了通信器中的Confilib之外,所有软件均由用户编写,当系统使用ConfiTalk以外的协议时,采用这种方式。该方式的优点是:可实现通信器ConfiTalk以外的协议通信;缺点是编写程序量大,开发周期长。
3 应用编程
事件是指正常程序运行以外不定期发生的事情。事件可来自外部(如按键),也可以来自内部(如定时器)。S1503程序库的核心是一个称作事件器的模块,其绝大部分应用是由事件驱动的。Confilib库中有七个模块产生事件,可能产生的事件包括:DTMF(双音多频接口输入)、Push_Button(通信器控制盘上的按键被按下)、Doppler_Radar(多谱勒雷达检测到运动物体)、Par_In(并行输入口输入)、Timer(设置的计时器到达时间)、Tag(成功阅读到一个标签)、Tamper_Switch(防护开关动作)、Null_Event(自上次查询后,没有事件发生)、Reset_Event(系统复位)。防护开关除外,其它所 有事件模块必须经过初始化后才能够产生事件。当事件产生时,系统及时响应并存入通信器事件处理器,应用程序通信调用Bsw_Event_Handler_Get_Event()从通信器读取事件;若有事件发生,调用以上函数返回其事件类型、相应数据;若无事件发生,返回Null_Event。因此,应用程序应是一个等待事件的死循环。当事件发生时,应用程序调用适当的事件处理程序来响应该事件。应用程序流程如图3所示。
4 通信编程
通信器S1503与主机进行通信交换信息,有三种方法:①利用CONFIDENT库函数所支持的动态缓冲区;②利用公司所提供的串行通信接口字节级设备驱动函数来自定义的通信协议;③利用CONFIDENT软件库提供的邮件交换系统。在S1503的实际应用中,邮件交换系统应用十分广泛。