资料名称 | iF6报钟器-公共接口程序(SQL方式)—硬件设备驱动V1.01 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
更新时间 | 2013-9-14 16:09:17 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
下载地址 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
资料说明 | 我公司提供以数据库作为开发接口的方式与第三方应用程序作对接,底层接口程序“智能语音报钟系统iF6设备驱动服务”(下称设备驱动)负责完成通过RS232/RS485和刷卡器进行通讯的工作;第三方合作软件公司依据自己需求,开发的应用程序(下称应用程序)可根据接口协议与设备驱动对接,主要分为以下三步完成。
1、设备驱动程序完成了对设备发来的RS232/RS485格式数据解包,并将信息内容保存至数据表FXT_MESSAGE中,并将相应的记录状态(message_status字段)设置成为“请求”;
2、应用程序定期(如1秒钟,具体时间可由应用程序自行定义)对数据表FXT_MESSAGE进行检索,查询是否有新增的“请求”记录;获得请求信息后,完成请求所要求的功能,并将结果写回数据表FXT_MESSAGE中,修改相应字段。修改方法为:将处理结果写入response_conten字段中,并将message_status设置为“响应”。
3、设备驱动程序扫描数据表FXT_MESSAGE,查询是否有“响应”信息,并将响应内容发送至对应的设备,设备收到驱动发来的信息后,对信息进行处理(如显示成功/失败、到钟提醒、报警等),然后通知驱动程序处理成功,驱动程序修改记录状态为null,此时驱动完成了整个信息处理。对于完成了的信息记录,应用程序可进行任意操作(比如移除、清除等)
工作流程图如下:
图一:接口流程图
1、安装设备驱动需要确保有Java的运行环境,以及RS232串口驱动;
2、需安装SQLSERVER数据库,数据库与设备驱动可以分别在不同的服务器或工作站中运行;
FXT_SETTING表格说明
此表格存放串口号代理器,一个串口号可以接128个设备。
FXT_MENU表格说明
此表格存放的数据将在设置功能启动的时候自动从数据库中读取。
FXT_MESSAGE表说明:
具体的创建表格SQL文件请参考db/createdatabase.sql文件的
请求例子格式如下:
在实际施工中,通过串口扩展卡,一个PCI插槽可以扩展8个串口,每个串口最多可以连接128个房间。客户应该在自己的系统中建立房间与串口号和设备号的对应关系。这样通过串口号,和设备号,软件就可以得到是哪个房间发送的信息了。
请求参数根据不同的请求类型即命令内容的不同,拥有的参数个数和参数名称是不一样的,具体的参数需要根据刷卡器设置的菜单类型来决定;应用程序应先将参数列表解释成为“名=值”对的方式放在存储表中,然后根据需要来获得相关的参数值,从而调用不同的功能方法。 例如加钟:
命令类型 加钟
命令参数 模式编号:01;加钟钟数:1;技师卡号:0006666866
应用软件应该根据命令类型的不同,对命令参数进行分析,获得每个必要的参数值。对命令参数处理时需要使用正则表达式:首先以分号作为间隔获得参数名称和值对,将其以参数名为主键,存入哈希表中,然后根据参数名称获得值来作相应处理。
1、应用程序获得有效请求的方法:
由于应用程序程序可能是由不同的语言编写的,所以方法会有一定差异,但是应用标准的SQL数据库语言或者ODBC接口,使用以下SQL查询语句通常可以完成这个功能:
select * from fxt_message where request_time>getDate()-0.001 and message_status='请求';
其中request_time>getDate()-0.001表示请求时间不超过1分30秒的记录,也可就通过编程动态计算获得。
获得数据库记录后,有可能同时存在多个记录,应该根据每一个记录的串口号、设备号、请求类型、请求参数逐个进行处理,调用不同的方法处理。
2、应用程序返回信息
本接口可以接受的返回信息可以不是固定的,可根据国标字库显示相应的文字,常用信息:
起钟成功 加钟成功 小费成功 错误技师卡 已经起钟 房间错误 出钟成功
应钟成功 服务成功 没有起钟 错误部长卡 错误客人卡 错误模式编号
错误商品编号 错误技师编号 排钟成功 点钟成功 选钟成功 括钟成功
撤钟成功 退技师成功 更换房间成功 商品成功 赠送成功 错误技师类别
应用程序可根据流程需要,自行设置相应的返回信息,但字体不能超过31个中文字符或62个英文字符。
使用以下SQL查询语句通常可以完成这个功能:
update fxt_message
set response_time=getDate(),
response_type='返回信息',
response_content='$信息内容$',
message_status='响应'
where com_id='$com_id$' and device_id='$device_id$' and request_time=$请求时间$
其中$信息内容$根据上一步骤处理结果所返回的情况,动态确定;
其中$com_id$、$device_id$和$请求时间$根据获取请求时查询所得相应值来确定。 |