说明:发出指令让多个门打开,配合下面的方法一起使用,可以获得开门结果
说明:检测是否打开。
使用实例:
/**
*/
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("硬件初始化错误")
}
}