一、 类和接口
l 概要
l 类和接口的使用举例
略。
l 示例代码片段
略。
l Java package
略。
二、 Device Controls
Device Control功能:
l 支持某个设备类别所应有的接口,这些接口包含属性、方法和事件。
l 管理Device Service的接口和跟它的连接。
l 实现对Device Service大部分属性访问和方法调用
l 支持添加和删除event listener
l 传递从Device Service传递过来的事件给上层应用
l 兼容老的Device Service版本
Device Service 管理
Device Control管理与Service的连接。Control利用Jpos.config/loader(JCL)来完成与Service的连接与断开。
属性和方法的实现
CONTROL必须使用SERVICE来实现所有属性和方法,除了:
open方法;close方法;DeviceControlDescription属性;DeviceControlVersion属性;State属性。
对于其他所有的属性和方法,CONTROL都会调用SERVICE相应的处理。比如访问一个属性的实现可能如下:
事件处理
应用程序通过CONTROL来注册或者注销事件处理器,而SERVICE把事件投递给CONTROL是通过调用CONTROL中的一个回调实例。该回调类可能是这样的:
Device Control 版本处理
JAVAPOS规定:Device Control如果跟Device Service的主版本号一致,那么对于所有的Service,Control都要正确处理,比如Control的一个方法内部要判断次版本号分开处理。
三、 Device Services
Device Service功能
l 支持某个设备类别所应有的接口,这些接口包含属性、方法和事件产生和事件派送。
l 实现属性访问和方法调用
l 产生事件,并入队和传递
l 管理对物理设备的访问
Device Service要求包含所以配置信息的JCL JposEntry 对象。
属性和方法的处理
属性的访问和方法的调用,都是靠Device Service实现的。Device Service成功处理请求则返回跟应用程序,否则抛出JposException。在处理请求之前,Device Service必须确保设备被有效的初始化。
事件的生成
Device Service负责将事件入队和推送。负责这些工作的是Device Service内部创建的线程,该线程会调用Control中的回调方法,并在这些回调中调用eventlistener。在以下情况下事件会被延迟发送:
l 应用程序设置FreezeEvent属性为true
l 事件类型是DataEvent或者输入ErrorEvent,但是DataEventEnable为false。
物理设备访问
Device Service通过通信端口来管理设备。通常需要相关设备驱动程序来控制设备。