Skip to main content

无人机告警信息使用教程



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,
)