iOS Android PC多种外围设备连接方案

收银台的客户端需要连接各种外设设备,包括小票打印机,智能POS,扫描枪等外围设备。

传统的收银台只有PC端,外围设备通常都是通过有线的形式连接到PC。

现代的收银台除了PC端,还有手机,平板电脑等移动收银台。

手机和平板不能通过有线的形式连接到外围设备,需要通过蓝牙,WiFi,GPRS,NFC等无线形式连接到外围设备。

基于这种情形下,设备服务器需要有以下特性。

1.可扩展。由于外围设备的类型和个数不确定,设备服务器必须支持添加设备,删除设备。

2.可共享。一个现代的收银系统可以包括多个客户端,比如PC端,iOS端,Android端。一个客户端连接的设备,可以共享其他客户端。

3.稳定。设备状态可以检测,设备掉线可以重连,设备出错可以重试,可以脱机工作。

4.高性能。设备必须稳定高效的工作,要有一定的吞吐量。可以并行或者串行工作。

设备服务器实现方案。

1.可扩展

高度抽象外设设备的基类。

一般的外围设备都有支持一下几种功能:

a.设备的查找或者发现

b.设备的连接

c.设备的状态检测

d.设备的基本信息

e.设备的数据读写

基于这些外围设备基类,每种设备实现自己的子类。

外围设备在基类的内部实现自己的连接方式,列如蓝牙,WiFi,GPRS,NFC。

设备服务器不需要关心外围设备的实现方式,直接管理外围设备。

这样设备服务器就可以支持不同的外围设备。

2.可共享。

一般收银系统的客户端都在一个局域网中,比如一个饭店的收银系统的客户端连接到一个WiFi上。

由于所有的客户端都在一个局域中,每个客户端启动一个本地的HTTP请求。

客户端添加外围设备时,都把自己连接的外围设备信息发送到中央服务器。

其他设备通过查询中央服务器,可以获取到分享的外围设备的信息,然后向共享外围设备的客户端发起HTTP请求。

分享外围设备的客户端收到请求后,向自己连接的外围设备转发请求。

3.稳定。

设计缓存队列,超时策略,完善设备状态监测,掉线重连方案,出错重连方案。

每种设备的连接方式不一样,所有必须根据设备的特性、驱动,尽可能考虑所有的可能所有出错的场景,不断的试错,不断完善。

多和设备厂商联系,向技术支持请教。

去掉一些不稳的设备,寻找同种设备的最佳厂商。

4.高性能。

使用多线程,信号量,同步锁。

同一个设备串行,不同设备并行。

找出性能的瓶颈,并进行优化。

你可能感兴趣的:(iOS Android PC多种外围设备连接方案)