4.8 报警信息
概述
Alarm 模块提供机器人报警信息的读取、复位和查询功能,用于监控和处理机器人运行时可能出现的异常情况。
核心功能
- 支持报警复位
- 支持获取所有活动报警
- 支持获取最高优先级报警
使用场景
- 监控机器人运行状态,及时发现异常
- 处理机器人运行过程中的错误和报警
- 记录和分析机器人报警历史
- 实现自动化报警处理流程
- 集成到机器人监控系统中
4.8.1 获取最高优先级报警
| 方法名 | Alarm.GetTopAlarm() |
|---|---|
| 描述 | 获取当前最高优先级的报警 |
| 请求参数 | 无参数 |
| 返回值 | string: 报警信息字符串 StatusCode: 函数执行结果 |
| 兼容的机器人软件版本 | 协作 (Copper): v7.5.0.0+ 工业 (Bronze): v7.5.0.0+ |
示例代码
cs
using Agilebot.IR;
using Agilebot.IR.Types;
public class GetTopAlarm
{
public static StatusCode Run(string controllerIP, bool useLocalProxy = true)
{
// [ZH] 初始化捷勃特机器人
// [EN] Initialize the Agilebot robot
Arm controller = new Arm(controllerIP, useLocalProxy);
// [ZH] 连接捷勃特机器人
// [EN] Connect to the Agilebot robot
StatusCode code = controller.ConnectSync();
Console.WriteLine(code != StatusCode.OK ? code.GetDescription() : "连接成功/Successfully connected.");
if (code != StatusCode.OK)
{
return code;
}
try
{
// [ZH] 获取最严重的一条报警
// [EN] Get the most severe alarm
string topError;
(topError, code) = controller.Alarm.GetTopAlarm();
if (code == StatusCode.OK)
{
Console.WriteLine("获取最严重报警成功/Get Top Alarm Success");
if (string.IsNullOrEmpty(topError))
{
Console.WriteLine("当前无报警/No current alarms");
}
else
{
Console.WriteLine($"最严重报警/Most Severe Alarm: {topError}");
}
}
else
{
Console.WriteLine($"获取最严重报警失败/Get Top Alarm Failed: {code.GetDescription()}");
}
}
catch (Exception ex)
{
Console.WriteLine($"执行过程中发生异常/Exception occurred during execution: {ex.Message}");
code = StatusCode.OtherReason;
}
finally
{
// [ZH] 关闭连接
// [EN] Close the connection
StatusCode disconnectCode = controller.Disconnect();
if (disconnectCode != StatusCode.OK)
{
Console.WriteLine(disconnectCode.GetDescription());
if (code == StatusCode.OK)
code = disconnectCode;
}
}
return code;
}
}4.8.2 获取所有活动报警
| 方法名 | Alarm.GetAllActiveAlarms() |
|---|---|
| 描述 | 获取所有当前活动的报警 |
| 请求参数 | 无参数 |
| 返回值 | List<string>: 活动报警条目列表 StatusCode: 函数执行结果 |
| 兼容的机器人软件版本 | 协作 (Copper): v7.5.0.0+ 工业 (Bronze): v7.5.0.0+ |
示例代码
cs
using Agilebot.IR;
using Agilebot.IR.Types;
public class GetAllActiveAlarms
{
public static StatusCode Run(string controllerIP, bool useLocalProxy = true)
{
// [ZH] 初始化捷勃特机器人
// [EN] Initialize the Agilebot robot
Arm controller = new Arm(controllerIP, useLocalProxy);
// [ZH] 连接捷勃特机器人
// [EN] Connect to the Agilebot robot
StatusCode code = controller.ConnectSync();
Console.WriteLine(code != StatusCode.OK ? code.GetDescription() : "连接成功/Successfully connected.");
if (code != StatusCode.OK)
{
return code;
}
try
{
// [ZH] 获取所有的活动的报警
// [EN] Get all active alarms
List<string> errors;
(errors, code) = controller.Alarm.GetAllActiveAlarms();
if (code == StatusCode.OK)
{
Console.WriteLine("获取所有活动报警成功/Get All Active Alarm Success");
Console.WriteLine($"活动报警数量/Active Alarm Count: {errors.Count}");
if (errors.Count == 0)
{
Console.WriteLine("当前无活动报警/No active alarms");
}
else
{
Console.WriteLine("活动报警列表/Active Alarm List:");
for (int i = 0; i < errors.Count; i++)
{
Console.WriteLine($" {i + 1}. {errors[i]}");
}
}
}
else
{
Console.WriteLine($"获取所有活动报警失败/Get All Active Alarm Failed: {code.GetDescription()}");
}
}
catch (Exception ex)
{
Console.WriteLine($"执行过程中发生异常/Exception occurred during execution: {ex.Message}");
code = StatusCode.OtherReason;
}
finally
{
// [ZH] 关闭连接
// [EN] Close the connection
StatusCode disconnectCode = controller.Disconnect();
if (disconnectCode != StatusCode.OK)
{
Console.WriteLine(disconnectCode.GetDescription());
if (code == StatusCode.OK)
code = disconnectCode;
}
}
return code;
}
}4.8.3 复位报警
| 方法名 | Alarm.ResetAlarms() |
|---|---|
| 描述 | 复位当前错误 / 报警 |
| 请求参数 | 无参数 |
| 返回值 | StatusCode: 函数执行结果 |
| 兼容的机器人软件版本 | 协作 (Copper): v7.5.0.0+ 工业 (Bronze): v7.5.0.0+ |