开多个门

方法名称:SendSienOpenDoors(int address, int[] lockNums)

参数: address 锁控板地址 , lockNums  位置

说明:发出指令让多个门打开,配合下面的方法一起使用,可以获得开门结果




方法名称:public boolean sendOpenDoorsCommand(SendSienOpenDoors command, Callback<RecvSienCheckDoors> callback)

参数:  command 里面有打开门的地址,用于检测是否打开    ,  callback  回调函数

说明:检测是否打开。

使用实例:

/**

* 批量打开1个柜的门
*/
fun batchOpenDoor(cabinetAddress:Int, cellAddressList:List<Int>, success: (result: Map<Int, Boolean>) -> Unit, fail:(error:String) ->Unit){
if(cellAddressList.size > 10) {
fail("请勿同时打开10个柜门以上!")
}
val command = SendSienOpenDoors(cabinetAddress, cellAddressList.toIntArray())
val ok = SienDoorManager.get().sendOpenDoorsCommand(command,object :Callback<RecvSienCheckDoors>{
override fun onSuccess(recvCommand: RecvSienCheckDoors?) {
val resultMap: Map<Int, Boolean> = recvCommand!!.getResultMap(AppConstants.getCellNumByCabinetAddress(recvCommand.address))
for(cellAddress: Int in cellAddressList) {
if(resultMap[cellAddress] != true) {
fail(AppConstants.convertCabinetAddressToName(cabinetAddress) + " " + cellAddress + "号打开失败")
return
}
}
success(resultMap)
}

override fun onFailure(tr: Throwable) {
val message = if(tr.message == null) {
"打开失败"
} else {
tr.message!!
}
fail(message)
}

})
if(!ok){
fail("硬件初始化错误")
}

}