資料名稱 | 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$和$請求時間$根據獲取請求時查詢所得相應值來確定。 |