|

楼主 |
发表于 2010-8-26 21:15:12
|
显示全部楼层
我來分析一下貓工長官提供的 POS 領域需用到的技術, 跟我貼過的幾篇研究做個對照 (與 Lazarus 有關係的)
1.本地数据库存储(离线时收款)
小弟打算用 SQLITE 當 本地数据库存储, "SQLITE 資料庫瀏覽工具", 就是研究如何存取與處理 SQLITE 的相關應用技術
2.远程数据库调用(直接连接和用webservice)
小弟遇到的客戶(主要都是承襲日本系統習慣), POS 只對 POS SERVER 做遠程調用, 對其它服務都透過 POS SERVER 代勞, POS 不直接對外部其它 SERVER 做 REQUEST ; 而 POS 跟 POS SERVER 間只使用專屬的 Middle ware 做通信, 小弟 INDY 那篇就是在研究這個部份的實作
3.对键盘按个按键设置快捷键 ->
屬商業邏輯, 跟 Lazarus 開發能力無關
4.不同的收款机会有不同的接口,接口的调用,如dll
對 Lazarus 如何 import *.dll 到是還沒研究, 不過對於 WIN32 環境下, 一套程式開發工具, 如 C, C#, VB , DELPHI等等對 DLL 對向的使用應該是最基本的能力, 我想 Lazarus 引用各種接口的 *.DLL 應該無問題
5.外设的控制(打印机、条屏、钱箱、密码键盘等)
很多週邊都是使用 RS-232 來控制, 對於 COMPORT RS-232 的使用我也貼過文了
6.个人觉得条码枪和条码设备不用开发,直接接上去,就可以扫得出来,即插即用
台灣習慣使用 RS-232 條碼槍, 在深圳遇過用 K/B 相容的 USB 條碼槍 (發出跟 K/B 一樣的 ASC II 訊號)會有個問題, 當刷會員卡牽涉到返利金時, 輸入卡號無法判斷是手工 KEYIN 或是使用條碼槍
因為信號都是從 KEY DOWN 進來, 如果我說沒帶卡, 胡亂唸一個卡號要收銀員 KEYIN, 剛好有這個卡號, 又剛好該卡號有不少返利金可使用, 變成任何人都可以去盜用別人的返利金, 所以我客戶要求程式能判斷卡號是手輸就不能使用返利金, 條碼槍刷入(表示有帶卡)才能使用卡裡面的返利金, 若用 RS-232 條碼槍很好判斷, 因為進來的接口地方不一樣, 深圳的這個問題(使用 USB 條碼槍 , 程式就無法分辨卡號是 KEYIN 還是掃瞄進來的) 我最後還是解決了這個問題, 留給大家猜猜我的解決方式
7.算法,很多算法,价格的,打折的,流程的
組合促銷, 屬商業邏輯, 跟 Lazarus 開發能力無關
8.对键盘的锁定(不允许切换出去,不允许用开始键等)
屬商業邏輯, 跟 Lazarus 開發能力無關
9.数据包上传下载的完整性
靠經驗規劃架構的完整性 , 若規劃不好, 使用最先進的傳輸技術一樣會 LOSS 資料, 屬商業邏輯, 跟 Lazarus 開發能力無關 ; 若真要保證資料在物理傳輸通訊上的完整性, INDY 那篇可以再研究如加強對 DATA 傳輸過程中的 HAND SHAKING, ERROR RETRY, 等容錯處理能力
|
|