实施例二:
如图1-图3所示的实施例二所述的一种物联网一对多数据采集方法是在实施例一所述的一种物联网一对多数据采集装置的基础上实现的,包括如下步骤:
步骤1:建立所述一种物联网一对多数据采集装置,在智能平板设备1中安装安卓系统;
步骤2:用户首先在智能平板设备1上进行设置操作,并在智能平板设备1进行登录,登录之后进入操作界面,然后进入指环操作;
步骤3:用户需使用采集指环2与智能平板设备1进行连接,其步骤如下:
步骤S1:采集指环2通过摄像头扫描带有智能平板设备1蓝牙MAC地址的条码,解析后向智能平板设备1发出匹配请求;
采集指环2所扫描的蓝牙MAC地址条码,需以特定的格式打印成一维或二维条码,内容为[CMD]BTXXXXXXXXXXXX,其中以[CMD]BT作为前缀。“[CMD]”为指环默认指令条码前缀,即以[CMD]为首的一类条码,经指环解析后均视为向指环发送命令,而不是以普通条码输出。后续“BT”即为蓝牙英文名Bluetooth缩写,“XXXXXXXXXXXX”为12位蓝牙MAC地址,该内容含义为向“XXXXXXXXXXXX”为地址的蓝牙设备3发送匹配请求;
蓝牙的数据传输协议为SPP,因此为保证指环处于该协议下,可以通过扫描设置协议的命令条码[CMD]SPP,将指环协议强制切换到SPP下;
S2:智能平板设备1接收到匹配请求后,发出设备接入请求的广播消息,安卓系统的广播包含两方面,发送者与接收者;安卓系统本身即为发送者,发送者对于每一条发送的广播均设有一个关键字,该关键字的作用在于,广播分发时将通过关键字区别系统中哪些软件可以接收该广播,同时将一些额外信息封装其中,便于接收者取用;而作为接收者的应用软件在启动前需提前在应用中注册对应的广播接收器,接收器的关键字也应与上述系统广播关键字相同;
S3:对于采集指环2请求的广播,可注册以下关键字:
android.bluetooth.device.action.PAIRING_REQUEST
该广播指明有蓝牙设备3向智能平板设备1发送匹配请求;当智能平板设备1接收到广播消息后,即可获取到广播中包含的额外信息;其中可通过键值”android.bluetooth.device.extra.DEVICE”获取到一个BluetoothDevice对象,该对象包含了接入设备的部分信息,部分信息包括设备名称和MAC地址;智能平板设备1接收到采集指环2的请求后,连接的动作需要由智能平板设备1处理,处理的重要依据即为包含请求方信息的BluetoothDevice对象;
本实用新型的采集指环2匹配时无需Pin码,因此根据安卓系统SDK中提供的方法,可调用BluetoothDevice类中的setPairingConfirmation方法进行处理,调用此方法的有点在于:匹配请求接收时,智能平板设备1将在下拉列表中加入匹配的确认提示,如不手动点击该提示信息,匹配请求将在一段时间内被智能平板设备1自动拒绝,无法再进行后续操作,使用以上的方法,则可以成功跳过该操作,使匹配请求自动接收,无需手动下拉确认,节省使用者的操作步骤,提升用户体验;
S4:在采集指环2匹配成功后,智能平板设备1将以同样的方式发送广播,此广播的关键字如下:
android.bluetooth.device.action.BOND_STATE_CHANGED
广播仅在蓝牙设备3匹配状态变更时发送,其中可以通过键值”android.bluetooth.device.extra.DEVICE”获取匹配的设备对象BluetoothDevice,并根据getBondState方法判断是否匹配成功;
由于本实用新型为一对多的操作模式,因此需要提供多指环共同操作的功能,本实用新型采用分屏的方式,将一个指环绑定一个子屏,达到各指环独立工作,独立显示并处理的目的,并由分屏数量决定最多可同时连接的指环数量。
本实用新型的智能平板设备1采用7英寸屏幕,屏幕的尺寸较传统的移动终端设备更大,显示的面积更多,因此可以很好的满足分屏的要求;由于物联网数据采集的业务需要显示的信息较多,分屏多时无法显示全部的业务信息,影响使用,智能平板设备1的分屏数量以3-4屏为主,即支持同时3-4个采集指环2连接。
步骤4:采集指环2在匹配成功后,智能平板设备1通过分屏的方式,将一个采集指环2绑定一个子屏显示,达到各采集指环2独立工作,独立显示并处理的目的,并由分屏数量决定最多可同时连接的采集指环2的数量;
步骤5:智能平板设备1将各子屏进行编号,平板接收到匹配成功的广播后,给予用户选择编号的界面功能,由用户自行选择指环对应到的那块子屏;
步骤6:智能平板设备1通过匹配广播中获取的BluetoothDevice对象,开始进行数据流的收发工作:首先由BluetoothDevice对象创建蓝牙套接字BluetoothSocket对象,创建方法调用的是createRfcommSocketToServiceRecord,参数为唯一识别码UUID,值为”00001101-0000-1000-8000-00805F9B34FB”;
BluetoothSocket对象提供套接字连接方法,建立无线数据传输通道,并可以向通道中发送与接收数据,套接字连接方法的连接的方法名为connect,如调用套接字连接方法后未出现输入输出流异常,即表示平板与指环连接成功,同时,采集指环2上的LED灯将显示为蓝色灯;
通过BluetoothSocket对象的getInputStream方法获取输入流InputStream对象,调用其Read方法即可达到对输入流通道的监听;
对于Read方法的调用,由于没有数据接收时,该方法处于阻塞状态,因此建议将该方法的调用放入线程中,避免导致进程的阻塞;
当采集指环2扫描条码后,采集指环2便可以通过已建立的传输通道将数据发送到智能平板设备1,再由智能平板设备1的输入流对象读取数据。
采集指环2所发送的数据不是单个的条码数据,其中包含了数据的帧头,帧尾,校验位,条码长度,数据域等信息,格式如表1所示:
表1
其中,帧头为16进制0x55,帧尾为16进制0xAA,接收方需根据此格式,对数据进行解析,获取其中的数据域,即条码信息;
同接收相对,智能平板设备1同时也可以通过向输出流写入数据的方式向指环发送指令数据。
通过BluetoothSocket的getOutputStream即可获取输出流的对象,调用其中的write方法即可向指环端发送数据,指令数据格式同输入流,支持的命令与内容如下:
0x00:获取版本号,按协议发送0X00命令字,指环回复指环软件版本号
0x02:扫描数据发送。数据域:条码值
0x03:扫描数据发送应答。
0x04低电量查询:按协议发送0x04命令字,指环回复指环电量状态。
0x0A声音开关:按协议发送0x0A命令字,指环打开/关闭声音提示功能。
0x0C振动开关:按协议发送0x0C命令字,指环打开/关闭振动提示功能。
0x10S/N号读取:按协议发送0x10命令字,指环回复指环生产设备号。
0x18删除存储文件:按协议发送0x18命令字,指环删除存储中的文件。
根据以上提供的指令,智能平板设备1在处理数据出现异常或需要特别提醒时,可通过发送该类命令,使指环产生对应的响应形式,达到提醒使用人的目的。
如对于扫描异常数据,或平板数据保存失败时,智能平板设备1可向采集指环2发送振动指令,并追加振动次数,使操作人员在采集指环2的长振周期内能够有足够的时间感受到采集指环2振动,由此判断采集数据有误。
除采集指环2反馈,智能平板设备1也可增加语音提示功能,将采集过程中的错误信息进行细化。
语音提示软件可通过TTS文本转语音技术,将用于提示的文本信息转换成语音,播报给操作人员;在多人操作时,为定位到具体的人员,语音播报中可加入子屏的编号作为前缀,方便操作人员根据编号判断是否为本人采集的数据引起问题。
对于需要直接查看智能平板设备1提示信息的,可在各子屏中加入信息提示区域,该方法相较于常用的对话框提示,因提示信息在所属子屏内,操作人员可直观判断是否为本人数据采集引起的问题;对话框提示时将覆盖整个界面,影响他人查看本人操作数据;前端只能同时显示一个对话框,影响操作人员判断具体的操作人。
所述智能平板设备1设有8个蓝牙通道,除固定的3-4个蓝牙通道用于采集指环2连接外,剩余的蓝牙通道用于连接蓝牙设备3。
本实用新型对多个采集指环2同时请求匹配时,仅响应其中一个的请求,在完成请求与连接之间不再对其他请求作处理,因此,多采集指环2接入应逐个进行,不能够同时匹配请求;而对于每个请求都相应分配单独的读写线程,各个线程间相互独立互不干扰。
作为安卓可视界面的唯一组件,本实用新型UI设计基于安卓组件Activity开发,由Activity组件加载用于显示的主布局文件;对于分屏的处理,本实用新型采用安卓SDK中提供的Fragment类作为子界面的承载容器,嵌套于主布局文件中,以主界面的一部分显示于Activity中,不同于Activity的是,Fragment不支持对广播的注册,所以对指环接入广播的注册动作,将在Activity中完成,同样,对采集指环2绑定区域的选择功能也将在Activity界面中完成。
在安卓系统中,作为前端显示的Activity同时仅能够显示一个,退出时,该Activity内的所有显示内容都将销毁,所以当指环进行多人操作时,为避免其中一人在切换业务时,因退出当前主界面,而影响到其他指环的操作,本实用新型方案提出在单个子界面加入业务切换功能。即在不退出当前主界面Activity时,可以通过子屏中的切换功能,自由变更子屏中的操作业务,使多人使用更为灵活,相当于将单平板设备分割成多个移动终端。
具体可通过变更子屏中的Fragment来实现。由于Fragment可以加载不同的视图文件,所以可以定义不同类型的Fragment绑定不同的业务视图,在进行业务切换的时候,仅需要将当前业务的Fragment用其他业务的Fragment替换即可。由于切换Fragment时,被替换的Fragment会销毁所有资源,为提升用户体验,避免绑定指环的读取线程也被一同销毁,此处应将读取线程用其他方式保存,并转移至新的业务功能内。
本实用新型使用频率几乎完全集中于采集指环2上,操作人员的数据采集大多处于盲扫中,很少会去查看智能平板设备1或在智能平板设备1上进行操作,因此在实际使用过程中,操作人存在距离智能平板设备1较远的可能性,不能够直接对智能平板设备1触屏操作,而对于必须在智能平板设备1上进行的操作,本实用新型建议尽量使用指环扫描条码的方式代替,如可以自定义针对智能平板设备1的指令条码,使指环扫描到该类条码后,智能平板设备1可以直接判断为指令条码,作出对应的动作,例如业务中存在条码类型相同的”上一站”,”下一站”,在扫描站点条码时无法判断对应到哪个具体信息时,可针对2个站点信息打印出2个不同的切换条码,扫描其中一个后即表示后续扫描的站点将对应到哪个站点信息中;而对业务中不同种类的采集信息,应根据条码类型,由软件判断自动保存到对应的数据信息中;多采集指环2操作时,应摈弃常用的根据焦点位置显示扫描数据的方法,由于系统中仅有一个焦点,采用焦点录入的方式将影响其他扫描操作的判断。
本实用新型的智能平板设备1最多可连接8台蓝牙终端,除固定的3-4个通道用于指环连接,剩余的蓝牙连接数可用于连接其他设备,如物联网行业中常用的蓝牙打印机4和蓝牙电子秤5等,可根据实际需求加入对此类设备的连接支持,丰富智能平板设备1功能,提高资源利用率。
所述蓝牙设备3连接的方式仍然可以通过指环扫码进行,但与采集指环2的处理不同,蓝牙设备3的MAC地址条码不需按采集指环2匹配条码的格式进行打印,只需将完整的MAC地址打印成条码即可,指环扫描后将地址发送到智能平板设备1,由智能平板设备1接收后处理。
智能平板设备1对蓝牙设备3的连接方式以智能平板设备1主动请求为主;智能平板设备1可根据接收到的外设地址生成BluetoothDevice对象,生成的方法为调用BluetoothAdapter的getRemoteDevice方法,该方法参数为蓝牙MAC地址字符串,返回值为BluetoothDevice,之后可通过调用该对象的setPin方法设置Pin码,调用createBond方法创建匹配请求。
对于初次进行匹配的外设设备,在进行以上方法执行前,还需要执行一次createBond,并给予等待5秒的等待时间;这种做法的目的在于,初次进行匹配,智能平板设备1会在下拉列表中提示匹配请求,使用人员需手动点击该匹配请求后输入Pin码才能够进行匹配,预先执行createBond后等待5秒,并再次执行createBond方法后,便可以跳过手动操作的步骤,实现采集指环2扫码到蓝牙设备3连接中间无需其他额外的操作,提升用户体验。
本实用新型使用多蓝牙指环通过蓝牙无线技术连接同一台智能平板设备进行数据采集,其中,由一台平板同时处理多指环传送的数据,在采集过程中使用廉价的采集指环代替手持移动终端,将节省大量设备成本。
本实用新型的采集指环与智能平板设备交互反馈,其中,采集指环相对移动传统的手持终端设备,仅保留了扫描功能,及部分反馈提示功能,如振动,扫描发生,指示灯等,缩减了扫描设备的体积与重量,方便操作人员在使用过程中解放双手,对于搬运货物,长时间操作都能够减少手部负担。
本实用新型的采集指环与智能平板设备的扫码连接,其中,采集指环与智能平板设备连接过程将由智能平板设备搜索主动连接变更为指环扫描智能平板设备蓝牙MAC地址进行连接,有益效果为避免了时间较长的搜索与匹配过程,也防止了连接错误设备的问题发生。
本实用新型支持多蓝牙设备接入使用,其中,由于智能平板设备可同时接入多台蓝牙设备,在进行基本的数据采集过程中,可以配合其他蓝牙设备提供更为丰富的业务功能,也提高了平板设备的利用率。