无人机告警信息使用教程
1. 概述
当无人机检查到异常情况时,无论是硬件异常还是软件异常,都会以告警的形式上报给MSDK,通过告警我们能及时知道当前无人机的状态,以便做出相应处理措施。
无人机告警通知分为告警通知和实时告警通知。
2. 无人机告警使用说明
2.1 无人机告警和实时告警上报
无人机告警是定频上报事件,意味着会一直收到告警列表,上报列表为空则告警解除;
val keyDroneWarning: AutelKey<List<WarningAtom>> =
KeyTools.createKey(CommonKey.KeyDroneWarning)
无人机实时告警是变化时上报,出现告警只会上报一次;
val keyDroneRuntimeWarning: AutelKey<List<WarningAtom>> = KeyTools.createKey(CommonKey.KeyDroneRuntimeWarning)
2.2 无人机告警监听
示例代码一
//监听告警上报
val key: AutelKey<List<WarningAtom>> = KeyTools.createKey(CommonKey.KeyDroneWarning)
val CallBack = object : CommonCallbacks.KeyListener<List<WarningAtom>> {
override fun onValueChange(oldValue: List<WarningAtom>?, newValue: List<WarningAtom>) {
//Process
}
}
DeviceManager.getDeviceManager().getFirstDroneDevice()?.getKeyManager()?.listen(key, CallBack)
//取消告警监听
DeviceManager.getDeviceManager().getFirstDroneDevice()?.getKeyManager()?.cancelListen(key, CallBack)
示例代码二
//监听实时告警上报
val key: AutelKey<List<WarningAtom>> = KeyTools.createKey(CommonKey.KeyDroneRuntimeWarning)
val CallBack = object : CommonCallbacks.KeyListener<List<WarningAtom>> {
override fun onValueChange(oldValue: List<WarningAtom>?, newValue: List<WarningAtom>) {
//Process
}
}
DeviceManager.getDeviceManager().getFirstDroneDevice()?.getKeyManager()?.listen(key, CallBack)
//取消实时告警监听
DeviceManager.getDeviceManager().getFirstDroneDevice()?.getKeyManager()?.cancelListen(key, CallBack)
2.3 告警参数说明
目前我们只关注WaringIdEnum, 告警枚举更详细解释参阅开API Reference。
data class WarningAtom(
/**
* 组件类型
*/
var componentType: DroneComponentEnum = DroneComponentEnum.UNKNOWN,
/**
* 组件ID
*/
var componentId: DroneComponentIdEnum = DroneComponentIdEnum.NONE,
/**
* 告警ID
*/
var warningId: WaringIdEnum = WaringIdEnum.UNKNOWN,
)