API Reference

BindingInfoMessage

抽象绑定/资产信息

FieldAPI Name(Java/JSON)Type约束规则Description
enabledenabledbooloptional
绑定状态
device_iddevice_idstringoptional
设备唯一 ID
asset_idasset_idstringoptional
资产Id(业务层编号)
ipipstringoptional
IP 地址
portportstringoptional
端口
accountaccountstringoptional
账号
passwordpasswordstringoptional
密码
update_timeupdate_timeint64optional
更新时间
Nested Enums defined inBindingInfo

ChannelConfigMessage

ChannelConfig 用于定义通道级别的配置项

FieldAPI Name(Java/JSON)Type约束规则Description
electrical_alarm_profile_enabledelectrical_alarm_profile_enabledbooloptional
使能电气报警功能
electrical_alarm_profileelectrical_alarm_profilecom.nexus.service.proto.config.ElectricalAlarmProfileoptional
核心:电气报警值配置
electrical_rated_config_enabledelectrical_rated_config_enabledbooloptional
电气额定值使能
electrical_rated_configelectrical_rated_configcom.nexus.service.proto.config.ElectricalRatedConfigoptional
电气额定值配置
power_on_state_enabledpower_on_state_enabledbooloptional
使能上电状态配置(是否应用该默认状态)
power_on_statepower_on_statecom.nexus.service.proto.enums.PowerOnStateoptional
上电后端口的默认状态
network_alarm_strategy_enablednetwork_alarm_strategy_enabledbooloptional
通道网络报警使能
network_alarm_strategynetwork_alarm_strategycom.nexus.service.proto.config.NetworkAlarmStrategyoptional
通道网络报警策略
Nested Enums defined inChannelConfig

DigitalPortConfigMessage

开关量端口特有配置

FieldAPI Name(Java/JSON)Type约束规则Description
work_modework_modeDigitalWorkModeoptional
工作模式:电平模式 或 脉冲模式
logic_invertedlogic_invertedDigitalPortConfig.LogicPolarityoptional
触点逻辑极性配置 (针对 DI/DO): 【关键状态映射说明】为了统一上层业务层的状态感知(0-没有/正常,1-有/报警/开), 边缘网关/驱动层必须根据此配置对底层物理电平进行转换,再转换结果写入到 DeviceChannel.switch_state 中。 1. 对于 DI (数字输入 - 如传感器): - logic_inverted = 1 (正逻辑,默认值,适用于常开型 NO 传感器): 底层物理电平断开(0) -> 映射为业务状态 switch_state = 0 (低电平) 底层物理电平闭合(1) -> 映射为业务状态 switch_state = 1 (高电平) - logic_inverted = 2 (反逻辑/取反,适用于常闭型 NC 传感器,如门磁、急停按钮): 底层物理电平断开(0) -> 映射为业务状态 switch_state = 1 (低电平) 底层物理电平闭合(1) -> 映射为业务状态 switch_state = 0 (高电平) 2. 对于 DO (数字输出 - 如继电器控制): - logic_inverted = 1 (正逻辑): 业务下发 switch_state=1 -> 硬件输出高电平/吸合 - logic_inverted = 2 (反逻辑): 业务下发 switch_state=1 -> 硬件输出低电平/断开
initial_stateinitial_statecom.nexus.service.proto.enums.BinaryStatusoptional
【电平模式特有】上电初始状态:设备掉电重启后,DO 默认是开还是关
debounce_time_msdebounce_time_msint32optional
【DI 特有】防抖时间 (单位:毫秒)
pulse_duration_mspulse_duration_msint32optional
【脉冲模式特有】时长 (单位:毫秒) 仅当 work_mode == WORK_MODE_PULSE 时生效
Nested Enums defined inDigitalPortConfig

NetworkPortInfoMessage

网络端口 特有状态与配置

FieldAPI Name(Java/JSON)Type约束规则Description
admin_enableadmin_enablebooloptional
端口基础配置 (可读写) 端口管理状态 (是否在软件层面启用该端口)
auto_negotiation_enableauto_negotiation_enablebooloptional
数据通信配置与状态 [配置] 是否开启速率和双工的自动协商 (通常为 true)
target_speedtarget_speedPortSpeedoptional
[配置] 目标速率 (当 auto_negotiation_enable=false 时生效)
target_duplextarget_duplexPortDuplexoptional
[配置] 目标双工模式 (当 auto_negotiation_enable=false 时生效)
link_statuslink_statuscom.nexus.service.proto.enums.BinaryStatusoptional
[状态] 实际链路状态 (网线是否插上且连通)
blocking_statusblocking_statuscom.nexus.service.proto.enums.BinaryStatusoptional
[状态] 端口阻塞状态 (通常指由 STP 生成树协议或环路保护机制触发的逻辑阻断, 此时端口虽然物理 Link Up,但无法转发业务数据帧,用于防止网络环路)
negotiated_speednegotiated_speedPortSpeedoptional
[状态] 实际协商后的工作速率
negotiated_duplexnegotiated_duplexPortDuplexoptional
[状态] 实际协商后的双工模式
poe_statuspoe_statusPoePowerStatusoptional
POE 运行状态与遥测数据 (只读) [状态] POE 端口当前的工作状态
negotiated_classnegotiated_classPoeClassoptional
[状态] 与受电设备(PD)握手协商后的供电等级
crc_errorscrc_errorsuint64optional
[状态] CRC 校验错误累计,数值升高通常代表网线质量差、接触不良或环境干扰。 场景:排查“网络卡顿、丢包、摄像头画面花屏”的首要指标。如果该值不断增长,说明物理链路存在隐患(如网线太长、水晶头老化或强电干扰)。 交换芯片内部有一个专门的计数器(Counter Register),每检测到一个错误帧,该寄存器加 1。
input_packetsinput_packetsuint64optional
[状态] 端口累计接收报文数,用于判断受电设备是否正在正常发送业务数据。 场景:用于“判断设备死机/假死”。即使 POE 供电正常、链路 Link Up,如果该计数器长时间不增长,说明受电设备(如 IP 电话或相机)系统可能卡死,无法发送业务数据,此时可触发 POE 远程重启。
Nested Enums defined inNetworkPortInfo

LogicPolarityEnum

触点逻辑极性配置

NameValueDescription
LOGIC_POLARITY_UNSPECIFIED0未指定
LOGIC_POLARITY_NORMAL1正极性/正逻辑 (不取反)
LOGIC_POLARITY_INVERTED2反极性/反逻辑 (取反)

ChannelActionUnitMessage

原子动作单元

FieldAPI Name(Java/JSON)Type约束规则Description
modulemoduleModuleLocatoroptional
--- 定位 (Where) --- 公用结构:定位到具体的板载模块
Nested Enums defined inChannelActionUnit

ChannelDataSelectorMessage

通道获取模式

FieldAPI Name(Java/JSON)Type约束规则Description
query_all_channelsquery_all_channelsbooloptional
场景 A: 简单粗暴,查所有模块所有通道
modulemoduleModuleLocatorrepeated
场景 B: 精确指定查询目标
resources_typeresources_typeResourceTyperepeated
查什么 (可多选:例如同时查 SETTINGS 和 BINDING)
property_keysproperty_keysstringrepeated
(可选) 更细粒度的属性过滤 如果只需要查 Settings 中的某几个特定字段,可以用 keys 过滤。为空代表查全部属性。
Nested Enums defined inChannelDataSelector

ChannelMaskMessage

通道掩码:用于确定模块内的具体通道

FieldAPI Name(Java/JSON)Type约束规则Description
indexindexint32repeated
通道索引列表 仅当 TARGET_TYPE_CHANNEL_INDEX = "index" 时,此字段才生效。
switch_stateswitch_statecom.nexus.service.proto.enums.SwitchStateoptional
--- 动作内容 --- 开/关/重启-控制
Nested Enums defined inChannelMask

ModuleLocatorMessage

模块定位器:用于唯一确定一个模块

FieldAPI Name(Java/JSON)Type约束规则Description
typedeprecatedtypeInterfaceTypeoptional
[已废弃] 模块类型 ,已废弃,由客户端自己区分辨是什么类型的模块
serial_numberserial_numberstringoptional
关键标识 如果是 ONBOARD:通常只有一个,或者用索引/SlotID 区分 (e.g., "0", "1") 如果是 DOWNSTREAM:必须提供 serial_number
control_target_typecontrol_target_typeControlTargetTypeoptional
控制目标的类型 当 control_target_type 为 TARGET_TYPE_CHANNEL_ALL 时, 系统将根据 channelSwitchState 字段定义的开关状态,对该模块下的所有通道进行统一操作。
channelSwitchStatechannelSwitchStatecom.nexus.service.proto.enums.SwitchStateoptional
通道开关状态 注意:仅当 control_target_type 为 TARGET_TYPE_CHANNEL_ALL 时,此字段才生效并执行对应的开关逻辑。
channelschannelsChannelMaskrepeated
针对该模块下属通道的控制指令列表
Nested Enums defined inModuleLocator

ResourceTypeEnum

定义物模型中的资源查询维度 (支持多选 / Bitmask)

NameValueDescription
RESOURCE_UNKNOWN0
RESOURCE_ALL1
RESOURCE_INFO2--- 静态与只读资源 (极低频查询) --- 设备身份与版本 (Identity & Version): SN, MAC, 固件版本等
RESOURCE_CAPABILITY3能力与规格 (Specs & Capacity): 额定功率、量程、通道数、支持的电压域等
RESOURCE_SETTINGS11--- 配置与关联资源 (低频查询/变更时查询) --- 用户配置参数 (Settings/Config): 业务下发的配置、默认上电状态、阈值设置等
RESOURCE_BINDING12业务绑定关系 (Binding): 通道与空间、资产、外部逻辑的绑定关系 (binding_info)
RESOURCE_TOPOLOGY13物理/电气拓扑 (Topology): 主从模块级联关系、通道属于哪个 power_input_id 等
RESOURCE_STATE21--- 动态与运行态资源 (中高频查询) --- 离散运行状态 (State): 在线/离线、开关机(On/Off)、Link Up/Down、物理报警状态
RESOURCE_TELEMETRY22连续遥测数据 (Telemetry/Metrics): 实时电压/电流/功率 (measure), 实时温度等
RESOURCE_NETWORK81--- 领域扩展 (可选) --- 网络与通信属性 (Network/PoE): 专查速率、MAC、PoE协商等级 (poe_info, network_status)

ChannelCountModeEnum

通道数量获取模式 (定义如何确定模块的通道数)

NameValueDescription
CHANNEL_COUNT_UNKNOWN0未初始化/未配置
CHANNEL_COUNT_AUTO1自动获取:系统根据硬件或逻辑自动探测通道数量
CHANNEL_COUNT_CUSTOM2手动/自定义:手动指定或通过自定义参数设置通道数量

ChannelTypeEnum

通道业务类型 (标识该物理端口在【当前现场接线场景】下的【业务用途】) 作用:决定前端 UI 的渲染图标、业务逻辑的告警策略、以及支持的控制指令。 注意区分与 ElectricalSpec 的关系:ElectricalSpec 决定了通道"能不能做",ChannelType 决定了通道"现在正在做什么"。

NameValueDescription
CHANNEL_TYPE_UNSPECIFIED0
CHANNEL_TYPE_POWER_DC1直流供电通道
CHANNEL_TYPE_POWER_AC2交流供电通道
CHANNEL_TYPE_POE3POE/网络供电通道 (数据+供电)
CHANNEL_TYPE_DIGITAL_INPUT4--- 基础信号控制类 (数字/开关量) --- 开关量输入 (DI - 只读,如烟感、门磁、按钮)
CHANNEL_TYPE_DIGITAL_OUTPUT5开关量输出 (DO - 可控,如继电器触发、开锁、警报器)
CHANNEL_TYPE_ETHERNET6--- 通讯/网络类 --- 普通以太网通道 (纯数据,如LAN/WAN口)
CHANNEL_TYPE_POWER_UNIVERSAL7交直流通用/自适应供电通道 业务场景:该通道未绑定固定用途,且由于硬件支持直通路由(is_input_adaptive=true), 其输出的 AC/DC 属性完全取决于它关联的 power_input_id 输入源当前的状态。
CHANNEL_TYPE_ANALOG_INPUT10--- 工业模拟量类 --- 模拟量输入 (AI - 如4-20mA, 0-10V)
CHANNEL_TYPE_ANALOG_OUTPUT11模拟量输出 (AO - 控制变频/比例阀)
CHANNEL_TYPE_MODBUS21--- 专用总线类 --- M-Bus 接口 (常用于水气热表)

ChannelTypeOldEnum

通道业务类型 (标识该物理端口的用途)

NameValueDescription
CHANNEL_TYPE_OLD_UNSPECIFIED0
CHANNEL_TYPE_OLD_POWER_AC1交流供电通道
CHANNEL_TYPE_OLD_POWER_DC2直流供电通道
CHANNEL_TYPE_OLD_POE3POE/网络供电通道 (数据+供电)
CHANNEL_TYPE_OLD_DIGITAL_INPUT4--- 基础信号控制类 (数字/开关量) --- 开关量输入 (DI - 只读,如烟感、门磁、按钮)
CHANNEL_TYPE_OLD_DIGITAL_OUTPUT5开关量输出 (DO - 可控,如继电器触发、开锁、警报器)
CHANNEL_TYPE_OLD_ETHERNET6--- 通讯/网络类 --- 普通以太网通道 (纯数据,如LAN/WAN口)
CHANNEL_TYPE_OLD_ANALOG_INPUT10--- 工业模拟量类 --- 模拟量输入 (AI - 如4-20mA, 0-10V)
CHANNEL_TYPE_OLD_ANALOG_OUTPUT11模拟量输出 (AO - 控制变频/比例阀)
CHANNEL_TYPE_OLD_MODBUS21--- 专用总线类 --- M-Bus 接口 (常用于水气热表)

ControlTargetTypeEnum

目标类型枚举

NameValueDescription
TARGET_TYPE_UNSPECIFIED0Protobuf 规范推荐:枚举的第一个(0)通常设为 UNSPECIFIED(未指定/默认值) 这可以防止在未赋值的情况下意外触发某个真实的业务逻辑
TARGET_TYPE_CHANNEL_INDEX1按指定的索引列表控制部分通道
TARGET_TYPE_CHANNEL_ALL2全选,控制该模块下的所有通道
TARGET_TYPE_module3控制模块本身,如上电/下电/重启等

DeviceModuleTypeEnum

模块类型 (标识该模块/插槽的【宏观资产类别】与【主打功能】) 作用:用于设备采购、机框插槽匹配(Slot match)、宏观资产盘点。 即使一个模块是混合模块,这里也只反映其产品定义的定性分类。

NameValueDescription
DEVICE_MODULE_TYPE_UNSPECIFIED0Protobuf 规范要求枚举必须从 0 开始
DEVICE_MODULE_TYPE_DC1直流
DEVICE_MODULE_TYPE_AC2交流
DEVICE_MODULE_TYPE_NETWORK3网络
DEVICE_MODULE_TYPE_IO4I/O
DEVICE_MODULE_TYPE_HYBRID_POWER5交直流混合/通用供电模块

DigitalWorkModeEnum

开关量工作模式

NameValueDescription
WORK_MODE_LEVEL0电平模式:下发指令后状态保持,直到下次指令(常开/常闭由指令控制)
WORK_MODE_PULSE1脉冲/点动模式:触发后吸合一段时间自动断开

InterfaceTypeEnum

物理接口/接入类型

NameValueDescription
INTERFACE_TYPE_INTERNAL0内部板载 (主板集成)
INTERFACE_TYPE_BUS_MODBUS1总线扩展 (如 RS485 Modbus 下挂)
INTERFACE_TYPE_SERIAL_DIRECT2串口直连端子 (Point-to-Point Terminal)
INTERFACE_TYPE_CAN3CAN总线
INTERFACE_TYPE_ETHERNET4通过以太网/局域网连接的下挂设备 (如走 TCP/IP 协议的模块)

PoeClassEnum

POE 供电标准等级 (基于 802.3af/at/bt)

NameValueDescription
POE_CLASS_UNKNOWN0
POE_CLASS_0_15W1802.3af (默认, 最大15.4W)
POE_CLASS_1_4W2802.3af (极低功率, 最大4.0W)
POE_CLASS_2_7W3802.3af (低功率, 最大7.0W)
POE_CLASS_3_15W4802.3af (中功率, 最大15.4W)
POE_CLASS_4_30W5802.3at (Type 2, 最大30W)
POE_CLASS_5_45W6802.3bt (Type 3, 最大45W)
POE_CLASS_6_60W7802.3bt (Type 3, 最大60W)
POE_CLASS_7_75W8802.3bt (Type 4, 最大75W)
POE_CLASS_8_90W9802.3bt (Type 4, 最大90W)

PoePowerStatusEnum

POE 端口供电运行状态

NameValueDescription
POE_STATUS_DISABLED0供电被管理员关闭
POE_STATUS_DELIVERING1正在正常供电
POE_STATUS_SEARCHING2正在检测 PD (受电设备)
POE_STATUS_FAULT3供电故障 (如短路、过载、温度过高等)
POE_STATUS_DENIED4拒绝供电 (通常因为交换机总功率不足)

PoePriorityEnum

供电优先级(当总功率不足时,优先关断低优先级端口)

NameValueDescription
PRIORITY_LOW0低优先级 (默认)
PRIORITY_HIGH1高优先级
PRIORITY_CRITICAL2关键优先级 (最后被关断)

PortDuplexEnum

端口双工模式

NameValueDescription
DUPLEX_UNKNOWN0
DUPLEX_HALF1半双工
DUPLEX_FULL2全双工

PortSpeedEnum

网络接口速率

NameValueDescription
SPEED_AUTO0自动协商速率
SPEED_10M1
SPEED_100M2
SPEED_1G31000M
SPEED_2_5G42.5G (现代 WiFi-6 AP 常用速率)
SPEED_5G55G
SPEED_10G610000M

DeviceChannelMessage

定义物理通道

FieldAPI Name(Java/JSON)Type约束规则Description
channel_indexchannel_indexint32optional
通道的索引
switch_stateswitch_statecom.nexus.service.proto.enums.SwitchStateoptional
开关状态
specspeccom.nexus.service.proto.device.ElectricalSpecoptional
--- 电气规格 --- 描述该通道是 12V 还是 220V,额定电流是多少
measuremeasurecom.nexus.service.proto.device.ElectricalMeasureoptional
实时电气数据
configconfigChannelConfigoptional
--- 端口级别的常量配置 --- 通道级别的常量配置
binding_infobinding_infoBindingInfooptional
绑定信息相关
channel_type_olddeprecatedchannel_type_oldChannelTypeOldoptional
[已废弃] 通道的业务定义类型
channel_typechannel_typeChannelTypeoptional
通道的业务定义类型 修正了 channel_type 直流交流设计错误
power_input_idpower_input_idint32optional
【关键字段】供电源索引 / 电源域 (Power Domain) 场景A(直通路由): 如果本通道没有自己的整流/逆变器,它的 AC/DC 属性 完全取决于关联的 power_inputs[power_input_id] 的状态。
network_statenetwork_stateNetworkPortStateoptional
扩展部分 【关键】通道绑定的下游网络设备状态 (Telemetry) 边缘网关通过 ActiveMonitorConfig 探测到的结果,自动映射汇总到此处
digital_configdigital_configDigitalPortConfigoptional
开关量端口特有配置
network_port_infonetwork_port_infoNetworkPortInfooptional
如果此通道是网络类型,则填充此字段
Nested Enums defined inDeviceChannel

DeviceModuleMessage

定义一个“模块”或“通道组”

FieldAPI Name(Java/JSON)Type约束规则Description
serial_numberserial_numberstringoptional
--- 核心身份 --- 必须存在。 对于板载模块,固件层需硬编码或动态生成一个固定的 ID (如 "LOCAL_12V_MAIN")
model_codemodel_codestringoptional
硬件型号/产品代码 (如 "NEXUS-IO-8080"),用于区分功能集
interface_typeinterface_typeInterfaceTypeoptional
明确接入方式:是主板自带,还是总线扩展,还是串口直连端子
channel_count_modechannel_count_modeChannelCountModeoptional
通道数量获取模式
channel_countchannel_countint32optional
模块的通道数量
firmware_versionfirmware_versionstringoptional
--- 版本信息 (OTA必备) --- 固件版本 (如 "v1.2.0")
hardware_versionhardware_versionstringoptional
硬件版本 (如 "PCB_REV_A")
module_physical_statusmodule_physical_statuscom.nexus.service.proto.enums.SwitchStateoptional
模块级物理状态 (如:模块掉电、总线断开或总闸关断)
specspeccom.nexus.service.proto.device.ElectricalSpecoptional
模块工作电源规格 (Logic Power)
is_onlineis_onlinebooloptional
状态属性 模块在线/离线状态 (总线通讯状态)
temperaturetemperaturefloatoptional
模块内部温度 (关键健康指标)
channelschannelsDeviceChannelrepeated
该模块下的所有通道列表 只有当 control_scope == SCOPE_SINGLE 时,解析此列表 如果 control_scope == SCOPE_ALL,直接忽略此字段,从而避免传输N个ID
power_inputspower_inputscom.nexus.service.proto.device.PowerInputBankrepeated
--- 负载/强电输入电源 --- 支持多路不同电压输入
total_capacitytotal_capacitycom.nexus.service.proto.device.PowerCapacityoptional
--- 输出侧 (Output Side) --- 模块总负载能力 (输出侧:Throughput) 注意:这是设备本体的物理极限(铜排、散热),与接入电压无关。 如果接入 12V,最大功率受 max_total_current 限制 (P = 12 * I_max) 如果接入 36V,最大功率可能受 max_total_power (散热) 限制
total_load_measuretotal_load_measurecom.nexus.service.proto.device.ElectricalMeasureoptional
模块总负载实时统计(所有通道之和) 语义:这是所有 enabled channel 的实时功率/电流累加值 作用:用于和 power_inputs 的输入总和进行对比,计算 PUE 或损耗
device_module_typedevice_module_typeDeviceModuleTypeoptional
模块的业务定义类型
Nested Enums defined inDeviceModule

DeviceTopologyMessage

设备拓扑

FieldAPI Name(Java/JSON)Type约束规则Description
onboard_moduleonboard_moduleDeviceModulerepeated
描述所有“板载”的模块
downstream_moduledownstream_moduleDeviceModulerepeated
描述所有“下挂”的模块(通过总线等方式连接的外部模块)
Nested Enums defined inDeviceTopology

NetworkPortStateMessage

通道级别的网络设备实时状态

FieldAPI Name(Java/JSON)Type约束规则Description
device_onlinedevice_onlinebooloptional
[ 第一层:综合摘要 Summary ] 综合判定该通道下的设备是否在线 (需在边缘网关配置聚合策略,如:ANY_SUCCESS(只要一个通就算在线) 或 ALL_SUCCESS(必须全通))
reference_latency_msreference_latency_msint32optional
综合通信延迟参考值 (毫秒) - 可选:所有成功任务的平均值,或基础网络(Ping)的延迟
offline_alarmoffline_alarmbooloptional
综合设备告警标识 (用于前端快速标红展示)
health_scorehealth_scoreint32optional
综合健康度得分 (0-100),例如:Ping通但HTTP挂了得50分,全通100分。比单纯的布尔值更有灰度。
active_monitor_state_resultactive_monitor_state_resultcom.nexus.service.proto.device.TaskResultoptional
[ 第二层:监控任务详情 Details ] 该通道下关联的所有具体监控任务的实时执行结果
Nested Enums defined inNetworkPortState

ResponseBodyMessage

定义一个包含所有响应共性字段的 “状态” 消息。

FieldAPI Name(Java/JSON)Type约束规则Description
codecodecom.nexus.service.proto.enums.BinaryStatusoptional
响应状态码
messagemessagestringoptional
响应消息, 如 "认证成功" 或 "Token无效"
Nested Enums defined inResponseBody

CellularIdentityMessage

(只读)蜂窝通讯模组的基础信息

FieldAPI Name(Java/JSON)Type约束规则Description
imeiimeistringoptional
通信模组的唯一设备识别码GSN (IMEI)
imsiimsistringoptional
SIM 卡国际移动用户识别码 (IMSI)
iccidiccidstringoptional
SIM 卡唯一标识 (ICCID)
cgmrcgmrstringoptional
模块版本信息(通常对应 AT+CGMR)
gmrgmrstringoptional
模块固件版本信息(通常对应 AT+GMR)
Nested Enums defined inCellularIdentity

CellularModemStateMessage

(只读)微观层:蜂窝模组基带状态 (深度排障层面)

FieldAPI Name(Java/JSON)Type约束规则Description
sim_statussim_statuscom.nexus.service.proto.enums.SimStatusoptional
[作用] 物理 SIM 卡的当前读取状态 [场景] 排查因设备震动导致 SIM 卡松动(未插入)、接触不良、或被锁卡(需 PIN 码) 等硬件级故障。
reg_statusreg_statuscom.nexus.service.proto.enums.NetworkRegStatusoptional
--- 核心网络注册与制式状态 --- [作用] 当前网络注册状态(对应 AT+CEREG / AT+CGREG) [场景] 区分设备是在找网、已注册、还是被基站拒绝,或者是否处于漫游状态
reject_codereject_codeint32optional
[排障] 当 reg_status 为“被拒绝”时,底层的 CME/AS 拒绝码 (例如 15 代表无漫游权限)
reject_descriptionreject_descriptionstringoptional
[排障] 错误码的文本解析
network_typenetwork_typecom.nexus.service.proto.enums.ConnectivityTypeoptional
[作用] 当前驻留的网络制式 (Radio Access Technology) [场景] 确认设备是否回落到了 2G/3G,或者确认当前使用的是 NB-IoT 还是 Cat.1
plmnplmnstringoptional
--- 网络标识与 LBS 定位辅助 --- [作用] 运营商公共陆地移动网络号 (MCC+MNC,如 46000 代表中国移动)
cell_idcell_idstringoptional
[作用] 当前驻留的小区基站 ID (Cell ID) 和 跟踪区代码 (TAC / LAC) [场景] 当设备 GPS 搜星失败时,云端可以通过 Cell ID + TAC 调用基站定位接口,获取设备大致位置(基站 LBS 定位)
tactacint32optional
[排障/定位] 跟踪区代码 (TAC / LAC)
active_apnactive_apnstringoptional
[作用] 实际生效的 APN (接入点) [场景] 排查专网卡是否成功获取并应用了定向 APN
module_temperaturemodule_temperaturefloatoptional
--- 模组运行健康度 --- [作用] 模组当前温度 [场景] 户外高温暴晒或频繁高频次发包,可能导致模组过热死机重启。监控此项可排查硬件重启原因
Nested Enums defined inCellularModemState

CellularSignalQualityMessage

动态信号质量:用于周期性监控,独立上报

FieldAPI Name(Java/JSON)Type约束规则Description
carrier_namecarrier_namestringoptional
运营商名称 (这里更合适,因为漫游时会变)
rssirssiint32optional
信号强度总功率 (dBm)
rsrprsrpint32optional
参考信号接收功率 (dBm) - 核心强度指标
rsrqrsrqint32optional
参考信号接收质量 (dB) - 纯净度参考指标
sinrsinrint32optional
信号与干扰加噪声比 (dB) - 稳定性指标
signal_levelsignal_levelint32optional
换算后的信号格数 (0-5),方便 UI 显示
Nested Enums defined inCellularSignalQuality

DeviceInternalHealthMessage

设备本体健康状态 (Device Self-Health)

FieldAPI Name(Java/JSON)Type约束规则Description
fuse_supportedfuse_supportedbooloptional
--- 基础电气保护组件 --- [保险丝] (Fuse) 逻辑:supported 决定 UI 是否展示“保险丝状态”一行
fuse_statusfuse_statuscom.nexus.service.proto.enums.BinaryStatusoptional
实时状态: 正常 / 熔断 (FAULT)
voltage_transformer_supportedvoltage_transformer_supportedbooloptional
--- 计量核心组件 (互感器状态) --- [电压互感器] (PT - Potential Transformer)
voltage_transformer_statusvoltage_transformer_statuscom.nexus.service.proto.enums.BinaryStatusoptional
current_transformer_supportedcurrent_transformer_supportedbooloptional
[电流互感器] (CT - Current Transformer)
current_transformer_statuscurrent_transformer_statuscom.nexus.service.proto.enums.BinaryStatusoptional
leakage_transformer_supportedleakage_transformer_supportedbooloptional
[漏电流互感器] (Leakage CT)
leakage_transformer_statusleakage_transformer_statuscom.nexus.service.proto.enums.BinaryStatusoptional
line_temp_sensor_supportedline_temp_sensor_supportedbooloptional
[线温传感器] (Line Temp Sensor) - 内部传感器
line_temp_sensor_statusline_temp_sensor_statuscom.nexus.service.proto.enums.BinaryStatusoptional
comm_module_supportedcomm_module_supportedbooloptional
--- 核心功能模块 --- [通信模块] (Communication Module: 4G/WiFi/Eth 芯片)
comm_module_statuscomm_module_statuscom.nexus.service.proto.enums.ComponentStatusoptional
状态: 正常 / 模块无响应 / SIM卡未识别
comm_module_error_codecomm_module_error_codeint32optional
补充: 通信模块的具体错误码 (可选,用于深层诊断)
power_module_supportedpower_module_supportedbooloptional
[电源模块] (Power Module: 指设备内部的 AC-DC 或 DC-DC 供电单元)
power_module_statuspower_module_statuscom.nexus.service.proto.enums.ComponentStatusoptional
状态: 正常 / 过热 / 电压输出异常
power_module_temperaturepower_module_temperaturefloatoptional
补充: 电源模块实时温度 (如果支持)
positioning_module_supportedpositioning_module_supportedbooloptional
[定位模块] (Positioning/GPS Module)
positioning_module_statuspositioning_module_statuscom.nexus.service.proto.enums.ComponentStatusoptional
状态: 正常 / 天线未连接 / 模块无响应
Nested Enums defined inDeviceInternalHealth

McuSpecMessage

(只读)MCU 静态规格 (McuSpec)

FieldAPI Name(Java/JSON)Type约束规则Description
modelmodelstringoptional
芯片型号 (e.g., "GD32F425VGT6")
core_archcore_archstringoptional
内核架构 (e.g., "ARM Cortex-M4")
unique_idunique_idstringoptional
唯一芯片标识 (96-bit Unique Device ID) 通常显示为 hex 字符串,用于防止盗版或做设备指纹
max_clock_hzmax_clock_hzuint32optional
主频上限 (e.g., 200000000 -> 200MHz)
Nested Enums defined inMcuSpec

McuStateMessage

MCU 实时状态 (McuState) 描述:这颗芯片现在活得怎么样

FieldAPI Name(Java/JSON)Type约束规则Description
current_clock_hzcurrent_clock_hzuint32optional
=== 核心运行指标 === 当前系统主频 (Hz) - 某些设备会动态降频节能
supply_voltage_mvsupply_voltage_mvfloatoptional
核心供电电压 (mV) - 也可以叫 VDD GD32 内部通常有参考电压通道,可计算出 VDD
core_temperaturecore_temperaturefloatoptional
核心温度 (Celsius) - 利用片上内置温度传感器 排查高温导致的降频或重启
cpu_loadcpu_loadfloatoptional
CPU 负载(单位:%)
stack_min_free_bytesstack_min_free_bytesuint32optional
栈水位线 (Stack Watermark) - 可选 记录系统运行以来栈剩余的最小值,用于检测栈溢出风险
Nested Enums defined inMcuState

ResourceCapacityMessage

定义资源容量(动态)

FieldAPI Name(Java/JSON)Type约束规则Description
totaltotaluint64optional
--- 基础静态指标 --- 总容量
usableusableuint64optional
扣除系统预留后的实际可用量
useduseduint64optional
--- 实时动态指标 --- 当前已用量
freefreeuint64optional
当前剩余量
usage_percentusage_percentfloatoptional
当前使用百分比
peak_usedpeak_useduint64optional
--- 历史极值 (高水位线) --- 历史最大使用量 (High Watermark)
min_freemin_freeuint64optional
历史最小剩余量
peak_timestamppeak_timestampint64optional
峰值发生的时间戳
max_contiguous_freemax_contiguous_freeuint64optional
--- 内存质量/碎片化 (主要针对 RAM) --- 当前最大可分配的连续内存块 (对于防止 OOM 至关重要)
alloc_failuresalloc_failuresuint32optional
分配失败累计次数
wear_levelwear_levelfloatoptional
--- 存储健康 (主要针对 Storage/Flash) --- 磨损程度 0-100 (百分比),常用于 SSD/eMMC/Flash 寿命预警
bad_blocksbad_blocksuint32optional
坏块数量
unitunitcom.nexus.service.proto.enums.DataUnitoptional
--- 辅助元数据 ---
stats_sincestats_sinceint64optional
统计开始时间(Min/Max 是从何时开始统计的,通常是启动时间或上次手动复位时间)
Nested Enums defined inResourceCapacity

FloatPropertyMessage

用于存储标准精度的连续数值,适用于对带宽/存储敏感且精度要求一般的场景。 示例:实时电压 (220.5V)、环境温度 (25.5°C)、工作电流 (10.2A)。

FieldAPI Name(Java/JSON)Type约束规则Description
valuevaluefloatoptional
当前监测值或配置值
default_valuedefault_valuefloatoptional
出厂默认值,用于“恢复默认”功能
minminfloatoptional
允许的最小值(下限约束)
maxmaxfloatoptional
允许的最大值(上限约束)
unitunitcom.nexus.service.proto.enums.MeasurementUnitoptional
物模型物理量/电气量测量单位枚举
custom_unit_namecustom_unit_namestringoptional
应对极端情况:如果 unit == UNIT_CUSTOM,可以通过此字段透传非常规单位字符串 正常情况下该字段为空,不消耗额外带宽
Nested Enums defined inFloatProperty

AcAlarmStrategyMessage

AC (交流单相告警策略) 配置

FieldAPI Name(Java/JSON)Type约束规则Description
live_over_voltagelive_over_voltageMultiLevelAlarmConfigoptional
火线过压 (Live Wire Over voltage) - 1/2/3级
live_under_voltagelive_under_voltageMultiLevelAlarmConfigoptional
火线欠压 (Live Wire Under voltage) - 1/2/3级
live_over_loadlive_over_loadMultiLevelAlarmConfigoptional
火线过载 (Live Wire Overload) - 1/2/3级 注:通常指电流过大 (Amps)
leakage_currentleakage_currentMultiLevelAlarmConfigoptional
漏电 (Leakage Current) - 1/2/3级 注:通常单位为 mA
live_over_temperaturelive_over_temperatureMultiLevelAlarmConfigoptional
火线过温 (Live Wire Over temperature) - 1/2/3级
neutral_over_temperatureneutral_over_temperatureMultiLevelAlarmConfigoptional
零线过温 (Neutral Wire Over temperature) - 1/2/3级
total_over_loadtotal_over_loadSingleLevelAlarmConfigoptional
过载 (AC Total Overload) - 仅3级 注:通常指整机功率过大 (Watts),与上面的火线过载区分开
open_circuitopen_circuitMultiLevelAlarmConfigoptional
回路断开、负载突然掉线
under_currentunder_currentMultiLevelAlarmConfigoptional
欠流
mains_failuremains_failureEventMappingConfigoptional
市电停电 (Mains Failure)
default_continuous_reportdefault_continuous_reportContinuousReportStrategyoptional
--- 全局默认告警持续上报策略 --- [作用] 提供整个交流系统的兜底上报规则。 [逻辑] 设备在判断某个具体告警(如直流过流1级)是否需要持续上报时: 优先读取其 ThresholdLevel 中的 continuous_report; 如果未下发/未配置,则回退使用此处的 default_continuous_report。 [优势] 绝大多数同类别的告警心跳时间是一致的,配置在根节点可以大幅度压缩云端下发的 Protobuf 报文体积。
Nested Enums defined inAcAlarmStrategy

AcDcUniversalAlarmStrategyMessage

交直流通用告警策略 (AC/DC Universal Alarm Strategy)

FieldAPI Name(Java/JSON)Type约束规则Description
dc_strategydc_strategyDcAlarmStrategyoptional
DC 侧告警策略配置 若当前设备未启用DC或不支持DC,则下发时该字段置空即可
ac_strategyac_strategyAcAlarmStrategyoptional
AC 单相侧告警策略配置
ac_three_phase_strategyac_three_phase_strategyThreePhaseAlarmStrategyoptional
AC 三相侧告警策略配置 (如果该通用设备兼容三相)
converter_faultconverter_faultMultiLevelAlarmConfigoptional
--- 交直流通用特有告警 --- 交直流转换模块/逆变器故障告警 (Inverter/Rectifier Fault)
insulation_resistanceinsulation_resistanceMultiLevelAlarmConfigoptional
绝缘阻抗告警 (Insulation Resistance) - 储能/交直流系统中常见
current_work_modecurrent_work_modeAcDcUniversalAlarmStrategy.WorkModeoptional
设备当前工作模式指示 (辅助业务逻辑判断告警该取哪一部分) [作用] 动态指示设备当前的实际运行工况(掩码字典) [排障] 若云端接收到大量无效的单侧“幽灵告警”(如DC未接却报DC欠压),需优先排查此指示字段是否正确随物理工况进行了动态切换。
default_continuous_reportdefault_continuous_reportContinuousReportStrategyoptional
--- 全局默认告警持续上报策略 --- [作用] 提供整个交直流系统的兜底上报规则。 [逻辑] 设备在判断某个具体告警(如直流过流1级)是否需要持续上报时: 优先读取其 ThresholdLevel 中的 continuous_report; 如果未下发/未配置,则回退使用此处的 default_continuous_report。 [优势] 绝大多数同类别的告警心跳时间是一致的,配置在根节点可以大幅度压缩云端下发的 Protobuf 报文体积。
Nested Enums defined inAcDcUniversalAlarmStrategy

DcAlarmStrategyMessage

电气阈值总配置 (DC告警策略)

FieldAPI Name(Java/JSON)Type约束规则Description
over_voltageover_voltageMultiLevelAlarmConfigoptional
过压 (Over voltage)
under_voltageunder_voltageMultiLevelAlarmConfigoptional
欠压 (Under voltage)
over_currentover_currentMultiLevelAlarmConfigoptional
过流 (Over current)
over_temperatureover_temperatureMultiLevelAlarmConfigoptional
过温 (Over temperature)
over_loadover_loadMultiLevelAlarmConfigoptional
过载 (Overload)
load_mismatchload_mismatchSingleLevelAlarmConfigoptional
负载不匹配 (Load Mismatch)
mains_failuremains_failureEventMappingConfigoptional
市电停电 (Mains Failure)
open_circuitopen_circuitMultiLevelAlarmConfigoptional
回路断开、负载突然掉线
under_currentunder_currentMultiLevelAlarmConfigoptional
欠流
default_continuous_reportdefault_continuous_reportContinuousReportStrategyoptional
--- 全局默认告警持续上报策略 --- [作用] 提供整个直流系统的兜底上报规则。 [逻辑] 设备在判断某个具体告警(如直流过流1级)是否需要持续上报时: 优先读取其 ThresholdLevel 中的 continuous_report; 如果未下发/未配置,则回退使用此处的 default_continuous_report。 [优势] 绝大多数同类别的告警心跳时间是一致的,配置在根节点可以大幅度压缩云端下发的 Protobuf 报文体积。
Nested Enums defined inDcAlarmStrategy

DeviceElectricalAlarmProfileMessage

设备电气告警策略配置

FieldAPI Name(Java/JSON)Type约束规则Description
dc_alarmdc_alarmDcAlarmStrategyoptional
直流 (DC) 配置
ac_alarmac_alarmAcAlarmStrategyoptional
单相交流 (Single Phase AC) 配置
three_phase_alarmthree_phase_alarmThreePhaseAlarmStrategyoptional
三相交流 (Three Phase AC) 配置
ac_dc_alarmac_dc_alarmAcDcUniversalAlarmStrategyoptional
交直流通用告警配置
Nested Enums defined inDeviceElectricalAlarmProfile

ElectricalAlarmProfileMessage

模块或通道告警策略总入口

FieldAPI Name(Java/JSON)Type约束规则Description
dc_alarmdc_alarmDcAlarmStrategy
直流 (DC) 配置
ac_alarmac_alarmAcAlarmStrategy
单相交流 (Single Phase AC) 配置
three_phase_alarmthree_phase_alarmThreePhaseAlarmStrategy
三相交流 (Three Phase AC) 配置
ac_dc_alarmac_dc_alarmAcDcUniversalAlarmStrategy
交直流通用告警配置
Nested Enums defined inElectricalAlarmProfile

ThreePhaseAlarmStrategyMessage

--- 三相告警策略 ---

FieldAPI Name(Java/JSON)Type约束规则Description
phase_over_voltagephase_over_voltageMultiLevelAlarmConfigoptional
--- 电压类 (A/B/C相电压) --- 三相电压过压报警 (任一相电压高于阈值触发)
phase_under_voltagephase_under_voltageMultiLevelAlarmConfigoptional
三相电压欠压报警 (任一相电压低于阈值触发)
phase_lossphase_lossSingleLevelAlarmConfigoptional
三相缺相报警 (检测到某相电压丢失) - 仅3级
voltage_unbalancevoltage_unbalanceSingleLevelAlarmConfigoptional
三相电压不平衡报警 (三相电压差值或不平衡度过大) - 仅3级
phase_over_currentphase_over_currentMultiLevelAlarmConfigoptional
--- 电流类 ( A/B/C相电流) --- 三相电流过流报警 (任一相电流高于阈值触发)
leakage_currentleakage_currentMultiLevelAlarmConfigoptional
--- 漏电类 (漏电流) --- 三相漏电流过大报警 (检测到漏电流超过阈值)
phase_over_temperaturephase_over_temperatureMultiLevelAlarmConfigoptional
--- 温度类 (A/B/C相温度、N线温度) --- 三相相线过温报警 (A/B/C任一相端子/线缆温度过高)
neutral_over_temperatureneutral_over_temperatureMultiLevelAlarmConfigoptional
零线过温报警 (N线端子/线缆温度过高)
phase_active_power_overloadphase_active_power_overloadMultiLevelAlarmConfigoptional
--- 功率类 (A/B/C相有功/视在功率、总功率) --- 单相功率过载报警 (任一相有功功率过大)
total_active_power_overloadtotal_active_power_overloadMultiLevelAlarmConfigoptional
总功率过载报警 (三相总有功功率过大)
open_circuitopen_circuitMultiLevelAlarmConfigoptional
回路断开、负载突然掉线
under_currentunder_currentMultiLevelAlarmConfigoptional
欠流
default_continuous_reportdefault_continuous_reportContinuousReportStrategyoptional
--- 全局默认告警持续上报策略 --- [作用] 提供整个交直流系统的兜底上报规则。 [逻辑] 设备在判断某个具体告警(如直流过流1级)是否需要持续上报时: 优先读取其 ThresholdLevel 中的 continuous_report; 如果未下发/未配置,则回退使用此处的 default_continuous_report。 [优势] 绝大多数同类别的告警心跳时间是一致的,配置在根节点可以大幅度压缩云端下发的 Protobuf 报文体积。
Nested Enums defined inThreePhaseAlarmStrategy

WorkModeEnum

--- 运行状态与模式指示 --- [作用] 定义设备在全集能力下的当前实际生效工作模式

NameValueDescription
WORK_MODE_UNKNOWN0[作用] 未知或初始化未完成状态
WORK_MODE_DC_ONLY1[作用] 仅直流侧工作 [场景] 设备作为纯 DC-DC 转换器使用,或交流侧掉电后仅维持直流运行。
WORK_MODE_AC_SINGLE_PHASE2[作用] 仅交流单相侧工作
WORK_MODE_AC_THREE_PHASE3[作用] 仅交流三相侧工作 [场景] 设备未接电池,作为纯 SVG 调节电网质量;或直流侧电池深度休眠/故障跳闸时动态回落到此模式。
WORK_MODE_HYBRID4[作用] 交直流混合工作 [场景] 标准光储一体机/PCS 的正常充放电工况,需同时校验交直流两侧的告警策略。

PeripheralAlarmStrategyMessage

外设告警总配置 (Peripheral Alarm Strategy)

FieldAPI Name(Java/JSON)Type约束规则Description
door_sensor_opendoor_sensor_openEventMappingConfigoptional
开关量/事件类告警 (Digital / Event Based) 门磁告警 (Door Sensor) 逻辑: 门被打开(状态改变)时触发,可配合 delay_ms 实现“门长时间未关告警”
door_lock_exceptiondoor_lock_exceptionEventMappingConfigoptional
门锁告警 (Door Lock) 逻辑: 门锁被暴力破坏、非正常开启或门锁硬件故障
surge_protector_faultsurge_protector_faultEventMappingConfigoptional
防雷器告警 (Surge Protector / SPD) 逻辑: 防雷器模块失效(通常为干接点输出,正常为闭合,故障为断开)
vibration_eventvibration_eventEventMappingConfigoptional
震动告警 (Vibration) 逻辑: 设备被撞击或非法移动触发震动传感器 (如果传感器输出的是简单的开关量信号)
env_over_temperatureenv_over_temperatureMultiLevelAlarmConfigoptional
如果你的震动传感器输出的是模拟量(震动强度绝对值),则应改用: optional SingleLevelAlarmConfig vibration_intensity = 5; 模拟量阈值类告警 (Analog / Threshold Based) 环境过温告警 (Environment Over Temperature) 逻辑: 机柜/机房环境温度过高,复用多级告警结构
env_under_temperatureenv_under_temperatureMultiLevelAlarmConfigoptional
环境欠温告警 (Environment Under Temperature) 逻辑: 机柜/机房环境温度过低 (极端寒冷地区需要开启加热)
env_over_humidityenv_over_humidityMultiLevelAlarmConfigoptional
环境过湿告警 (Environment Over Humidity) 逻辑: 湿度过高,可能导致凝露、短路
env_under_humidityenv_under_humidityMultiLevelAlarmConfigoptional
环境欠湿告警 (Environment Under Humidity) 逻辑: 湿度过低,易产生静电隐患
Nested Enums defined inPeripheralAlarmStrategy

ContinuousReportStrategyMessage

告警持续上报策略 (Continuous Report Strategy) [业务背景] 专为 IIoT 场景(如室外智能机柜、交直流电源箱)设计,保障关联负载(摄像头、光猫、抓拍机)的运维可靠性。 解决弱网丢包导致的“状态黑洞”问题,确保设备在发生断电、被盗、严重漏电等极端工况下能够向云端“持续呼救”。 [场景配置指南] 1. 市电停电/防拆开门 (致命/安防) -> 强需持续上报:配置 interval_sec (如60s),不配置 max_repeat_count (无限呼救)。 2. 负载欠流/死机假死 (需确认) -> 需确认不上报:配置 interval_sec (如300s),配置 max_repeat_count=3 (报完即止,省流量)。 3. 轻微过流/电压波动 (边缘事件) -> 仅记录不持续:不配置 interval_sec (退化为边缘触发,仅触发和恢复各报1次)。

FieldAPI Name(Java/JSON)Type约束规则Description
enabledenabledbooloptional
[作用] 持续上报总开关 true: 开启持续上报 (告警未恢复期间,周期性重传告警) false: 关闭持续上报 (仅在“触发”和“恢复”的瞬间各上报一次事件,即边缘触发)
interval_secinterval_secuint32optional
[作用] 持续上报的时间间隔 (单位:秒) [说明] 仅在 enabled = true 时生效。 [场景] 安防开门告警设为 10 秒(高频),市电停电转电池设为 60-300 秒(心跳)。
limit_repeat_countlimit_repeat_countbooloptional
重传次数限制 [作用] 是否限制最大重传次数 (独立开关) true: 限制重传次数 (需读取 max_repeat_count) false: 不限制重传次数 (只要没恢复就无限期周期性上报,适用于严重故障)
max_repeat_countmax_repeat_countuint32optional
[作用] 最大重复上报次数 [说明] 仅在 limit_repeat_count = true 时生效。 [场景] 用于节省流量。例如轻微告警重传 3 次后云端已记录即可,无需无限耗费流量。
enable_escalationenable_escalationbooloptional
告警自动升级 [作用] 是否开启告警未处理自动升级 (独立开关) true: 开启 (需读取 escalate_after_sec) false: 关闭
escalate_after_secescalate_after_secuint32optional
[作用] 告警未处理自动升级时间阈值 (单位:秒) [说明] 仅在 enable_escalation = true 时生效。 [逻辑] 告警触发后如果持续该时间仍未恢复,设备端自动生成更高级别的告警上报。 [场景] 漏电流1级预警持续 10 分钟无人处理,自动升级为3级严重告警,触发前端断路器强制断电。
Nested Enums defined inContinuousReportStrategy

EventMappingConfigMessage

事件映射配置,单一告警自由配置等级 (用于:市电停电、开关门)

FieldAPI Name(Java/JSON)Type约束规则Description
enabledenabledbooloptional
整个功能的总开关
levellevelcom.nexus.service.proto.enums.AlarmSeverityoptional
指定该事件触发时的告警等级
delay_msdelay_msuint32optional
(可选) 持续时间/防抖时间
continuous_reportcontinuous_reportContinuousReportStrategyoptional
事件类告警的持续上报策略
Nested Enums defined inEventMappingConfig

MultiLevelAlarmConfigMessage

定义包含多级报警的配置项

FieldAPI Name(Java/JSON)Type约束规则Description
enabledenabledbooloptional
是否启用报警
level_1level_1ThresholdLeveloptional
1级报警配置
level_2level_2ThresholdLeveloptional
2级报警配置
level_3level_3ThresholdLeveloptional
3级报警配置
Nested Enums defined inMultiLevelAlarmConfig

SingleLevelAlarmConfigMessage

针对只有单级报警的配置项

FieldAPI Name(Java/JSON)Type约束规则Description
level_3level_3ThresholdLeveloptional
仅有3级
Nested Enums defined inSingleLevelAlarmConfig

ThresholdLevelMessage

定义单个等级的阈值配置

FieldAPI Name(Java/JSON)Type约束规则Description
valuevaluefloatoptional
触发值 (绝对值 例如:245.0 或 倍数 如1.1)
hysteresishysteresisfloatoptional
(可选) 恢复滞后值/回差值。 告警触发后,必须满足 [当前值 < 阈值 - hysteresis] 才会判定为恢复。 用于防止在阈值点附近的数值波动导致告警频繁抖动。
delay_msdelay_msuint32optional
(可选) 持续时间/防抖时间,单位毫秒
threshold_typethreshold_typecom.nexus.service.proto.enums.AlarmThresholdTypeoptional
--- 判定逻辑 --- 阈值判定类型:区分是绝对值、倍数还是百分比
enabledenabledbooloptional
是否启用报警
continuous_reportcontinuous_reportContinuousReportStrategyoptional
--- 针对当前告警等级的特有持续上报策略 --- [作用] 允许为不同等级配置不同上报频率。 [例如] 3级告警(level_3)可配置 interval_sec=10 (10秒一次); 1级告警(level_1)可配置 interval_sec=300 (5分钟一次)。 [注意] 若此字段为空,则设备应继承上一级的全局默认配置。
Nested Enums defined inThresholdLevel

ChannelCalibrationMessage

--- 通道校准与转换系数 (单相/多路支持) ---

FieldAPI Name(Java/JSON)Type约束规则Description
gain_correctiongain_correctionfloatoptional
校准补偿 (RAW/Offset) GPQA/APGain: 增益校正 (有功)
phase_correctionphase_correctionfloatoptional
PhsA/APhase: 相位校正
active_power_offsetactive_power_offsetfloatoptional
APOSA/APOffset: 有功功率 Offset 校正
rms_offsetrms_offsetfloatoptional
IARMSOS/AIOffset: 有效值(电流) Offset 校正
reactive_power_gainreactive_power_gainfloatoptional
无功/视在功率校准 (如果设备支持) RQGain: 无功增益校正
reactive_power_offsetreactive_power_offsetfloatoptional
RQOffset: 无功 Offset 校正
voltage_factorvoltage_factorfloatoptional
物理量转换系数 (硬件RAW值 -> 真实物理量) KUrms: 电压系数 (一般一相一个,或全局共享)
current_factorcurrent_factorfloatoptional
KIArms: 电流系数
power_factorpower_factorfloatoptional
KPrms: 功率系数
Nested Enums defined inChannelCalibration

ControlRegistersMessage

--- 芯片底层控制寄存器 (通常为16/24/32位十六进制值) ---

FieldAPI Name(Java/JSON)Type约束规则Description
sysconsysconuint32optional
SYSCON: 系统控制寄存器 (启用ADC、增益选择等)
emuconemuconuint32optional
EMUCON: 计量控制寄存器 (有功/无功计算模式等)
emucon2emucon2uint32optional
EMUCON2: 计量控制寄存器2
Nested Enums defined inControlRegisters

MeteringConfigMessage

计量模块的配置与校准

FieldAPI Name(Java/JSON)Type约束规则Description
serial_numberserial_numberstringoptional
计量唯一序列号 (在机身贴纸上)
control_regscontrol_regsControlRegistersoptional
芯片底层控制寄存器
thresholdsthresholdsSystemThresholdsoptional
计量系统全局配置与阈值
calibrationcalibrationChannelCalibrationoptional
通道校准与转换系数
calibration_checksumcalibration_checksumuint32optional
计量数据校验和,用于防止校准数据在 Flash/EEPROM 中损坏
Nested Enums defined inMeteringConfig

MeteringStateMessage

计量模块的实时状态与数据 这些是客观存在的状态和采样数据,不可下发修改

FieldAPI Name(Java/JSON)Type约束规则Description
measuremeasurecom.nexus.service.proto.device.ElectricalMeasureoptional
实时电气数据
chip_errorchip_errorbooloptional
[补充] 计量芯片硬件状态 芯片通信故障/异常状态
calibration_errorcalibration_errorbooloptional
校准数据校验失败报警
Nested Enums defined inMeteringState

SystemThresholdsMessage

--- 计量系统全局配置与阈值 ---

FieldAPI Name(Java/JSON)Type约束规则Description
hf_consthf_constuint32optional
HFConst: 高频脉冲频率常数
p_startp_startfloatoptional
PStart: 潜动与启动阈值 (低于此值不计电量,防潜动)
over_current_thresholdover_current_thresholdfloatoptional
其他常见全局配置 硬件级过流保护阈值
over_voltage_thresholdover_voltage_thresholdfloatoptional
硬件级过压保护阈值
Nested Enums defined inSystemThresholds

NetworkAlarmStrategyMessage

网络相关告警配置汇总

FieldAPI Name(Java/JSON)Type约束规则Description
connection_disconnectedconnection_disconnectedEventMappingConfigoptional
连接断开告警 逻辑:底层通信链路(如TCP/MQTT/串口)的心跳超时或物理断开
network_interruptionnetwork_interruptionEventMappingConfigoptional
网络中断告警 逻辑:通常指广域网(WAN)或上行网口的网络完全不可用
ethernet_link_downethernet_link_downEventMappingConfigoptional
--- 为物理层与链路层细化监控 --- 物理网线断开 (L1 物理层) 逻辑:网卡检测到没有载波(No Carrier),即网线没插或对端交换机掉电
gateway_unreachablegateway_unreachableEventMappingConfigoptional
网线已插但不可达 (网关不通) 逻辑:网线物理连接正常,但无法 Ping 通默认网关(通常是由于静态IP配置错误、VLAN划分或交换机端口被禁)
link_speed_degradationlink_speed_degradationMultiLevelAlarmConfigoptional
链路降速告警 逻辑:网口协商速率低于预期(例如:千兆网口降速为100M level_3 )
ip_address_conflictip_address_conflictEventMappingConfigoptional
IP 地址冲突 逻辑:检测到局域网内有其他设备占用了相同的 IP
dns_resolution_failuredns_resolution_failureEventMappingConfigoptional
DNS 解析异常 逻辑:能够 Ping 通 IP,但无法解析域名,导致业务中断
latency_alarmlatency_alarmMultiLevelAlarmConfigoptional
--- 质量监控 (数值型) --- 网络高延迟告警 逻辑:基于 Ping 值延迟。(例如:>500ms 3级, >2000ms 2级)
packet_loss_alarmpacket_loss_alarmMultiLevelAlarmConfigoptional
网络丢包率告警 逻辑:基于丢包百分比。(例如:>10% 3级, >30% 2级)
wireless_signal_lowwireless_signal_lowMultiLevelAlarmConfigoptional
--- 无线网络扩展 (可选) --- 4G/5G/Wi-Fi 信号强度过低 逻辑:RSSI 或 RSRP 低于阈值
Nested Enums defined inNetworkAlarmStrategy

CellularConfigMessage

-- 4G/5G 物理网卡参数 (APN, PIN, 漫游等)

FieldAPI Name(Java/JSON)Type约束规则Description
iot_cardiot_cardbooloptional
是否为物联网专网卡 true: 启用物联网卡专用逻辑。
apn_nameapn_namestringoptional
接入点名称 (APN) 普通卡一般留空自动获取;物联网专网卡(VPDN)必填,如 "cmiot", "szxyz.gd"
sim_pinsim_pinstringoptional
SIM 卡 PIN 码 仅当 SIM 卡开启了 PIN 锁保护时填写 (通常为4位数字)
apn_userapn_userstringoptional
(可选补充) 认证方式,有些专网 APN 还需要账号密码
apn_passwordapn_passwordstringoptional
(可选补充) 认证方式,有些专网 APN 还需要账号密码
roaming_enabledroaming_enabledbooloptional
是否允许数据漫游 许多物联网卡(特别是全球卡或虚商卡)在本地使用时也被识别为漫游。 如果是物联网卡,建议此项默认为 true。
Nested Enums defined inCellularConfig

CellularProfileMessage

== 终端物理层配置部分 == -- 4G/5G 配置 --

FieldAPI Name(Java/JSON)Type约束规则Description
physical_configphysical_configCellularConfigoptional
4G/5G 物理网卡参数 (APN, PIN, 漫游等)
server_sectionserver_sectionServerSectionoptional
服务器配置 无论选择哪种链路,服务器配置通常是通用的
Nested Enums defined inCellularProfile

EmergencyLogConfigMessage

== 应急/兜底日志配置 ==

FieldAPI Name(Java/JSON)Type约束规则Description
enabledenabledbooloptional
是否启用该功能
serverserverServerConnectionoptional
兜底服务器地址 通常是一个高可用的日志接收服务
Nested Enums defined inEmergencyLogConfig

EthernetConfigMessage

-- 有线网/以太网配置 --

FieldAPI Name(Java/JSON)Type约束规则Description
interface_nameinterface_namestringoptional
"以太网" (可能有 eth0, eth1 多网口选择)
ip_configip_configIpv4Configoptional
终端IP地址, 终端子网掩码, 终端默认网关
server_sectionserver_sectionServerSectionoptional
服务器配置 无论选择哪种链路,服务器配置通常是通用的
Nested Enums defined inEthernetConfig

FailoverStrategyConfigMessage

通用故障转移与回切策略 既适用于“物理链路切换” (Eth -> 4G),也适用于“逻辑服务器切换” (主IP -> 备IP)

FieldAPI Name(Java/JSON)Type约束规则Description
max_fail_attemptsmax_fail_attemptsint32optional
连续失败多少次判定为故障 (例如:连续3次心跳超时、连续3次Ping失败)
auto_revert_enabledauto_revert_enabledbooloptional
当高优先级节点(如:有线网卡 / 主服务器)恢复正常时,是否自动切回? true: 恢复后自动切回 (Active-Standby 模式) false: 保持在备用节点,直到备用节点也挂掉或人工干预 (防止频繁震荡)
revert_stable_secondsrevert_stable_secondsint32optional
网络防抖动稳定时间 (秒) 仅当 auto_revert_enabled = true 时有效。 高优先节点恢复后,必须持续稳定 N 秒,才真正执行回切动作。 防止接触不良导致的“反复横跳”。
Nested Enums defined inFailoverStrategyConfig

MultiModeConfigMessage

-- 多模/故障转移配置 --

FieldAPI Name(Java/JSON)Type约束规则Description
priority_listpriority_listPriorityLinkrepeated
以太网, 4G/5G
strategystrategyFailoverStrategyConfigoptional
全局链路切换策略 (断网检测、防抖动、回切)
Nested Enums defined inMultiModeConfig

NorthboundConfigMessage

== 北向网络配置 ==

FieldAPI Name(Java/JSON)Type约束规则Description
strategy_modestrategy_modeNorthboundConfig.UplinkStrategyModeoptional
全局上行工作策略 (决定设备当前是跑单链路还是跑多模)
up_network_typeup_network_typecom.nexus.service.proto.enums.ConnectivityTypeoptional
指明当前单一链路到底用的是哪种物理网卡 (例如: CONN_CELLULAR_4G 或 CONN_ETHERNET)
cellular_profilecellular_profileCellularProfileoptional
终端链路特有配置 4G/5G 设置
wifiwifiWifiConfigoptional
WIFI 设置
ethernetethernetEthernetConfigoptional
有线网络 设置
multi_modemulti_modeMultiModeConfigoptional
对多模网络 设置
Nested Enums defined inNorthboundConfig

ServerSectionMessage

== 服务器设置部分 (ServerSection) ==

FieldAPI Name(Java/JSON)Type约束规则Description
work_modework_modecom.nexus.service.proto.enums.ServerWorkModeoptional
工作模式
primary_serverprimary_serverServerConnectionoptional
主服务器配置
slave_serverslave_serverServerConnectionoptional
备用服务器配置 (仅在 主从模式 或 双工模式 下有效)
server_failover_strategyserver_failover_strategyFailoverStrategyConfigoptional
服务器之间的故障转移与回切策略 专门控制 "primary_server" 和 "slave_server" 之间的切换逻辑 即使物理层只是单纯的 "EthernetConfig",这里依然生效。
emergency_log_configemergency_log_configEmergencyLogConfigoptional
应急日志上报配置(兜底) 当主、备服务器均无法连接时,尝试向此地址发送一次诊断日志
Nested Enums defined inServerSection

TerminalNetworkConfigMessage

== 终端网络配置 ==

FieldAPI Name(Java/JSON)Type约束规则Description
northboundnorthboundNorthboundConfigoptional
北向网络设置 (设备连接云端/平台)
southboundsouthboundSouthboundConfigoptional
南向网络设置 (设备连接本地传感器/局域网)
Nested Enums defined inTerminalNetworkConfig

WifiConfigMessage

-- WIFI 配置 (对应 UI 图2) --

FieldAPI Name(Java/JSON)Type约束规则Description
ssidssidstring
网络名称 (SSID)
passwordpasswordstring
密码
security_typesecurity_typestring
加密方式 (WPA2, WPA3, OPEN 等,后端自动检测或指定)
ip_configip_configIpv4Configoptional
IP获取方式 (WIFI 也可以配静态 IP)
server_sectionserver_sectionServerSectionoptional
服务器配置 无论选择哪种链路,服务器配置通常是通用的
Nested Enums defined inWifiConfig

UplinkStrategyModeEnum

上行网络全局工作策略 (逻辑层)

NameValueDescription
UPLINK_STRATEGY_UNSPECIFIED0未指定
UPLINK_STRATEGY_SINGLE_LINK1单一链路模式 (设备只使用固定的一种物理链路进行通信)
UPLINK_STRATEGY_FAILOVER2多链路主备模式 (Active-Standby 故障转移,UI上的"多模网络"通常指此模式)
UPLINK_STRATEGY_LOAD_BALANCE3多链路负载均衡模式 (Active-Active 流量分担,预留给未来的高级功能)
UPLINK_STRATEGY_DUPLEX4多链路双工模式 (Active-Active 冗余发送,同一份数据在多条链路同时传输,追求极高可靠性和低延迟)

Ipv4ConfigMessage

== 通用组件 == IPv4 网络参数

FieldAPI Name(Java/JSON)Type约束规则Description
methodmethodcom.nexus.service.proto.enums.IpAssignmentMethodoptional
IP 分配方式
ip_addressip_addressstringoptional
静态 IP 模式下必填 终端IP地址
subnet_masksubnet_maskstringoptional
终端子网掩码
gatewaygatewaystringoptional
终端默认网关
dns_primarydns_primarystringoptional
首选 DNS (可选)
dns_secondarydns_secondarystringoptional
备选 DNS (可选)
Nested Enums defined inIpv4Config

Ipv6ConfigMessage

网关 LAN 口自身的 IPv6 配置

FieldAPI Name(Java/JSON)Type约束规则Description
assign_modeassign_modeIpv6AssignModeoptional
IPv6 地址分配模式
static_configstatic_configIpv6StaticConfigoptional
[场景1] 当 assign_mode 为 IPV6_ASSIGN_STATIC 时使用
track_configtrack_configIpv6TrackConfigoptional
[场景2] 当 assign_mode 为 IPV6_ASSIGN_TRACK 时使用 核心逻辑:LAN 口的 IPv6 跟着 WAN 口获取到的前缀动态变化
ra_configra_configIpv6RaConfigoptional
[附带属性] LAN 口的 IPv6 路由通告 (Router Advertisement) 配置 在 IPv6 中,即使不提供 DHCPv6 服务,网关也必须发送 RA 报文,局域网设备才能知道网关的存在。 虽然它具有 "Service" 的性质,但它与接口的 IPv6 强绑定,建议放在此处。
Nested Enums defined inIpv6Config

Ipv6RaConfigMessage

IPv6 路由通告配置 (Router Advertisement) - 服务端视角必须具备的能力

FieldAPI Name(Java/JSON)Type约束规则Description
enabledenabledbooloptional
是否允许在此 LAN 口发送 RA 报文
managed_flagmanaged_flagbooloptional
管理地址配置标志 (M 标志/Managed flag) true: 局域网设备必须通过 DHCPv6 获取 IPv6 地址 (有状态) false: 局域网设备通过 SLAAC 自动生成地址 (无状态,最常见)
other_config_flagother_config_flagbooloptional
其他配置标志 (O 标志/Other config flag) true: 局域网设备通过 DHCPv6 获取 DNS 等其他信息
max_intervalmax_intervalint32optional
RA 报文发送间隔 (秒)
Nested Enums defined inIpv6RaConfig

Ipv6StaticConfigMessage

静态 IPv6 配置

FieldAPI Name(Java/JSON)Type约束规则Description
addressaddressstringoptional
网关的静态 IPv6 地址,例如 "fd00:114:514::1"
prefix_lengthprefix_lengthint32optional
子网前缀长度,通常为 64
Nested Enums defined inIpv6StaticConfig

Ipv6TrackConfigMessage

追踪 WAN 口的 IPv6 前缀配置 (PD Tracking)

FieldAPI Name(Java/JSON)Type约束规则Description
track_interfacetrack_interfacestringoptional
被追踪的 WAN 接口名称,例如 "wan0" 或 "pppoe-wan"
interface_id_suffixinterface_id_suffixstringoptional
接口 ID 后缀 (Interface ID)。 如果 WAN 口获取到了 2001:db8:abcd:0012::/64 的前缀, suffix 设置为 "::1",则当前 LAN 口地址自动配置为 2001:db8:abcd:0012::1
subnet_idsubnet_idint32optional
子网划分 ID (Subnet ID)。如果网关获取到了 /56 的前缀,分配给当前 LAN 口的是哪个 /64 子网。
Nested Enums defined inIpv6TrackConfig

Ipv6AssignModeEnum

IPv6 地址分配模式

NameValueDescription
IPV6_ASSIGN_UNSPECIFIED0
IPV6_ASSIGN_DISABLED1禁用 IPv6
IPV6_ASSIGN_STATIC2静态配置 (常用于 ULA 唯一本地地址,如 fd00::1)
IPV6_ASSIGN_TRACK3追踪 WAN 口前缀 (最常见的家用/企业网关模式: Prefix Delegation)
IPV6_ASSIGN_AUTO4SLAAC/DHCPv6 获取 (通常 LAN 口不作为客户端,但在旁路由/级联场景可能会用到)

TlsConfigMessage

TLS/SSL 加密传输配置 定义设备与云端通信的安全等级。

FieldAPI Name(Java/JSON)Type约束规则Description
enabledenabledbooloptional
是否启用 TLS 加密
auth_modeauth_modecom.nexus.service.proto.enums.AuthModeoptional
认证模式
root_ca_aliasroot_ca_aliasstringoptional
根证书 (CA) 别名/路径 用于校验服务端的合法性
client_cert_aliasclient_cert_aliasstringoptional
设备公钥证书别名/路径 (仅双向认证需要)
client_key_aliasclient_key_aliasstringoptional
设备私钥别名/路径 (仅双向认证需要) 注意:私钥通常存储在安全芯片(SE)或加密文件系统中,此处仅传递索引ID
Nested Enums defined inTlsConfig

ServerConnectionMessage

服务器连接配置信息

FieldAPI Name(Java/JSON)Type约束规则Description
hosthoststringoptional
服务器地址 (IP 或 域名)
portportint32optional
端口号
accountaccountstringoptional
账号 (MQTT ClientID 或 认证账号)
passwordpasswordstringoptional
密码
tls_configtls_configTlsConfigoptional
TLS/SSL
Nested Enums defined inServerConnection

ActiveMonitorConfigMessage

主动监控与目标配置 (主动/客户端视角)

FieldAPI Name(Java/JSON)Type约束规则Description
enabledenabledbooloptional
全局总开关:使用 optional 确保向后兼容
ping_enabledping_enabledbooloptional
Ping 探测任务开关
ping_tasksping_tasksPingTaskrepeated
Ping 探测任务列表 [场景] 最基础的存活心跳检测,监控下游设备网络层是否在线。
ssh_enabledssh_enabledbooloptional
SSH 探测任务开关
ssh_targetsssh_targetsSshTargetrepeated
SSH 目标设备列表 [场景] 网关作为跳板机,或者网关通过脚本自动登录局域网内的 Linux 边缘计算节点拉取日志。
tcp_enabledtcp_enabledbooloptional
通用 TCP 端口探测任务开关
tcp_taskstcp_tasksTcpTaskrepeated
通用 TCP 端口探测任务 [场景] 监控下游业务端口是否存活(例如某台工控机的 502 端口是否在监听)。
http_enabledhttp_enabledbooloptional
HTTP 探测任务开关
http_taskshttp_tasksHttpTaskrepeated
通用 HTTP/API 探测任务 [场景] 定时调用局域网内本地业务系统的健康检查(Health Check)接口,或拉取特定数据。
camera_enabledcamera_enabledbooloptional
视频安防设备探测任务开关
camera_taskscamera_tasksCameraTaskrepeated
安防监控设备(海康/大华)专属任务 [场景] 针对 IPCAM(摄像头) 或 NVR(录像机),不仅判断网络通不通,还需判断视频流是否正常或抓取一张快照上传。
Nested Enums defined inActiveMonitorConfig

CameraTaskMessage

== 视频安防设备(海康/大华)任务 ==

FieldAPI Name(Java/JSON)Type约束规则Description
enabledenabledbooloptional
ididstringoptional
[核心] 任务唯一标识 (长度为 10 的字符串) 任务数组下发时的操作依据: - 新增 (Create):不传此字段或传空字符串,系统将视为新任务并自动分配 ID。 - 修改 (Update):传入已存在的 ID,系统将匹配并覆盖更新该任务的配置。
vendorvendorCameraTask.Vendoroptional
usernameusernamestringoptional
登录的账号 (通常是 admin)
passwordpasswordstringoptional
登录的密码
task_typetask_typeCameraTask.TaskTypeoptional
interval_secinterval_secint32optional
探测/抓图间隔时间(秒)
endpointendpointTargetEndpointoptional
统一标准寻址方式
Nested Enums defined inCameraTask

HttpTaskMessage

== 通用 HTTP 探测任务 ==

FieldAPI Name(Java/JSON)Type约束规则Description
enabledenabledbooloptional
ididstringoptional
[核心] 任务唯一标识 (长度为 10 的字符串) 任务数组下发时的操作依据: - 新增 (Create):不传此字段或传空字符串,系统将视为新任务并自动分配 ID。 - 修改 (Update):传入已存在的 ID,系统将匹配并覆盖更新该任务的配置。
methodmethodstringoptional
请求方法: "GET", "POST" 等 (默认 GET)
expected_statusexpected_statusint32optional
期望返回的 HTTP 状态码,例如 200。非 200 则判定告警
timeout_mstimeout_msint32optional
请求超时时间(毫秒)
interval_secinterval_secint32optional
探测间隔(秒)
endpointendpointTargetEndpointoptional
统一标准寻址方式 完整的请求路径,例如 "http://192.168.1.10/api/health"
Nested Enums defined inHttpTask

LanPortConfigMessage

网关自身接口配置 (被动/服务端视角)

FieldAPI Name(Java/JSON)Type约束规则Description
enabledenabledbooloptional
是否启用该网口
interface_nameinterface_namestringoptional
例如: "eth1", "lan0"
ipv4_configipv4_configIpv4Configoptional
网关在这个网口的IP (需另行定义 Ipv4Config)
servicesservicesLocalServicesoptional
网关在这个网口上提供的本地服务 (防火墙/监听策略) [场景] 为了安全,限制局域网内的未知设备访问网关自身的后台。
ipv6_configipv6_configIpv6Configoptional
Nested Enums defined inLanPortConfig

LocalServicesMessage

本地服务安全策略

FieldAPI Name(Java/JSON)Type约束规则Description
allow_icmp_echoallow_icmp_echobooloptional
是否允许下游设备 Ping 本网关 (ICMP Echo Reply) [场景] 开启后,现场工程师可以用电脑 Ping 网关内网 IP 测试网络连通性。
allow_http_serverallow_http_serverbooloptional
是否允许通过本网口访问本地 Web 配置界面 [场景] 是否允许现场人员通过浏览器访问 http://网关IP 进行调试。
allow_ssh_serverallow_ssh_serverbooloptional
是否允许下游通过本网口 SSH 登录到本网关
ssh_allowed_ipsssh_allowed_ipsstringrepeated
(进阶) 如果开启SSH服务端,可以选填允许登录的IP白名单 [场景] 仅允许运维人员专用的管理机 IP (如 192.168.1.100) SSH登录网关。
Nested Enums defined inLocalServices

PingTaskMessage

== Ping 探测任务定义 ==

FieldAPI Name(Java/JSON)Type约束规则Description
enabledenabledbooloptional
targetdeprecatedtargetstringoptional
--- 该字段为兼容旧版本的废弃字段,新业务请勿使用 --- 场景 A:手动指定目标 (脱离业务拓扑的纯网络探测,如测试外网 8.8.8.8) [核心] 探测目标:支持 IPv4, IPv6 地址或域名 (FQDN) [已废弃]
ididstringoptional
[核心] 任务唯一标识 (长度为 10 的字符串) 任务数组下发时的操作依据: - 新增 (Create):不传此字段或传空字符串,系统将视为新任务并自动分配 ID。 - 修改 (Update):传入已存在的 ID,系统将匹配并覆盖更新该任务的配置。
delete_flagdelete_flagint32optional
是否删除标识: 0-没有删除、1-删除
interval_secinterval_secint32optional
探测间隔 (秒),例如 60秒
timeout_mstimeout_msint32optional
超时时间 (毫秒),例如 2000毫秒
retry_countretry_countint32optional
失败重试次数,超过则判定设备离线
endpointendpointTargetEndpointoptional
统一标准寻址方式
Nested Enums defined inPingTask

SouthboundConfigMessage

== 南向网络及设备配置 == [场景说明] 用于配置边缘网关如何连接和管理本地局域网(南向)内的设备。

FieldAPI Name(Java/JSON)Type约束规则Description
lan_configslan_configsLanPortConfigrepeated
局域网/物理接口配置列表 (网关自身的网络设置) 支持多网口(eth1, eth2...)独立配置 [场景] 网关 eth1(192.168.1.x) 连接安防网络,eth2(192.168.2.x) 连接工控网络 (预留) 其他南向协议配置,如 RS485, LoRa 等 optional ModbusConfig modbus = 2;
monitor_configmonitor_configActiveMonitorConfigoptional
主动网络探测/监控任务 (网关主动发起) [场景] 网关需要定时检查局域网内的设备是否掉线,或抓取设备状态。
Nested Enums defined inSouthboundConfig

SshTargetMessage

== SSH 目标设备定义 ==

FieldAPI Name(Java/JSON)Type约束规则Description
enabledenabledbooloptional
ididstringoptional
[核心] 任务唯一标识 (长度为 10 的字符串) 任务数组下发时的操作依据: - 新增 (Create):不传此字段或传空字符串,系统将视为新任务并自动分配 ID。 - 修改 (Update):传入已存在的 ID,系统将匹配并覆盖更新该任务的配置。
usernameusernamestringoptional
认证帐号
passwordpasswordstringoptional
认证密码 (建议密文)
private_keyprivate_keystringoptional
证书/私钥内容 (可选,优先使用)
endpointendpointTargetEndpointoptional
统一标准寻址方式
Nested Enums defined inSshTarget

TargetEndpointMessage

统一的目标定位器 (TargetEndpoint) 解决所有任务都需要 "手动IP" vs "拓扑引用" 的问题

FieldAPI Name(Java/JSON)Type约束规则Description
targettargetstringoptional
场景 A:手动指定目标 (脱离业务拓扑的纯网络探测,如测试外网 8.8.8.8) [核心] 探测目标:支持 IPv4, IPv6 地址或域名
target_porttarget_portint32optional
目标端口
topology_reftopology_refTopologyReferenceoptional
场景 B: 关联业务拓扑,网关底层自动反查 IP
target_typetarget_typeTargetEndpoint.TargetTypeoptional
显式指定目标类型 下游程序直接读取此字段做 switch-case 路由,无需进行判空猜测
Nested Enums defined inTargetEndpoint

TcpTaskMessage

== 通用 TCP 端口探测任务 ==

FieldAPI Name(Java/JSON)Type约束规则Description
enabledenabledbooloptional
ididstringoptional
[核心] 任务唯一标识 (长度为 10 的字符串) 任务数组下发时的操作依据: - 新增 (Create):不传此字段或传空字符串,系统将视为新任务并自动分配 ID。 - 修改 (Update):传入已存在的 ID,系统将匹配并覆盖更新该任务的配置。
timeout_mstimeout_msint32optional
建连超时时间(毫秒)
interval_secinterval_secint32optional
探测间隔(秒)
endpointendpointTargetEndpointoptional
统一标准寻址方式
Nested Enums defined inTcpTask

TopologyReferenceMessage

拓扑资源定位器 (Topology Reference) 用于在南向网络任务中,指向具体的业务逻辑节点(模块/通道)

FieldAPI Name(Java/JSON)Type约束规则Description
module_serial_numbermodule_serial_numberstringoptional
指向具体的模块编号/ID (例如: "mod_plc_01", "mod_camera_group")
channel_indexchannel_indexint32optional
指向该模块下的具体通道编号/ID (例如: "ch_01", "ch_02")
binding_infobinding_infocom.nexus.service.proto.channel.BindingInfooptional
资产简要绑定信息(为了业务查看方便,只做查询给展示使用,不能直接设置该字段内容)
Nested Enums defined inTopologyReference

TaskTypeEnum

具体的安防探测任务类型

NameValueDescription
TASK_UNKNOWN0
TASK_ONLINE_CHECK1仅检查 API 接口是否存活 (防假死:Ping得通但Web服务挂了)
TASK_SNAPSHOT2定时抓图任务 (通过 ISAPI/CGI 抓取 JPG 图片上云)
TASK_STREAM_CHECK3视频流诊断 (尝试建立 RTSP 链接并立即断开,确认视频源正常)

VendorEnum

设备厂商枚举,决定网关使用哪种私有协议或通用协议

NameValueDescription
VENDOR_UNKNOWN0
VENDOR_HIK_VISION1海康威视 (通常使用 ISAPI 协议)
VENDOR_DA_HUA2大华 (通常使用 CGI 协议)
VENDOR_ONVIF3通用 ONVIF 协议

TargetTypeEnum

== 目标来源类型枚举 == 用于显式指定探测任务的目标是如何获取的

NameValueDescription
TARGET_TYPE_UNSPECIFIED0默认占位符,防止未初始化
TARGET_TYPE_MANUAL1场景 A:手动指定 (读取 target_address 字段)
TARGET_TYPE_TOPOLOGY2场景 B:关联业务拓扑 (读取 topology_ref 字段)

PerformanceThresholdConfigMessage

性能相关告警阈值配置

FieldAPI Name(Java/JSON)Type约束规则Description
concurrency_highconcurrency_highSingleLevelAlarmConfigoptional
并发量过高报警 (监测系统并发连接数或任务队列深度) - 3级
throughput_abnormalthroughput_abnormalSingleLevelAlarmConfigoptional
吞吐量异常报警 (监测数据包吞吐量或IO速率超出限制) - 3级
response_time_highresponse_time_highSingleLevelAlarmConfigoptional
响应时间过长报警 (监测关键业务处理延迟或Ping延迟) - 3级
cpu_usage_highcpu_usage_highSingleLevelAlarmConfigoptional
CPU使用率过高报警 (监测处理器负载百分比) - 3级
memory_usage_highmemory_usage_highSingleLevelAlarmConfigoptional
内存占用过高报警 (监测系统内存使用率或泄漏情况) - 3级
Nested Enums defined inPerformanceThresholdConfig

ElectricalRatedConfigMessage

电气额定值配置

FieldAPI Name(Java/JSON)Type约束规则Description
rated_currentrated_currentcom.nexus.service.proto.common.FloatPropertyoptional
额定电流 (Current) - 单位: A
rated_voltagerated_voltagecom.nexus.service.proto.common.FloatPropertyoptional
额定电压 (Voltage) - 单位: V
rated_temperaturerated_temperaturecom.nexus.service.proto.common.FloatPropertyoptional
额定温度 (Temperature) - 单位: °C (摄氏度)
rated_leakage_currentrated_leakage_currentcom.nexus.service.proto.common.FloatPropertyoptional
额定漏电流 (Leakage Current) - 单位: mA
rated_powerrated_powercom.nexus.service.proto.common.FloatPropertyoptional
额定功率 (Power) - 单位:W
Nested Enums defined inElectricalRatedConfig

BusinessStrategyProfileMessage

纯业务逻辑层

FieldAPI Name(Java/JSON)Type约束规则Description
initial_attributesinitial_attributesCommonReportPolicyoptional
静态属性策略 (如:设备型号、固件版本)
thing_modelthing_modelCommonReportPolicyoptional
物模型策略 (如:当前温度、运行模式)
channel_reportchannel_reportCommonReportPolicyoptional
通道数据策略 (如:高频振动采样、电流连续波形)
locationlocationCommonReportPolicyoptional
定位策略 (对应 LocationData)
log_uploadlog_uploadCommonReportPolicyoptional
日志上传策略 (包含工况、事件、日志、状态变化)
Nested Enums defined inBusinessStrategyProfile

CommonReportPolicyMessage

通用的上报策略配置

FieldAPI Name(Java/JSON)Type约束规则Description
enableenablebooloptional
--- 核心开关 --- 总开关:false 则完全不采集也不上报该类型数据
report_on_connectreport_on_connectbooloptional
--- 触发时机 --- 是否在设备通过网络握手成功(MQTT/TCP Connect)后立即触发一次上报
enable_periodic_reportenable_periodic_reportbooloptional
--- 周期性上报 --- 周期性上报总开关
report_intervalreport_intervalint32optional
周期性上报间隔 (秒) 仅在 enable_periodic_report = true 时生效 在业务层做限制:若开启但未填此值,可给予一个默认值(如 60s)
report_on_changereport_on_changebooloptional
变化驱动上报开关 (COV) 当属性值发生变化时,是否立即触发上报(打破 report_interval 的限制)
change_thresholdchange_thresholddoubleoptional
变化阈值 (绝对值或百分比) 结合 report_on_change 使用。例如设为 0.5,则数值波动超过 0.5 时才上报,过滤微小抖动。
max_silent_intervalmax_silent_intervalint32optional
保底上报间隔 / 最大静默时间 (秒) 如果采用“变化驱动上报”,且数值长时间未变化,超过此时间后强制上报一次,用于证明设备存活且传感器正常。
cache_offlinecache_offlinebooloptional
--- 弱网与可靠性处理 (Reliability) --- 断网是否缓存 (Store and Forward) 网络断开期间,产生的数据是否保存在本地持久化存储中,待网络恢复后补传
cache_ttl_secondscache_ttl_secondsint32optional
离线缓存数据的过期时间 (秒) 防止积压无意义的历史过期数据 (0 表示不过期,直到空间满)
qosqosint32optional
MQTT QoS 设置 (0, 1, 2) 针对该类数据的底层传输质量要求
require_ackrequire_ackbooloptional
因为是 MQTT,这里的 QoS 变成了“是否需要应用层 ACK” false: 类似 QoS 0 (发后即忘) true: 类似 QoS 1 (需要 Server 侧业务逻辑返回对应的 ACK 报文)
Nested Enums defined inCommonReportPolicy

DeviceNetworkReportStrategyMessage

核心:系统数据上报策略配置

FieldAPI Name(Java/JSON)Type约束规则Description
base_business_strategybase_business_strategyBusinessStrategyProfileoptional
【业务层】基准业务策略 假定设备处于最优网络(有线)下的行为准则。
system_network_configsystem_network_configSystemNetworkConfigoptional
【网络物理层及降级】系统全局网络路由与容灾配置
ethernet_configethernet_configNetworkInterfaceConfigoptional
【网络接口一】有线网络专属配置 特点:不降级(与 base 保持一致),短心跳,高带宽
cellular_configcellular_configNetworkInterfaceConfigoptional
【网络接口二】蜂窝网络(4G/NB-IoT)专属配置 特点:强降级(时间放大、丢弃高频通道),长心跳,强压缩
wifi_configwifi_configNetworkInterfaceConfigoptional
【网络接口三】Wi-Fi 网络专属配置
Nested Enums defined inDeviceNetworkReportStrategy

NetworkDowngradeRuleMessage

降级规则 (只做限制/减法,不做加强/加法)

FieldAPI Name(Java/JSON)Type约束规则Description
interval_multiplierinterval_multiplierfloatoptional
--- 频率降级 --- 时间间隔放大倍数。例如 base 的 interval 是 60s,此处是 5.0,则实际变为 300s 影响 CommonReportPolicy.report_interval 和 max_silent_interval
threshold_multiplierthreshold_multiplierfloatoptional
变化阈值放大倍数。例如 base 是温差 0.1 度上报,此处设为 5.0,则温差 0.5 度才触发 影响 CommonReportPolicy.change_threshold
disable_channel_reportdisable_channel_reportbooloptional
--- 流量/高耗能业务熔断 (针对具体业务类型) --- 蜂窝弱网下,强制禁止上报高频通道数据 (如波形/振动),直接丢弃,防止爆卡
disable_log_uploaddisable_log_uploadbooloptional
蜂窝弱网下,强制禁止日常 Log 上传 (只允许严重 Error)
force_disable_ackforce_disable_ackbooloptional
--- 可靠性降级 (省流量策略) --- 强制将所有需要应用层 ACK 的策略降级为不需要 ACK (省去 Server 返回确认包的流量)
force_qos_zeroforce_qos_zerobooloptional
强制将 QoS 降为 0 (发后即忘)
Nested Enums defined inNetworkDowngradeRule

NetworkInterfaceConfigMessage

网络接口及降级层 (Network Interface & Downgrade Layer) 描述某一个特定网卡(如4G模块、以太网口)的底层配置与降级行为

FieldAPI Name(Java/JSON)Type约束规则Description
tcp_configtcp_configTcpNetworkConfigoptional
TCP/底层协议栈配置 (网络层的参数放这里,不放业务层)
downgrade_ruledowngrade_ruleNetworkDowngradeRuleoptional
【核心机制:降级规则】 当设备使用此网络接口时,如何对 BaseBusinessStrategy 进行动态降级计算 如果此字段为空,则表示完全遵守 base_business_strategy (例如有线网)
Nested Enums defined inNetworkInterfaceConfig

SystemNetworkConfigMessage

系统底层网络管理配置 (System Routing & Fallback)

FieldAPI Name(Java/JSON)Type约束规则Description
force_network_modeforce_network_modeint32optional
当前强制使用的网络类型 (0: 自动按硬件优先级, 1: 仅有线, 2: 仅蜂窝)
flush_non_critical_cache_on_downgradeflush_non_critical_cache_on_downgradebooloptional
【容灾控制】切换到昂贵网络 (如 有线->4G) 时,是否清空非关键的历史缓存? true (推荐): 清空通道和日志等低优缓存,防止几十MB历史数据在4G下补传耗尽流量 false: 强行用4G补传所有历史数据
flush_cache_on_network_downgradeflush_cache_on_network_downgradebooloptional
【关键设计】切换网络时的缓存处理策略 场景:设备原本在有线网,缓存了 10MB 的高频通道数据没发完,突然网线断了切换到 4G。 这 10MB 数据如果直接通过 4G 发送,会消耗大量流量。 false: 切换到昂贵网络时,清空非关键缓存 (推荐) true: 无论网络如何切换,缓存数据必须补传
link_failover_strategylink_failover_strategyFailoverStrategyConfigoptional
--- 物理网卡的故障转移与回切策略 --- 控制有线网断开切4G,以及插上网线后多久切回有线。
Nested Enums defined inSystemNetworkConfig

TcpNetworkConfigMessage

TCP/协议栈底层配置 (TCP Link Layer) 该消息体用于动态下发或预置设备的TCP链路层核心参数, 控制长连接的生命周期、弱网环境下的恢复策略以及网络I/O的性能调优。

FieldAPI Name(Java/JSON)Type约束规则Description
keep_alive_interval_secondskeep_alive_interval_secondsint32optional
心跳与防抖 (Keep-Alive & Dead Peer Detection) 核心目的:及时发现假死连接,清理服务端/客户端无效句柄,防止NAT超时。 心跳包发送间隔(单位:秒)。 建议值:根据运营商NAT超时时间设置,通常移动网络建议在 30s-180s 之间。
max_missed_heartbeatsmax_missed_heartbeatsint32optional
最大允许丢失的心跳包次数。 当连续未收到响应的心跳次数达到此值时,判定连接断开,触发重连机制。 建议值:3。即连续三次心跳无响应则认为链路失效。
reconnect_base_delay_msreconnect_base_delay_msint32optional
重连的初始基础延迟时间(单位:毫秒)。 第一次重连等待时间,后续重连时间通常按指数级增长(如 base * 2^n)。
reconnect_max_delay_msreconnect_max_delay_msint32optional
重连的最大延迟时间(单位:毫秒)。 限制指数退避的上限,确保设备在长时间断网后依然能以合理频率尝试接入。 建议值:例如 300000 (5分钟) 或 3600000 (1小时),视业务实时性要求而定。
ack_timeout_msack_timeout_msint32optional
等待对端确认 (ACK) 的超时时间(单位:毫秒)。 超过此时间未收到业务层ACK,则将放入重传队列。 建议值:需大于RTT(往返时延),弱网环境下可设为 3000ms - 5000ms。
max_retry_countmax_retry_countint32optional
数据包最大重试次数。 达到最大重传次数仍未收到ACK时,丢弃该包并向上层业务报错,避免内存堆积。
aggregation_window_msaggregation_window_msint32optional
上报数据打包聚合窗口(单位:毫秒)。 发送机制:当有数据需要发送时,不立即调用 socket.send(),而是开启此时间窗口。 窗口期内产生的所有短小数据(如:温度、GPS位置、状态码)将被拼接成一个大TCP Payload 发送。 建议值:对实时性要求不高的场景可设为 200ms - 1000ms。值为 0 代表关闭聚合,即时发送。
max_frame_size_bytesmax_frame_size_bytesint32optional
单个 TCP 数据帧的最大允许体积(单位:字节)。 用于内存有限的嵌入式设备限制接收/发送 buffer 大小,防止 OOM (Out of Memory)。 如果聚合的数据超过此大小,应立即切割发送,不等待窗口结束。
compression_threshold_bytescompression_threshold_bytesint32optional
触发有效载荷压缩的体积阈值(单位:字节)。 当需要发送的 Payload 大于此值时,才启动压缩算法。因为对过小的数据压缩可能反而导致体积膨胀。 建议值:512 或 1024。
compression_algorithmcompression_algorithmcom.nexus.service.proto.enums.CompressionTypeoptional
指定的压缩算法枚举(如:GZIP, ZSTD, SNAPPY, LZ4)。 推荐嵌入式端使用 LZ4 (速度快、内存占用极小) 或 ZSTD。
Nested Enums defined inTcpNetworkConfig

CacheRuleMessage

日志缓存规整

FieldAPI Name(Java/JSON)Type约束规则Description
log_categorylog_categoryLogCategoryoptional
日志类型
max_countmax_countint32optional
条数限制
strategystrategyDropStrategyoptional
淘汰策略
Nested Enums defined inCacheRule

PeripheralsConfigMessage

交互与外设 (HMI)

FieldAPI Name(Java/JSON)Type约束规则Description
status_led_modestatus_led_modeLedBehavioroptional
状态灯模式 (枚举)
buzzer_volumebuzzer_volumeint32optional
蜂鸣器音量 (0-100)
screen_timeout_secondsscreen_timeout_secondsint32optional
熄屏时间 (秒)
timezone_offsettimezone_offsetfloatoptional
时区偏移 (UTC+8)
region_languageregion_languagestringoptional
语言地区
Nested Enums defined inPeripheralsConfig

SecurityConfigMessage

FieldAPI Name(Java/JSON)Type约束规则Description
enable_local_debugenable_local_debugbooloptional
本地调试端口开关
ota_configota_configcom.nexus.service.proto.ota.OtaConfigoptional
OTA 配置
Nested Enums defined inSecurityConfig

SystemConfigMessage

根配置对象

FieldAPI Name(Java/JSON)Type约束规则Description
report_strategyreport_strategyDeviceNetworkReportStrategyoptional
设备网络上报策略
peripherals_configperipherals_configPeripheralsConfigoptional
交互与外设 (HMI)
security_configsecurity_configSecurityConfigoptional
安全与维护 (Security & Maintenance)
cache_rulescache_rulesCacheRulerepeated
日志策略
Nested Enums defined inSystemConfig

DataTypeEnum

数据类型

NameValueDescription
TYPE_UNKNOWN0
TYPE_TELEMETRY1实时工况
TYPE_EVENT2触发事件
TYPE_LOG3日志
TYPE_STATUS4状态变化

DropStrategyEnum

NameValueDescription
DROP_OLDEST0存满后删除最旧的 (FIFO)
DROP_NEWEST1存满后丢弃新来的 (保持历史证据)
DROP_NONE2只有在 Flash 满时才通过全局策略删除

LedBehaviorEnum

LED灯交互

NameValueDescription
LED_ALWAYS_ON0常亮
LED_BLINK_SLOW1呼吸/慢闪
LED_BLINK_FAST2报警/快闪
LED_OFF3全部关闭

LogCategoryEnum

日志类型枚举

NameValueDescription
LOG_UNKNOWN0
LOG_SYSTEM1OS系统日志 (syslog/dmesg)
LOG_BUSINESS2业务运行日志
LOG_COMM3通信报文日志
LOG_SECURITY4安全与审计日志
LOG_CRASH5崩溃堆栈日志 (Dump/Tombstone)

ActionMessage

具体的控制动作

FieldAPI Name(Java/JSON)Type约束规则Description
module_controlsmodule_controlscom.nexus.service.proto.channel.ChannelActionUnitrepeated
通道/开关的快捷控制指令 (针对性强,高频操作)
Nested Enums defined inAction

BinaryCronScheduleMessage

二进制轻量级 Cron (覆盖10%的复杂场景,如仅限每月的15号和30号执行) 位掩码(Bitmask),1代表选中。0代表忽略该维度的限制。 第 N 位对应数值 N (例如 1月使用 bit 1,即 1<<1)

FieldAPI Name(Java/JSON)Type约束规则Description
month_maskmonth_maskuint32optional
bit1-12 表示 1-12月 (0x1FFE)
day_maskday_maskuint32optional
bit1-31 表示 1-31日 (0xFFFFFFFE)
dow_maskdow_maskuint32optional
bit1-7 表示 周一至周日 (0xFE)
hour_maskhour_maskuint32optional
bit0-23 表示 0-23小时 (0xFFFFFF)
minute_maskminute_maskuint64optional
bit0-59 表示 0-59分钟 (0x0FFFFFFFFFFFFFFF)
Nested Enums defined inBinaryCronSchedule

DelayScheduleMessage

倒计时任务 (注意:断电会重置,MCU只需放入内存中的软件定时器即可)

FieldAPI Name(Java/JSON)Type约束规则Description
delay_secondsdelay_secondsuint32optional
下发时告诉设备:距离现在还有多少秒执行
Nested Enums defined inDelaySchedule

TaskConfigMessage

单个任务配置

FieldAPI Name(Java/JSON)Type约束规则Description
enabledenabledbooloptional
任务启用/禁用开关
task_idtask_idstringoptional
任务ID (建议1-255,MCU内用数组管理)
actionactionActionoptional
将动作独立成结构体,方便扩展参数
delay_schdelay_schDelaySchedule
仅适用于临时倒计时
time_of_day_schtime_of_day_schTimeOfDaySchedule
普通周期定时 (极简)
cron_schcron_schBinaryCronSchedule
复杂周期定时 (位运算)
Nested Enums defined inTaskConfig

TaskSettingsMessage

统一下发/上报的定时任务集合

FieldAPI Name(Java/JSON)Type约束规则Description
taskstasksTaskConfigrepeated
设备的定时任务列表
Nested Enums defined inTaskSettings

TimeOfDayScheduleMessage

每日的固定时刻循环 (MCU最爱,覆盖90%场景)

FieldAPI Name(Java/JSON)Type约束规则Description
hourhouruint32optional
0-23
minuteminuteuint32optional
0-59
dow_maskdow_maskuint32
星期掩码: bit0=周一, bit1=周二 ... bit6=周日. 全为0或 0x7F(127) 表示每天执行
Nested Enums defined inTimeOfDaySchedule

ClearEnergyDataParamsMessage

具体场景参数定义 场景A:擦除数据参数 (可精细控制擦除范围)

FieldAPI Name(Java/JSON)Type约束规则Description
data_typesdata_typesClearDataTyperepeated
清除目标 (Target Scope) 要擦除的数据类型列表
start_timestampstart_timestampint64optional
时间过滤 (Time Range Filter) 引入时间区间,比单纯的 before_timestamp 更灵活。 对于历史曲线数据,通常只删除[start_timestamp, end_timestamp] 范围内的数据。 如果均为 0,结合具体的 data_type,可能意味着"清除全部此类型历史记录"。
end_timestampend_timestampint64optional
only_clear_uploadedonly_clear_uploadedbooloptional
安全与状态确认 (Safety & Acknowledgement) 【重要】安全删除机制:是否仅清除“已被云端确认接收(ACKed)”的数据? 如果为 true,设备在清理 load_profile 时,会保留那些还没来得及上报的断点续传数据,防止数据永久丢失。
reset_max_demandreset_max_demandbooloptional
计量特有:需量复位标志 (Demand Reset) 需量复位是一个特殊的计量业务,通常将当月最大需量归零,并将当前值转存为上月历史需量。
force_reset_accumulatorsforce_reset_accumulatorsbooloptional
计量特有:累加器/总电能清零危险操作确认 防止误操作。上位机下发清零总电能等敏感操作时,必须将此位设为 true,否则设备拒绝执行。
auth_codeauth_codestringoptional
授权码 / 密码 / 令牌 (Authorization Code) 很多计量规范要求,清空“有功总电能”或“防窃电事件”不仅需要协议层的鉴权,指令参数载荷中还必须携带特定的设备管理员密码或随机质询Token。
Nested Enums defined inClearEnergyDataParams

CommandParamsMessage

多态的指令参数 (Command Params)

FieldAPI Name(Java/JSON)Type约束规则Description
clear_energy_data_paramsclear_energy_data_paramsClearEnergyDataParamsoptional
对应清除计量/状态数据
wipe_logs_paramswipe_logs_paramsWipeLogsParamsoptional
对应擦除日志
restart_comm_paramsrestart_comm_paramsRestartCommParamsoptional
对应网络/通信重启
factory_reset_paramsfactory_reset_paramsFactoryResetParamsoptional
对应恢复出厂设置 (可在此无限扩展其他复杂指令的参数)
Nested Enums defined inCommandParams

CommandTargetMessage

明确操作层级与寻址对象 (Target Scope) 解决“指令下发给谁”的问题(整体设备、某个模块、还是某个通道)

FieldAPI Name(Java/JSON)Type约束规则Description
scopescopeCommandTarget.Scopeoptional
指令作用域
module_serial_numbermodule_serial_numberstringoptional
当 scope 为 MODULE 或 CHANNEL 时必填。对应 DeviceModule.serial_number
channel_indexchannel_indexint32repeated
通道索引列表
Nested Enums defined inCommandTarget

DeviceCommandRequestMessage

指令请求主体 [服务端 -> 设备] 指令下发请求

FieldAPI Name(Java/JSON)Type约束规则Description
command_targetcommand_targetCommandTargetoptional
指令作用域
system_command_typesystem_command_typeSystemCommandTypeoptional
指令类型
command_paramscommand_paramsCommandParamsoptional
指令附加参数
Nested Enums defined inDeviceCommandRequest

DeviceOperationReportMessage

设备异步任务状态上报

FieldAPI Name(Java/JSON)Type约束规则Description
task_idtask_idstringoptional
核心:任务的唯一追踪标识!(服务端下发指令时生成的 UUID) 如果没有这个,用户连续点两次重启,平台就不知道是哪次的响应了
system_command_typesystem_command_typeSystemCommandTypeoptional
任务类型:OTA, RESTART, LOG_UPLOAD...
statusstatusOperationStatusoptional
状态,例如 PENDING, IN_PROGRESS, SUCCESS, FAILED
messagemessagestringoptional
状态详情描述或错误信息
Nested Enums defined inDeviceOperationReport

FactoryResetParamsMessage

场景D:恢复出厂设置参数

FieldAPI Name(Java/JSON)Type约束规则Description
retain_network_configretain_network_configbooloptional
恢复出厂时,是否保留网络配置 (防止恢复出厂后直接失联)
retain_binding_inforetain_binding_infobooloptional
恢复出厂时,是否保留配网/绑定信息
Nested Enums defined inFactoryResetParams

RestartCommParamsMessage

场景C:重启通信模块的参数

FieldAPI Name(Java/JSON)Type约束规则Description
force_killforce_killbooloptional
是否进行强杀 (Force Kill) 进程再重启,还是优雅重启
Nested Enums defined inRestartCommParams

WipeLogsParamsMessage

场景B:擦除多种日志参数

FieldAPI Name(Java/JSON)Type约束规则Description
clear_allclear_allbooloptional
是否一键清除所有类型日志
target_categoriestarget_categoriescom.nexus.service.proto.config.LogCategoryrepeated
指定要擦除的 N 种日志类型。如果为空,则根据 clear_all 判断
retain_last_n_daysretain_last_n_daysint64optional
同样可以支持按时间清理 保留最近N天的日志,其他的删掉
Nested Enums defined inWipeLogsParams

ClearDataTypeEnum

计量/嵌入式场景下的可清除数据类型枚举

NameValueDescription
CLEAR_DATA_TYPE_UNSPECIFIED0
CLEAR_DATA_TYPE_ENERGY_REGISTERS1累加寄存器数据 (Accumulated Registers) 例如:正向有功总电能、无功电能、各费率(尖峰平谷)电能。 注意:在正式计量设备中,这类数据通常被法律/标准要求不可擦除,或仅在特定工厂模式/插上硬件编程跳线时才允许清零。
CLEAR_DATA_TYPE_MAX_DEMAND2需量数据 (Max Demand) 例如:当月最大有功需量及发生时间。通常在每月结算日会复位,或者通过指令手动复位。
CLEAR_DATA_TYPE_LOAD_PROFILE3负荷曲线/周期冻结数据 (Load Profile / Interval Data) 例如:每15分钟、1小时存储一次的电压、电流、功率、电能快照数据。占用存储空间最大,最常被按时间点清理。
CLEAR_DATA_TYPE_BILLING_PROFILE4结算/日冻结数据 (Billing / Daily Freeze Data) 例如:每日零点或每月结算日的电能底码快照。
CLEAR_DATA_TYPE_STATISTICS5统计与极值数据 (Statistics & Extremes) 例如:日电压合格率、当日最大/最小电流及发生时间等统计类数据。
CLEAR_DATA_TYPE_GRID_EVENTS6业务事件与告警 (Business Events & Alarms) 例如:过压、欠压、失流、逆相序等电网事件。
CLEAR_DATA_TYPE_TAMPER_EVENTS7安全与防窃电事件 (Security & Tamper Events) 例如:开箱记录、磁场干扰记录、密码错误记录。通常安全级别极高。

ScopeEnum

指令作用域

NameValueDescription
SCOPE_UNSPECIFIED0
SCOPE_DEVICE1全局/设备级 (Device Level) 作用于整个设备主控本身 (例如:主控全局重启、主控OTA、获取主控日志)
SCOPE_DEVICE_ALL_MODULES2作用于设备下的【所有模块】 (例如:一键休眠所有模块)
SCOPE_DEVICE_ALL_CHANNELS3作用于设备下的【所有通道】 (例如:全局紧急停机,关闭所有模块的所有通道)
SCOPE_SPECIFIC_MODULE21模块级 (Module Level) 仅作用于指定的模块【硬件本身】 (例如:重启某模块、升级某模块固件) 寻址要求:需要填写 module_serial_number
SCOPE_MODULE_ALL_CHANNELS22作用于指定模块下的【所有通道】 (例如:一键开启某模块下的所有通道输出) 寻址要求:需要填写 module_serial_number
SCOPE_SPECIFIC_CHANNELS31通道级 (Channel Level) 作用于指定模块下的【指定通道】 (例如:设置某模块某几个通道的电压) 寻址要求:需要填写 module_serial_number + channels 列表

OperationStatusEnum

NameValueDescription
UNKNOWN0
ACCEPTED1设备收到指令,准备执行 (准备重启/准备下载)
IN_PROGRESS2执行中
SUCCESS3成功
FAILED4失败

SystemCommandTypeEnum

定义系统级指令类型

NameValueDescription
CMD_UNSPECIFIED00: 预留
CMD_RESTART_SOFTWARE11-19: 重启与电源管理 (Reboot & Power) 仅重启当前应用软件/服务进程 (Soft Restart)
CMD_REBOOT_OS2操作系统层面的重启 (Warm Boot)
CMD_REBOOT_HARDWARE3硬件电源复位 (Hard Reboot/Cold Boot)
CMD_REBOOT_TO_BOOTLOADER4进入引导加载模式 (Bootloader/Fastboot)
CMD_REBOOT_TO_RECOVERY5进入恢复模式 (Recovery Mode)
CMD_SHUTDOWN6关机 (Power Off)
CMD_RESTART_COMM_ALL2020-39: 通信模块控制 (Communication) 重启所有通信堆栈 (通用)
CMD_RESTART_CELLULAR21重启蜂窝网模块 (4G/5G/LTE/Modem)
CMD_RESTART_WIFI22重启 Wi-Fi 模块
CMD_RESTART_ETHERNET23重启以太网 (Ethernet)
CMD_RESTART_BLUETOOTH24重启蓝牙 (Bluetooth)
CMD_TOGGLE_AIRPLANE_MODE25切换飞行模式 (ON/OFF 逻辑通常由参数携带或拆分指令)
CMD_FACTORY_RESET4040-59: 数据与存储管理 (Data & Storage) 恢复出厂设置 (擦除所有用户数据、配置、应用)
CMD_WIPE_CACHE41仅擦除缓存数据 (Cache/Temporary files)
CMD_WIPE_LOGS42仅擦除日志文件 (Logs)
CMD_RESET_CONFIG43仅恢复默认系统配置 (Reset Settings, 保留用户文件)
CMD_FORMAT_EXTERNAL_STORAGE44格式化外部存储 (如 SD 卡/U 盘)
CMD_TOGGLE_REMOTE_DEBUG6160-79: 系统维护与诊断 (Maintenance & Diagnostic) 开启/关闭 远程调试 (ADB/SSH)
CMD_SYSTEM_SELF_CHECK62触发系统自检 (Self-Test)
CMD_DUMP_DIAGNOSTIC_INFO63导出系统诊断日志包 (Dump state/Logcat)
CMD_CLEAR_ENERGY_ALL8080-99: 电能与计量管理 (Energy & Metering) 清除所有电能数据 (复位总累计电量,通常需要极高权限/出厂级操作)

DeviceInfoMessage

设备的静态属性

FieldAPI Name(Java/JSON)Type约束规则Description
serial_numberserial_numberstringoptional
=== 核心身份 (Identity) === 设备唯一序列号 (通常印在机身贴纸上)
product_modelproduct_modelstringoptional
产品型号 (商业名称,如 "SmartCamera-Pro")
manufacturermanufacturerstringoptional
厂商名称 (OEM/ODM 标识)
device_typedevice_typestringoptional
设备类型/品类 (如 "gateway", "sensor", "switch")
firmware_versionfirmware_versionstringoptional
=== 软硬件版本 (Versioning) - OTA的关键依据 === 固件版本 (应用层) e.g., "v2.1.0"
hardware_versionhardware_versionstringoptional
硬件/PCB版本 (决定了能刷哪个系列的固件) e.g., "Rev.B"
bootloader_versionbootloader_versionstringoptional
Bootloader版本 (底层引导程序)
firmware_version_codefirmware_version_codeint32optional
固件版本代码 (机器可读的整数格式)
software_build_infosoftware_build_infostringoptional
软件构建时间(用于排查Bug)
hardware_capabilitieshardware_capabilitiesHardwareCapabilitiesoptional
=== 硬件资源与能力 (Capabilities) === 描述设备具备哪些外设,前端可根据此动态渲染界面
production_dateproduction_dateint64optional
=== 生产制造信息 (Production) === 出厂日期 (Unix Timestamp)
batch_numberbatch_numberstringoptional
生产批次号 (Batch Number)
Nested Enums defined inDeviceInfo

HardwareCapabilitiesMessage

硬件资源能力聚合集 描述设备具备的所有物理特性,用于前端动态渲染 UI 模块

FieldAPI Name(Java/JSON)Type约束规则Description
connectivity_typeconnectivity_typecom.nexus.service.proto.enums.ConnectivityTyperepeated
支持的通信连接列表
power_sourcespower_sourcescom.nexus.service.proto.enums.PowerSourceTyperepeated
具备的电源方案列表
storagesstoragescom.nexus.service.proto.enums.StorageTyperepeated
具备的存储媒介列表
peripheralsperipheralscom.nexus.service.proto.enums.PeripheralTyperepeated
具备的外设与传感器列表
io_interfacesio_interfacescom.nexus.service.proto.enums.IoInterfaceTyperepeated
具备的工业 IO 接口列表
Nested Enums defined inHardwareCapabilities

DeviceHardwareProfileMessage

设备硬件参数/额定值总配置 电气 com.nexus.service.proto.config.ElectricalRatedConfig electrical = 1; // 网络 NetworkRatedConfig network = 3; // 指示 IndicatorConfig indicator = 4; // 本体 BodyConfig body = 5; // 外设 PeripheralConfig peripheral = 6; // 性能 PerformanceConfig performance = 7;

FieldAPI Name(Java/JSON)Type约束规则Description
Nested Enums defined inDeviceHardwareProfile

DoorLockActionMessage

门锁控制指令

FieldAPI Name(Java/JSON)Type约束规则Description
switch_stateswitch_statecom.nexus.service.proto.enums.SwitchStateoptional
unlock_duration_msunlock_duration_msint32optional
可选: 解锁保持时间(毫秒),比如开门3秒后自动落锁
operate_user_idoperate_user_idstringoptional
操作人ID
Nested Enums defined inDoorLockAction

ElectricalMeasureMessage

--- 汇总/全局数据 (无论DC/AC都适用的总值) ---

FieldAPI Name(Java/JSON)Type约束规则Description
voltagevoltagefloatoptional
基础测量总值 (DC/AC 均适用) 电压 (V)(保留:小数点后两位)
currentcurrentfloatoptional
电流 (A)(保留:小数点后两位)
active_poweractive_powerfloatoptional
有功功率 (W)(保留:小数点后两位)
reactive_energyreactive_energyfloatoptional
正向累加无功电量 (kVarh)
energydeprecatedenergyfloatoptional
正向累计有功电量 (kWh) 历史背景:曾因 float 精度溢出拟废弃。 [现已兼容] 目前在 MapStruct 转换层已处理小数点精度问题,老业务可正常使用;但新业务仍建议优先使用 active_energy。
active_energyactive_energydoubleoptional
正向累计有功电量 (kWh) double 高精度版本。与 energy 字段数据同步,可根据业务对精度的敏感度选择性使用。
frequencyfrequencyfloatoptional
--- AC 特有全局数据 --- 频率 (Hz)
leakage_currentleakage_currentfloatoptional
漏电流 (mA)
ambient_temperatureambient_temperaturefloatoptional
--- 环境/其他全局数据 --- 环境温度/模块温度 (非线缆温度)
neutral_line_tempneutral_line_tempfloatoptional
N线单独处理 (因为N线通常只有温度,没有电压) N线温度
neutral_currentneutral_currentfloatoptional
N线电流 (A) (三相不平衡分析极其重要)
phase_detailsphase_detailsPhaseLineDetailrepeated
--- 详情/分相数据 --- - DC: 可能只有 1 个 (为空,直接看上面的) - AC单相: 可能只有 1 个 (L线) (为空,直接看上面的) - AC三相: 会有 3 个 (A, B, C)
reactive_powerreactive_powerfloatoptional
无功功率 (Var)
apparent_powerapparent_powerfloatoptional
视在功率 (VA)
power_factorpower_factorfloatoptional
功率因数 (PF)
actual_power_typeactual_power_typecom.nexus.service.proto.enums.PowerTypeoptional
--- 运行时属性 (Runtime Context) --- 当前实际运行的电源类型 (明确这一帧数据是交流还是直流) 场景:针对交直流自适应的通道,明确告诉下游消费者当前数据该按 AC 还是 DC 解析。 取值建议:POWER_TYPE_AC, POWER_TYPE_DC
Nested Enums defined inElectricalMeasure

ElectricalNodeMessage

定义电气拓扑中的一个节点 (可能是输入、模块或输出通道)

FieldAPI Name(Java/JSON)Type约束规则Description
node_idnode_idstringoptional
--- 标识信息 --- 唯一ID (e.g., "PSU_1", "Outlet_4")
display_namedisplay_namestringoptional
显示名称
node_typenode_typecom.nexus.service.proto.enums.NodeTypeoptional
--- 节点类型 --- (输入/输出/模块/通道)
PowerSupplySourcePowerSupplySourcecom.nexus.service.proto.enums.PowerSupplySourceoptional
--- 电源类型 ---
electrical_specelectrical_specElectricalSpecoptional
电气规格 (如:额定电压、最大电流)
measuremeasureElectricalMeasureoptional
实时数据 (当前电压、电流、功率等)
childrenchildrenElectricalNoderepeated
--- 递归层级结构 --- 用于构建电气物理拓扑树(如:主进线 -> 整流模块 -> 多路输出通道)。
Nested Enums defined inElectricalNode

ElectricalSpecMessage

电气规格 (Electrical Specification) 标识该物理端口/芯片/端子的【物理硬件极限与容忍度】。 作用:纯粹的物理约束。用于配置下发时的安全边界校验(越限拦截),防止配置了超出硬件极限的业务。

FieldAPI Name(Java/JSON)Type约束规则Description
voltage_levelvoltage_levelcom.nexus.service.proto.enums.VoltageLeveloptional
电压等级 (定义它是12V的口,还是220V的口)
rated_currentrated_currentfloatoptional
标称电流
rated_powerrated_powerfloatoptional
标称功率
min_voltagemin_voltagefloatoptional
具体的最小电压范围(针对宽压设备)
max_voltagemax_voltagefloatoptional
具体的最大电压范围(针对宽压设备)
is_input_adaptiveis_input_adaptivebooloptional
是否为“输入决定输出”模式 (母线直通模式) 如果为 true,说明通道自身无变压/整流能力,输出完全跟随 power_inputs。
power_typepower_typecom.nexus.service.proto.enums.PowerTypeoptional
电源类型:明确是直流、交流还是交直流通用 物理电源容忍类型:明确该端子在物理上允许通过直流、交流还是交直流通用(如机械干接点)。 重点:如果这里是 通用,不代表业务上它是通用,业务属性由 ChannelType 决定。
Nested Enums defined inElectricalSpec

PhaseLineDetailMessage

相线详细信息消息 描述单条相线的具体电气参数,包括电压、电流、功率、功率因数和温度等

FieldAPI Name(Java/JSON)Type约束规则Description
phase_typephase_typecom.nexus.service.proto.enums.PhaseTypeoptional
标识名称
voltagevoltagefloatoptional
基础电气参数 电压 (V)
currentcurrentfloatoptional
电流 (A)
active_poweractive_powerfloatoptional
功率相关 (三相电往往区分视在和有功) 有功功率 (W)
apparent_powerapparent_powerfloatoptional
视在功率 (VA)
power_factorpower_factorfloatoptional
功率因数 (0.0 - 1.0)
temperaturetemperaturefloatoptional
温度监控 线缆/端子温度 (°C)
Nested Enums defined inPhaseLineDetail

PowerCapacityMessage

功率/负载容量限制 (Power Capacity / Limit) 用于描述物理介质(如PCB、总线、散热系统)的物理承载极限 特征:与电压无关,纯粹的物理量限制

FieldAPI Name(Java/JSON)Type约束规则Description
max_total_currentmax_total_currentfloatoptional
总最大电流 (A)
max_total_powermax_total_powerfloatoptional
总最大功率 (W)
Nested Enums defined inPowerCapacity

PowerInputBankMessage

电源输入定义

FieldAPI Name(Java/JSON)Type约束规则Description
ididint32optional
--- 身份识别 --- 组ID/索引 (例如: 0, 1 或 "AC_MAIN", "DC_AUX")
namenamestringoptional
组名称 (例如: "强电输入A路", "辅助电源输入")
specspecElectricalSpecoptional
--- 规格与测量 --- 该路输入的静态规格 (电压等级: AC220V, 最大电流: 16A)
measuremeasureElectricalMeasureoptional
该路输入的实时测量 (电压: 218V, 电流: 2.5A, 漏电: 0mA)
input_statusinput_statuscom.nexus.service.proto.enums.PowerInputStatusoptional
--- 状态 --- 该路输入的物理状态 (例如:输入掉电、输入保险丝熔断)
Nested Enums defined inPowerInputBank

ActiveMonitorStateMessage

== 南向主动监控任务状态集合 (服务端/云端查询入口) == [作用] 硬件设备需要维护这棵状态树,当云端要求同步状态时下发该结构。

FieldAPI Name(Java/JSON)Type约束规则Description
resultsresultsTaskResultrepeated
所有的探测结果统一通过这一个列表上报/查询。 业务层遍历此列表,根据 task_id 或 category 处理即可。
Nested Enums defined inActiveMonitorState

BatteryStateMessage

电池状态的聚合

FieldAPI Name(Java/JSON)Type约束规则Description
percentagepercentageint32optional
电池电量百分比 (0-100)
voltagevoltagefloatoptional
电池电压(单位:V)
Nested Enums defined inBatteryState

CameraTaskResultMessage

安防摄像机任务专属指标

FieldAPI Name(Java/JSON)Type约束规则Description
snapshot_urlsnapshot_urlstringoptional
如果任务是 TASK_SNAPSHOT(抓图),这里可以返回抓取到的图片在网关本地的路径或上传云端后的 URL
vendor_error_codevendor_error_codestringoptional
视频流诊断相关的私有协议错误码 (如海康 ISAPI 的错误响应码)
Nested Enums defined inCameraTaskResult

CellularStateMessage

蜂窝状态

FieldAPI Name(Java/JSON)Type约束规则Description
link_statuslink_statuscom.nexus.service.proto.enums.LinkStatusoptional
链路与连通性 (网络接口层) 描述模组与基站之间的射频附着情况。 LINK_UP: 已附着基站 / LINK_DOWN: 脱网
reachabilityreachabilitycom.nexus.service.proto.enums.InternetReachabilityoptional
互联网可达性 (端到端通信是否正常) 描述端到端的网络连通性 (End-to-End Connectivity)。 代表 PPP 拨号或 PDN 会话已建立,且能够与目标互联网服务器正常通信。
ipv4_configipv4_configcom.nexus.service.proto.config.Ipv4Configoptional
网络配置 (IP路由层) (蜂窝网也有内网IP和DNS) 包含蜂窝网下发的内网 IP 地址、子网掩码、网关以及 DNS 服务器地址。 即便在移动内网环境下,也需要这些配置来执行路由决策。
cellular_identitycellular_identitycom.nexus.service.proto.common.CellularIdentityoptional
移动网络运营商-身份与归属 (SIM卡) 包含 SIM 卡的唯一标识(ICCID/IMSI)、运营商名称(如中国移动)、 接入技术类型(LTE, NR 5G)以及当前的 PLMN 编号。
cellular_signal_qualitycellular_signal_qualitycom.nexus.service.proto.common.CellularSignalQualityoptional
综合信号质量 (射频层) 包含 RSRP、RSRQ、RSSI 及 SNR 等关键物理层参数。 用于评估当前环境的无线干扰情况及覆盖强度。
cellular_modem_statecellular_modem_statecom.nexus.service.proto.common.CellularModemStateoptional
嵌套底层的模组基带诊断数据 当网络出现问题时,下钻到这里查看具体根因
Nested Enums defined inCellularState

EthernetStateMessage

有线以太网

FieldAPI Name(Java/JSON)Type约束规则Description
link_statuslink_statuscom.nexus.service.proto.enums.LinkStatusoptional
物理连接状态 (LinkStatus: DISCONNECTED / CONNECTED)
reachabilityreachabilitycom.nexus.service.proto.enums.InternetReachabilityoptional
互联网可达性 (Reachability)
ipv4_configipv4_configcom.nexus.service.proto.config.Ipv4Configoptional
具体的 IP/Mac/DNS 信息
current_speed_mbpscurrent_speed_mbpsint32optional
[作用] 当前实际协商成功的物理速率 (Mbps) [场景] 比如千兆网口变成 100 甚至 10,说明网线可能有几根芯断了或接触不良 (降速降级)。
expected_speed_mbpsexpected_speed_mbpsint32optional
[作用] 硬件理论上期望达到的速率 (Mbps) [场景] 填 1000。和 current_speed_mbps 对比,如果不一致就可以触发“网口降速告警”。
duplex_modeduplex_modecom.nexus.service.proto.channel.PortDuplexoptional
[作用] 当前网卡的双工模式 [场景] 填 "Full"(全双工) 或 "Half"(半双工)。如果变半双工会导致严重丢包,提示运维检查交换机或网线。
Nested Enums defined inEthernetState

HttpTaskResultMessage

HTTP 任务专属指标

FieldAPI Name(Java/JSON)Type约束规则Description
actual_status_codeactual_status_codeint32optional
实际响应的 HTTP 状态码 (例如预期200,实际返回了 503)
response_summaryresponse_summarystringoptional
响应头或 Body 提取的特定业务校验码 (按需使用)
Nested Enums defined inHttpTaskResult

NetworkStateMessage

网络状态

FieldAPI Name(Java/JSON)Type约束规则Description
active_network_typeactive_network_typecom.nexus.service.proto.enums.ConnectivityTypeoptional
当前主要使用的网络类型 (正在走流量的那个)
connection_statusconnection_statuscom.nexus.service.proto.enums.ConnectionStatusoptional
综合连接状态 (在线/离线/受限)
ethernetethernetEthernetStateoptional
--- 以太网详情 --- 包含 RJ45 的插拔状态、IP、MAC 等
cellular_statecellular_stateCellularStateoptional
--- 蜂窝网络详情 --- 包含 SIM 卡状态、信号强度、基站信息、IP 等
wifiwifiWifiStateoptional
--- WiFi 详情 (如果有) ---
Nested Enums defined inNetworkState

PingTaskResultMessage

Ping 任务专属指标

FieldAPI Name(Java/JSON)Type约束规则Description
packet_loss_ratepacket_loss_ratefloatoptional
丢包率 (0-100)
jitter_msjitter_msint32optional
网络抖动 (毫秒)
Nested Enums defined inPingTaskResult

SshTaskResultMessage

SSH 任务专属指标

FieldAPI Name(Java/JSON)Type约束规则Description
auth_fail_reasonauth_fail_reasonstringoptional
具体的 SSH 阶段错误类型,例如:认证失败、密钥不匹配、握手失败
Nested Enums defined inSshTaskResult

SystemStateMessage

系统资源与状态的聚合

FieldAPI Name(Java/JSON)Type约束规则Description
uptime_secondsuptime_secondsuint64optional
本次系统运行时间 (System Uptime) 单位:秒 含义:自上次上电或重启以来经过的秒数。 特性:每次重启必定归零。 作用:用于运维分析设备是否稳定、是否刚刚发生过重启。
mcu_statemcu_statecom.nexus.service.proto.common.McuStateoptional
internal_flashinternal_flashcom.nexus.service.proto.common.ResourceCapacityoptional
=== 存储资源规格 === 内部 Flash (存放代码)
internal_raminternal_ramcom.nexus.service.proto.common.ResourceCapacityoptional
内部 SRAM (用于动态分配的自由空间)
storage_memorystorage_memorycom.nexus.service.proto.common.ResourceCapacityoptional
[外部 Flash/SD卡] 用于存日志、离线数据。与上面的 flash_size_kb (代码区) 完全不同。
Nested Enums defined inSystemState

TaskResultMessage

== 统一的单任务运行结果 ==

FieldAPI Name(Java/JSON)Type约束规则Description
task_idtask_idstringoptional
--- 1. 基础公共属性 (所有任务都有的概念) --- 对应的任务 ID
categorycategoryMonitorTaskCategoryoptional
该任务的分类,方便反序列化或展示时做路由
statestateMonitorTaskStateoptional
当前任务状态 (红绿灯指标)
latency_mslatency_msint32optional
实时延迟 (毫秒)。所有网络任务基本都有耗时概念(RTT/握手耗时/TTFB)
last_success_timestamplast_success_timestampint64optional
上次探测成功的时间戳 (Unix Timestamp 毫秒)
error_messageerror_messagestringoptional
具体的错误原因摘要 (例如 "Connection Refused", "HTTP 404 Not Found")
ping_extping_extPingTaskResultoptional
--- 2. 任务特有扩展属性 (多态实现) --- Ping 任务专属指标
tcp_exttcp_extTcpTaskResultoptional
TCP 任务专属指标
http_exthttp_extHttpTaskResultoptional
HTTP 任务专属指标
ssh_extssh_extSshTaskResultoptional
SSH 任务专属指标
camera_extcamera_extCameraTaskResultoptional
target_endpointtarget_endpointcom.nexus.service.proto.config.TargetEndpointoptional
业务统一标准寻址方式
Nested Enums defined inTaskResult

TcpTaskResultMessage

TCP 任务专属指标 TCP 目前基础的 latency_ms 和 state 已经够用。 保留一个空结构作为占位,方便未来扩展 (比如增加 TLS 证书过期时间检测结果)

FieldAPI Name(Java/JSON)Type约束规则Description
Nested Enums defined inTcpTaskResult

WifiStateMessage

WiFi 状态

FieldAPI Name(Java/JSON)Type约束规则Description
link_statuslink_statuscom.nexus.service.proto.enums.LinkStatusoptional
物理连接状态 (LinkStatus: DISCONNECTED / CONNECTED)
reachabilityreachabilitycom.nexus.service.proto.enums.InternetReachabilityoptional
互联网可达性 (Reachability)
ipv4_configipv4_configcom.nexus.service.proto.config.Ipv4Configoptional
具体的 IP/Mac/DNS 信息 (复用上面的 message)
wifi_configwifi_configcom.nexus.service.proto.config.WifiConfigoptional
当前连接的 WiFi 网络信息
Nested Enums defined inWifiState

MonitorTaskCategoryEnum

== 任务类型枚举 (用于业务层快速判别) ==

NameValueDescription
CATEGORY_UNSPECIFIED0
CATEGORY_PING1
CATEGORY_SSH2
CATEGORY_TCP3
CATEGORY_HTTP4
CATEGORY_CAMERA5
CATEGORY_SNMP6

MonitorTaskStateEnum

== 探测任务状态枚举 (通用抽象) ==

NameValueDescription
TASK_STATE_UNKNOWN0
TASK_STATE_ONLINE1探测成功/在线 (Ping通、TCP握手成功、SSH登录成功、HTTP返回200等)
TASK_STATE_OFFLINE2探测失败/离线 (明确拒绝连接、HTTP 502、摄像机认证失败等)
TASK_STATE_TIMEOUT3探测超时 (未收到任何响应)
TASK_STATE_ERROR4配置错误或其他系统异常 (如 DNS 解析失败、配置缺失)

AmbientSensorMessage

温湿度传感器详情

FieldAPI Name(Java/JSON)Type约束规则Description
supportedsupportedbooloptional
功能支持位
statusstatuscom.nexus.service.proto.enums.ComponentStatusoptional
传感器综合状态 (NORMAL, FAULT, DISCONNECTED, DISABLED等) 逻辑:如果状态不是 NORMAL/ALARM,下方的数值字段应被视为无效
temperaturetemperaturefloatoptional
环境温度 (单位: ℃) 逻辑: 1. 如果此字段不存在,说明硬件或固件不支持温度监测 2. 如果此字段存在,且 status 为 NORMAL,则为有效读数
humidityhumidityfloatoptional
环境湿度 (单位: %RH) 逻辑: 1. 如果此字段不存在,说明硬件或固件不支持湿度监测 (例如你提到的“仅温度”场景) 2. 如果此字段存在,且 status 为 NORMAL,则为有效读数
Nested Enums defined inAmbientSensor

DoorModuleMessage

--- 门禁系统配置 ---

FieldAPI Name(Java/JSON)Type约束规则Description
contact_supportedcontact_supportedbooloptional
门磁监测使能 (决定前端是否展示该门磁模块)
door_statedoor_statecom.nexus.service.proto.enums.BinaryStatusoptional
门体物理状态 (OPEN/CLOSED)
lock_supportedlock_supportedbooloptional
门锁功能使能 (控制前端是否展示开门按钮)
lock_statelock_statecom.nexus.service.proto.enums.DoorLockStateoptional
门锁机械状态:锁舌是否弹出 (枚举: LOCKED, UNLOCKED, JAMMED-卡死)
tamper_switch_triggeredtamper_switch_triggeredbooloptional
安全防护:防拆开关 (true: 被触发/被撬, false: 正常)
Nested Enums defined inDoorModule

EnvironmentalSensorsMessage

环境感知子系统

FieldAPI Name(Java/JSON)Type约束规则Description
ambientambientAmbientSensoroptional
温湿度监测子系统 如果嵌入式端不支持温湿度功能,此字段不赋值(null/absent)
water_leakwater_leakWaterLeakSensoroptional
水浸监测子系统
Nested Enums defined inEnvironmentalSensors

FanModuleMessage

--- 风扇模块定义 ---

FieldAPI Name(Java/JSON)Type约束规则Description
indexindexint32optional
风扇模块索引 (设备可能存在多个风扇)
statestatecom.nexus.service.proto.enums.BinaryStatusoptional
风扇运行状态 (RUNNING, STOPPED)
statusstatuscom.nexus.service.proto.enums.ComponentStatusoptional
风扇运行健康状态 (正常/故障等)
speed_rpmspeed_rpmint32optional
当前风扇转速 (RPM)
start_temp_thresholdstart_temp_thresholdfloatoptional
--- 温控配置 --- 自动温控参数 (当 control_mode == AUTO 时生效) 风扇启动触发温度 (单位: 摄氏度) 当温度 >= 此值时,风扇开启
stop_temp_diffstop_temp_difffloatoptional
风扇停止温差 (单位: 摄氏度) 逻辑:当温度 <= (start_temp_threshold - stop_temp_diff) 时,风扇关闭 这种设计可以有效防止风扇在临界点频繁启停
current_tempcurrent_tempfloatoptional
当前实测温度 (可选:关联到风扇感应器的环境温度)
control_modecontrol_modeFanControlModeoptional
--- 控制配置 (读写/Read-Write) --- 控制模式:决定了风扇听谁的 模式定义:AUTO (温控), MANUAL (手动控制), FORCE_OFF (强制关闭)
manual_target_speed_pctmanual_target_speed_pctint32optional
手动控制参数 (当 control_mode == MANUAL 时生效) 手动设定的目标转速百分比 (0-100) 或具体 RPM
auto_full_speed_tempauto_full_speed_tempfloatoptional
满载温度 (可选:达到此温度时风扇全速运行,实现平滑调速曲线)
Nested Enums defined inFanModule

FanSystemMessage

--- 风扇系统配置 ---

FieldAPI Name(Java/JSON)Type约束规则Description
supportedsupportedbooloptional
全局支持位:整个设备是否具备风扇系统能力
fansfansFanModulerepeated
具体的风扇实例列表
Nested Enums defined inFanSystem

MaintenanceSensorsMessage

设备自身维护状态 (防雷、风扇、灯光)

FieldAPI Name(Java/JSON)Type约束规则Description
surge_protection_enabledsurge_protection_enabledbooloptional
--- 防雷系统 --- 防雷监测功能使能/是否存在 (true: 有防雷器且监测中, false: 无)
surge_protection_effectivesurge_protection_effectivebooloptional
防雷器是否有效 (true: 正常/有效, false: 失效/已熔断) 逻辑:只有当 surge_protection_enabled = true 时,此字段才有意义
surge_countsurge_countint32optional
防雷动作次数
fill_light_enabledfill_light_enabledbooloptional
--- 补光/灯光系统 --- 补光功能使能 (设备是否有灯)
fill_light_onfill_light_onbooloptional
补光灯是否开启 (true: 亮, false: 灭)
fill_light_healthfill_light_healthcom.nexus.service.proto.enums.ComponentStatusoptional
补光灯故障状态
ambient_luxambient_luxfloatoptional
环境光照度
signal_light_colorsignal_light_colorSignalLightColoroptional
--- 信号指示 --- 当前信号灯颜色
Nested Enums defined inMaintenanceSensors

SecuritySensorsMessage

安防与物理姿态 (倾斜、振动、雷达)

FieldAPI Name(Java/JSON)Type约束规则Description
tilt_monitor_enabledtilt_monitor_enabledbooloptional
--- 姿态监测 --- 倾斜监测使能
tilt_detectedtilt_detectedbooloptional
是否检测到倾斜告警
tilt_angle_xtilt_angle_xfloatoptional
倾斜角度
tilt_angle_ytilt_angle_yfloatoptional
radar_monitor_enabledradar_monitor_enabledbooloptional
--- 雷达监测 --- 雷达监测使能
radar_object_detectedradar_object_detectedbooloptional
雷达是否检测到目标
radar_distanceradar_distancefloatoptional
雷达距离 (单位: 米)
Nested Enums defined inSecuritySensors

SensorStateMessage

聚合消息:传感器总览

FieldAPI Name(Java/JSON)Type约束规则Description
environmentenvironmentEnvironmentalSensorsoptional
环境相关数据
securitysecuritySecuritySensorsoptional
安防与物理姿态数据
maintenancemaintenanceMaintenanceSensorsoptional
设备维护与外设数据
doordoorDoorModuleoptional
门禁系统数据
fanfanFanSystemoptional
风扇模块数据
vibration_configvibration_configVibrationConfigoptional
振动监测配置
Nested Enums defined inSensorState

VibrationConfigMessage

振动监测配置:用于设置防抖和灵敏度

FieldAPI Name(Java/JSON)Type约束规则Description
supportedsupportedbooloptional
功能支持位 用于前端 UI 判断是否显示该配置项:true 表示设备支持振动监测,false 表示隐藏或置灰
enabledenabledbooloptional
振动监测总开关
thresholdthresholdfloatoptional
触发阈值 (单位: m/s^2) 只有振动强度超过此值,防抖计时器才会启动
debounce_on_msdebounce_on_msuint32optional
开启防抖时间 (单位: 毫秒 ms) 振动持续超过此时间才判定为“检测到振动” (例如:防止手指轻碰干扰)
debounce_off_msdebounce_off_msuint32optional
消失防抖时间 (单位: 毫秒 ms) 振动消失后需持续此时间,才判定振动真正结束 (防止由于振动波形起伏导致的反复跳变)
sensitivitysensitivitycom.nexus.service.proto.enums.SensitivityLeveloptional
灵敏度等级 (枚举: 低/中/高)
Nested Enums defined inVibrationConfig

WaterLeakSensorMessage

水浸传感器详情

FieldAPI Name(Java/JSON)Type约束规则Description
is_supportedis_supportedbooloptional
功能支持位
statusstatuscom.nexus.service.proto.enums.ComponentStatusoptional
传感器硬件状态
detecteddetectedbooloptional
业务告警状态:是否检测到漏水 (true: 有漏水, false: 无)
Nested Enums defined inWaterLeakSensor

FanControlModeEnum

NameValueDescription
FAN_MODE_AUTO0自动温控模式
FAN_MODE_MANUAL1手动调速模式
FAN_MODE_FORCE_OFF2强制关闭模式(优先级最高)

SignalLightColorEnum

枚举定义 (标准化状态) 信号灯颜色/状态

NameValueDescription
LIGHT_COLOR_OFF0熄灭
LIGHT_COLOR_GREEN1绿灯 (正常)
LIGHT_COLOR_RED2红灯 (告警)
LIGHT_COLOR_YELLOW3黄灯 (警告/维护)

RatedValueItemMessage

通用额定值单元 包含当前生效值和系统建议的默认值

FieldAPI Name(Java/JSON)Type约束规则Description
valuevaluefloatoptional
当前设定的值 [读写]:下发配置时,设备只认这个字段。
default_valuedefault_valuefloatoptional
系统出厂默认值 [只读]:仅在设备上报时有效,云端下发时固件应忽略此字段。
Nested Enums defined inRatedValueItem

AlarmActionEnum

告警动作

NameValueDescription
ALARM_ACTION_TRIGGER0触发告警 (Start/Raise)
ALARM_ACTION_RECOVER1恢复告警 (Clear/Restore)
ALARM_ACTION_UPGRADE2 告警升级 (Upgrade) 表示告警依然存在,但严重程度加重(例如从 2 级变为 3 级)。 业务逻辑:不触发恢复动作,直接更新当前告警实例的等级,保持告警持续时间的连续性。
ALARM_ACTION_DOWNGRADE3 告警降级 (Downgrade) 表示告警依然存在,但严重程度减轻(例如从 3 级变为 2 级)。 业务逻辑:通常用于情况有所好转但未完全恢复正常的场景,避免误触发“已修复”的相关逻辑。
ALARM_ACTION_DOWNGRADE_OLD4旧的没有时间改正,遗留问题

BinaryStatusEnum

通用二元状态 注意:尽量避免使用过于通用的枚举,但在某些特定场景(如旧系统兼容)下保留

NameValueDescription
FAILURE0失败、错误、关闭
SUCCESS1成功、正确、开启

ConnectivityTypeEnum

通信连接方式类型

NameValueDescription
CONN_UNSPECIFIED0未指定 --- 蜂窝网络细分 ---
CONN_CELLULAR_2G12G (GSM/GPRS/EDGE)
CONN_CELLULAR_3G23G (WCDMA/CDMA2000)
CONN_CELLULAR_4G34G (LTE Cat 4/6+, EC20等)
CONN_CELLULAR_4G_CAT144G Cat 1 (中低速率,如 EC800M/EC200U)
CONN_CELLULAR_5G55G NR
CONN_CELLULAR_NB_IOT6NB-IoT
CONN_WIFI7WiFi 无线网络
CONN_BLUETOOTH8蓝牙/低功耗蓝牙 (BLE)
CONN_ETHERNET9以太网/有线网络
CONN_LORA10LoRa 长距离无线通信
CONN_ZIGBEE11Zigbee 无线组网
CONN_RS48512RS485 串行总线
CONN_CAN13CAN 局域网总线

DataUnitEnum

定义数据单位枚举

NameValueDescription
D_UNIT_UNSPECIFIED0
D_UNIT_BYTE1--- 存储容量 (Storage Capacity) ---
D_UNIT_KB2
D_UNIT_MB3
D_UNIT_GB4
D_UNIT_TB5
D_UNIT_BPS10--- 传输速率 (Throughput / Speed) --- bit per second
D_UNIT_KBPS11
D_UNIT_MBPS12
D_UNIT_KBIT13某些场景下使用的千比特单位
D_UNIT_PERCENT20--- 抽象指标 (Metrics) --- 百分比 (%)

ElectricalUnitEnum

NameValueDescription
E_UNIT_UNSPECIFIED0
E_UNIT_VOLT1伏特 (V)
E_UNIT_MILLIVOLT2毫伏 (mV)
E_UNIT_KILOVOLT3千伏 (kV)
E_UNIT_AMPERE4安培 (A)
E_UNIT_MILLIAMPERE5毫安 (mA)
E_UNIT_WATT6瓦特 (W)
E_UNIT_KILOWATT7千瓦 (kW)
E_UNIT_HERTZ8赫兹 (Hz)

IoInterfaceTypeEnum

工业电气 IO 接口类型

NameValueDescription
IO_UNSPECIFIED0未指定
IO_RELAY1继电器输出 (Relay)
IO_DI2数字量输入 (DI)
IO_DO3数字量输出 (DO)
IO_AI4模拟量输入 (AI - 如 4-20mA)

MeasurementUnitEnum

物模型物理量/电气量/网络量测量单位枚举

NameValueDescription
UNIT_UNSPECIFIED0默认值,未指定单位 (无量纲/单纯计数时使用)
UNIT_VOLT1电压 (Voltage) V (伏特)
UNIT_MILLI_VOLT2mV (毫伏)
UNIT_KILOVOLT3kV (千伏)
UNIT_AMPERE10电流 (Current) A (安培)
UNIT_MILLI_AMPERE11mA (毫安 - 常用于漏电流)
UNIT_MICRO_AMPERE12μA (微安)
UNIT_KILO_AMPERE13kA (千安)
UNIT_WATT20功率 (Power) W (瓦特)
UNIT_KILOWATT21kW (千瓦)
UNIT_MEGAWATT22MW (兆瓦)
UNIT_VOLT_AMPERE25VA (伏安)
UNIT_KILOVOLT_AMPERE26kVA (千伏安)
UNIT_VAR28var (乏)
UNIT_KILOVAR29kvar (千乏)
UNIT_WATT_HOUR30电能/耗电量 (Energy) Wh (瓦时)
UNIT_KILOWATT_HOUR31kWh (千瓦时/度)
UNIT_HERTZ40频率 (Frequency) Hz (赫兹)
UNIT_KILOHERTZ41kHz (千赫兹)
UNIT_OHM50电阻/阻抗 (Resistance) Ω (欧姆)
UNIT_KILOOHM51kΩ (千欧)
UNIT_MEGAOHM52MΩ (兆欧)
UNIT_CELSIUS60环境与物理参数 °C (摄氏度)
UNIT_FAHRENHEIT61°F (华氏度)
UNIT_KELVIN62K (开尔文)
UNIT_HUMIDITY65%RH (相对湿度)
UNIT_MILLISECOND70时间 (Time) ms (毫秒)
UNIT_SECOND71s (秒)
UNIT_MINUTE72min (分钟)
UNIT_HOUR73h (小时)
UNIT_PERCENT80比例与其它 (Ratio & Others) % (百分比 - 用于丢包率、THD、占空比等)
UNIT_PPM81ppm (百万分比)
UNIT_DBM90通信与信号 (Signal) dBm (分贝毫瓦 - 绝对信号强度)
UNIT_DB91dB (分贝 - 相对信号强度/信噪比 SNR)
UNIT_BPS100网络速率 (Data Rate/Bandwidth) bps (比特每秒)
UNIT_KBPS101Kbps (千比特每秒)
UNIT_MBPS102Mbps (兆比特每秒)
UNIT_BYTE110数据容量/流量 (Data Volume/Traffic) Byte (字节)
UNIT_KB111KB (千字节)
UNIT_MB112MB (兆字节)
UNIT_GB113GB (吉字节)
UNIT_CUSTOM999预留自定义单位扩展

OnlineReasonEnum

上线原因枚举 (上层业务视角 / 网络通信视角) 由应用程序结合 Flash 中保存的业务标志位(如 OTA_FLAG)或网络状态机来综合判断。

NameValueDescription
ONLINE_REASON_UNSPECIFIED00: 未知或未指定(Protobuf 推荐规范,0 为默认值)
COLD_BOOT1正常上电与休眠 首次上电/冷启动 (通常伴随硬件断电后重新通电)
WAKE_UP_FROM_SLEEP2从深度休眠中唤醒 (低功耗设备常见,如 NB-IoT 水表每天唤醒一次)
NETWORK_RECOVERY10网络与通信层恢复 网络信号恢复 (如:进出隧道、地下室,设备本身未重启,仅仅是 Socket 断开重连)
COMM_MODULE_RESTART11通信模组重启 (如:4G/WiFi 模组死机被 MCU 主动复位后重连)
NETWORK_CHANNEL_SWITCH12切换网络通道 (如:WiFi 断开回退到 4G,或主卡切换到备用卡)
DOMAIN_SWITCH13切换域名/服务器地址 (因主域名DNS解析失败或服务端负载均衡下发指令导致切换)
FALLBACK_DOMAIN_RECOVERY14灾备/兜底域名连接 (Disaster Recovery / Fallback) 设备的常规主从域名均无法连接(可能是配错了,也可能是DNS污染),退避到代码固化的最后备用域名(救砖通道)上线
SOFTWARE_RESTART20系统与软件重启 软件重启 (Soft Reset,代码逻辑主动触发的重启,如修改了某些非即时生效的配置)
SYSTEM_RESTART21系统/硬件重启 (Hard Reset,如按下了Reset按键,或看门狗触发)
CRASH_RECOVERY22系统异常崩溃恢复 (Kernel Panic, Hard Fault, OOM 等导致的被动重启)
OTA_UPGRADE_COMPLETE30业务与运维管理 OTA 升级完成后的首次上线 (用于服务端闭环判定 OTA 流程彻底成功)
REMOTE_COMMAND_RECONNECT31远程指令强制重连 (如服务端下发了强制设备重新初始化的指令)
ROUTINE_PERIODIC_RECONNECT32周期性例行重连 (有些设备设定每隔 X 天强制断开重连一次,以刷新网络状态或获取最新配置)
FACTORY_RESET_COMPLETE33恢复出厂设置后的首次上线

PeripheralTypeEnum

外设与传感器类型

NameValueDescription
PERI_UNSPECIFIED0未指定
PERI_SCREEN1LCD/OLED 显示屏
PERI_TOUCH2电容或电阻触摸屏
PERI_LED3LED 状态指示灯
PERI_BUZZER4有源或无源蜂鸣器
PERI_BUTTON5物理输入按键
PERI_GPS10GPS/北斗定位模块
PERI_IMU11惯性测量单元 (加速度/陀螺仪)
PERI_TEMP_HUM12温湿度传感器
PERI_CAMERA13视频监控摄像头
PERI_RTC14硬件实时时钟 (RTC)

PowerInputStatusEnum

电源输入的物理健康/监测状态

NameValueDescription
POWER_INPUT_STATUS_UNKNOWN0未知状态
POWER_INPUT_STATUS_NORMAL1正常 (输入在规格范围内)
POWER_INPUT_STATUS_LOSS2输入掉电 (No Power / Power Loss)
POWER_INPUT_STATUS_FUSE_OPEN3保险丝熔断 / 断路器跳闸 (Fuse Blown / Breaker Tripped)
POWER_INPUT_STATUS_ABNORMAL4输入异常 (电压/频率超出允许范围,但未完全掉电)

PowerOnStateEnum

定义上电状态的枚举

NameValueDescription
POWER_ON_OFF0保持关闭状态
POWER_ON_RESTORE1恢复为上电前的状态
POWER_ON_ON2强制开启状态

PowerSourceTypeEnum

电源供应方案类型

NameValueDescription
PWR_UNSPECIFIED0未指定
PWR_BACKUP_BATTERY1备用锂电池供电
PWR_SOLAR2太阳能/光伏供电
PWR_BACKUP_CAPACITOR3超级电容方案 (支持掉电维持/上报)
PWR_NON_RECHARGE4一次性电池 (不可充电)
PWR_POE5以太网供电 (PoE)

ShutdownReasonEnum

--- 安全关机原因枚举 ---

NameValueDescription
SHUTDOWN_REASON_UNKNOWN0
POWER_DEPLETED1备用电容/电池电量耗尽 (物理极限)
PLATFORM_COMMAND2平台下发关机指令
THERMAL_PROTECTION3过热自我保护关机
SYSTEM_FAULT4严重系统故障触发的安全关机

StorageTypeEnum

存储资源类型

NameValueDescription
STR_UNSPECIFIED0未指定
STR_SD_CARD1可插拔 SD/TF 卡
STR_EMMC2板载 eMMC 闪存
STR_SPI_FLASH3SPI Flash 存储器
STR_USB_DISK4外部 USB 磁盘/U盘

SwitchStateEnum

公共开关状态枚举

NameValueDescription
SWITCH_OFF0建议加上前缀避免命名冲突,或者保持 OFF = 0
SWITCH_ON1通电/打开
SWITCH_RESTART2重启

TemperatureUnitEnum

NameValueDescription
TEMP_UNIT_UNSPECIFIED0
TEMP_UNIT_CELSIUS1摄氏度 (℃)
TEMP_UNIT_FAHRENHEIT2华氏度 (℉)
TEMP_UNIT_KELVIN3开尔文 (K)

TimeUnitEnum

NameValueDescription
T_UNIT_UNSPECIFIED0
T_UNIT_SECOND1秒 (s)
T_UNIT_MILLISECOND2毫秒 (ms)
T_UNIT_MINUTE3分 (min)
T_UNIT_HOUR4小时 (h)

TriggerSourceEnum

定义触发源枚举 详细列举了所有可能导致设备状态改变的来源

NameValueDescription
TRIGGER_SOURCE_UNSPECIFIED0未知或未指定
TRIGGER_SOURCE_WEB_MANAGEMENT10--- 远程/云端触发 (10-19) --- Web 管理后台触发(通常是管理员在 PC 端运营平台操作)
TRIGGER_SOURCE_MOBILE_APP11移动端 App 触发(用户通过手机 iOS/Android App 手动操作)
TRIGGER_SOURCE_THIRD_PARTY_CLOUD12第三方云端对接(如:小爱同学、天猫精灵、或是企业 API 合作伙伴)
TRIGGER_SOURCE_CLOUD_RULE_ENGINE13云端自动化规则(IoT 平台配置的联锁、定时任务、场景模式等)
TRIGGER_SOURCE_LOCAL_PHYSICAL20--- 设备本地/物理触发 (20-29) --- 本地物理操作(设备自带的按钮、旋钮、触摸屏面板等直接交互)
TRIGGER_SOURCE_LOCAL_CONSOLE21本地调试接口(通过串口 RS232/485、USB 接口或本地 Web 页面配置)
TRIGGER_SOURCE_EDGE_LOGIC22边缘端/网关本地联动(无需经过云端,在网关或边缘计算节点触发的逻辑)
TRIGGER_SOURCE_SYSTEM_PROTECTION30--- 自动化与系统逻辑 (30-39) --- 设备内部保护机制(硬件自保护:过热、过压、短路、异常心跳自动复位等)
TRIGGER_SOURCE_STATE_SYNC31状态同步更新(由于父设备或关联设备状态变化导致的级联更新)

UpdateReasonEnum

定义状态变更/属性上报的触发原因

NameValueDescription
UPDATE_REASON_UNSPECIFIED00 是 proto3 枚举的默认值,通常保留给未指定或未知的原因
UPDATE_REASON_SYSTEM_BOOT1系统级别 (System Level) 设备刚上电或重启后的首次全量上报
UPDATE_REASON_NETWORK_RECOVERY2设备断网重连后,将离线期间积压的或最新的状态进行同步
UPDATE_REASON_PERIODIC_TIMER10周期与数据驱动 (Periodic & Data Driven) 程序内部定时器触发的周期性常态上报
UPDATE_REASON_VALUE_CHANGED11属性数值发生变化 (COV - Change of Value),触发主动上报
UPDATE_REASON_PHYSICAL_SWITCH20本地干预 (Local Interaction) 本地人员按下了物理开关或旋钮
UPDATE_REASON_HMI_PANEL21本地 HMI(人机交互触摸屏)上的操作改变了配置
UPDATE_REASON_SERIAL_COMMAND22现场人员通过 RS485/RS232/USB 等本地串口下发的调试指令
UPDATE_REASON_REMOTE_COMMAND30远程控制 (Remote Control) 响应来自服务端的远程指令 (RPC / Downlink) 后上报最新状态
UPDATE_REASON_LOCAL_NETWORK_COMMAND31响应来自局域网内其他上位机或主控设备的指令
UPDATE_REASON_RULE_ENGINE_TRIGGER40自动化与保护逻辑 (Automation & Protection) 本地边缘计算或联动规则引擎触发 (例:环境光变暗触发开灯)
UPDATE_REASON_PROTECTION_FAULT41设备底层程序的安全保护机制介入 (例:过流、短路、超温引发的自动停机断电)

WorkModeEnum

工作模式

NameValueDescription
MODE_NORMAL0默认标准模式
MODE_POWER_SAVING1低功耗省电模式
MODE_PERFORMANCE2高性能模式
MODE_STEALTH3隐蔽模式(关闭声光)
MODE_MAINTENANCE4维护模式(仅响应指令)

CompressionTypeEnum

载荷压缩算法

NameValueDescription
NONE0不使用任何压缩。这是默认值。
GZIP1GZIP (Zlib) 格式。 权衡: 在 MCU 上需要较多的 RAM (滑动窗口) 和 CPU 计算时间。 嵌入式实现: miniz
LZ42LZ4 格式。 优点: 极高的压缩和解压速度,资源消耗均衡。 权衡: 压缩率略低于 GZIP。
HEATSHRINK3极端条件 Heatshrink 格式。 优点: RAM 占用极低 (可低至数百字节),专为内存极度受限的 MCU 设计。 权衡: 压缩和解压速度相对较慢。
ZSTD4Zstandard (Zstd)。 优点:支持字典压缩,针对小包和结构化数据有奇效。 现状:嵌入式移植稍显复杂,作为未来储备。

AuthMethodEnum

认证方式

NameValueDescription
AUTH_METHOD_UNKNOWN0
PASSWORD1
SIGNATURE2

AuthStatusEnum

登录/认证相关的状态码

NameValueDescription
AUTH_FAILURE0
AUTH_SUCCESS1
AUTH_USER_NOT_FOUND1001用户不存在
AUTH_PASSWORD_ERROR1002密码错误
AUTH_CAPTCHA_ERROR1003验证码错误 (短信/图形验证码)
AUTH_CAPTCHA_EXPIRED1004验证码已过期
AUTH_ACCOUNT_BANNED2001账号被禁用/封禁 (黑名单)
AUTH_ACCOUNT_LOCKED2002账号被锁定 (通常因为多次尝试失败)
AUTH_ACCOUNT_INACTIVE2003账号未激活 (例如需要邮箱验证)
AUTH_ACCOUNT_DELETED2004账号已注销
AUTH_TOKEN_INVALID3001Token 无效 (签名错误或格式错误)
AUTH_TOKEN_EXPIRED3002Token 已过期
AUTH_TOKEN_KICKED3003Token 被顶替 (在其他设备登录)
AUTH_LOGIN_FREQUENCY_LIMIT4001登录过于频繁 (限流)
AUTH_DEVICE_NOT_ALLOWED4002设备未授权/禁止该设备登录
AUTH_VERSION_TOO_LOW4003客户端版本过低,强制升级
AUTH_UNKNOWN_ERROR9999未知认证错误

ComponentStatusEnum

通用组件健康状态

NameValueDescription
STATUS_FAULT0故障/损坏
STATUS_NORMAL1正常工作
STATUS_DISCONNECTED2离线/未连接
STATUS_ALARM3处于告警状态 (如检测到水浸)

ConnectionStatusEnum

在线状态 (对应PM需求:在线/离线)

NameValueDescription
STATUS_UNKNOWN0
STATUS_ONLINE1设备已连接且互联网可达
STATUS_OFFLINE2物理连接断开或无法获取IP
STATUS_LIMITED3有物理连接但无法访问外网 (内网模式)

DoorLockStateEnum

门舌物理状态

NameValueDescription
DOOR_LOCK_CLOSED0
DOOR_LOCK_OPEN1
DOOR_LOCK_JAMMED2卡死

InternetReachabilityEnum

网络连接状态

NameValueDescription
REACHABILITY_UNREACHABLE0无法访问外网
REACHABILITY_REACHABLE1可以访问外网

LinkStatusEnum

物理连接状态

NameValueDescription
LINK_DISCONNECTED0物理连接断开 (网线拔出/WiFi未连接)
LINK_CONNECTED1物理连接正常

RebootReasonEnum

复位/重启原因枚举 (对应 GD32 RCU 寄存器状态)

NameValueDescription
REBOOT_UNKNOWN0
REBOOT_POWER_ON1上电复位 (POR/PDR) - 真正意义上的物理断电后重新通电
REBOOT_WATCHDOG2看门狗复位 (IWDG/WWDG) - 硬件/独立看门狗超时,意味着程序曾发生跑飞、死锁或严重阻塞
REBOOT_SOFTWARE3软件复位 (NVIC System Reset) - 代码逻辑主动调用系统复位 (常见于OTA完成、修改关键参数后要求重启)
REBOOT_PIN_RESET4外部引脚复位 (NRST Pin) - 物理复位按键被按下,或外部看门狗/电源管理芯片拉低了复位引脚
REBOOT_LOW_POWER5低功耗唤醒复位

SensitivityLevelEnum

灵敏度等级 (可选:低、中、高)

NameValueDescription
LOW0
MEDIUM1
HIGH2

MonitorTaskTypeEnum

主动监控任务类型枚举 采用分段预留编号的设计,方便未来按类别扩展

NameValueDescription
MONITOR_TASK_TYPE_UNSPECIFIED0[必填] 0 必须作为默认/未知状态,Protobuf v3 规范要求
MONITOR_TASK_TYPE_PING1[1-9] 基础网络与传输层探测 (L3/L4) ICMP Ping 存活探测 (对应 PingTask)
MONITOR_TASK_TYPE_TCP2TCP 端口连通性探测 (对应 TcpTask)
MONITOR_TASK_TYPE_UDP3UDP 端口/报文探测 (未来扩展:很多工控或Syslog使用UDP)
MONITOR_TASK_TYPE_TRACEROUTE4路由追踪 (未来扩展:网络路径故障诊断 MTR/Traceroute)
MONITOR_TASK_TYPE_DNS5DNS 递归/迭代解析测试 (未来扩展:检测DNS劫持或解析延迟)
MONITOR_TASK_TYPE_HTTP10[10-19] 通用应用层探测 (L7) HTTP/HTTPS 接口及状态码探测 (对应 HttpTask)
MONITOR_TASK_TYPE_SSH11SSH 端口连通及模拟登录测试 (对应 SshTarget)
MONITOR_TASK_TYPE_TLS_CERT12TLS/SSL 证书校验 (未来扩展:监控网关或下游设备的证书是否快过期)
MONITOR_TASK_TYPE_NTP13NTP 时间同步探测 (未来扩展:边缘节点时间不准会导致很多加密认证失败)
MONITOR_TASK_TYPE_FTP14FTP/SFTP 连通性测试 (未来扩展)
MONITOR_TASK_TYPE_WEBSOCKET15WebSocket 长连接测试 (未来扩展)
MONITOR_TASK_TYPE_CAMERA20[20-29] 物联网(IoT)与工控协议特定探测 视频安防设备探测 (对应 CameraTask,如检查 RTSP/ONVIF 流)
MONITOR_TASK_TYPE_MODBUS21Modbus 协议探测 (你在注释中提到了工控机 502 端口,未来可能不仅测 TCP 通不通,还发 Modbus 报文测)
MONITOR_TASK_TYPE_MQTT22MQTT 连通性及 Topic 订阅发布测试 (物联网主流协议)
MONITOR_TASK_TYPE_OPC_UA23OPC UA 工业自动化协议探测
MONITOR_TASK_TYPE_SNMP24SNMP 网络设备状态主动抓取 (交换机/路由器监控)
MONITOR_TASK_TYPE_DATABASE30[30-39] 复杂/高级业务探测 数据库连通性探测 (如 MySQL, Redis 等 Ping 测试)
MONITOR_TASK_TYPE_CUSTOM_SCRIPT31自定义脚本探测 (网关下发一段 Python/Shell 脚本执行并解析 Exit Code)

EncryptionTypeEnum

定义加密算法类型

NameValueDescription
ENCRYPT_NONE0明文传输
AES_ECB1不推荐,安全性较低,不需要IV
AES_CBC2
AES_GCM3
SM44国密算法

MessageTypeEnum

定义消息类型枚举 优化策略:枚举 ID 与 WrapperMessage.payload 中的 field ID 保持严格一致,便于代码解析映射

NameValueDescription
MESSAGE_TYPE_UNKNOWN00 保留为未知/无效类型 未知消息类型
LOGIN_REQUEST51--- 会话与基础 (50-69) --- 设备登录认证请求
LOGIN_RESPONSE52设备登录认证响应
HEARTBEAT_REQUEST61链路心跳保活请求
HEARTBEAT_RESPONSE62链路心跳响应
SET_PROPERTIES_REQUEST100--- 属性控制与管理 (100-199) --- [下行] 设置设备属性/配置
SET_PROPERTIES_RESPONSE101[上行] 设置指令的执行结果
GET_PROPERTIES_REQUEST102[下行] 查询设备属性状态
GET_PROPERTIES_RESPONSE103[上行] 返回查询到的属性值
EVENT_REPORT200--- 事件与上报 (200-399) --- 事件上报(报警、故障等)
ATTRIBUTE_UPDATE_REQUEST201[上行] 设备主动上报单点属性变更
PROPERTY_REPORT300属性/遥测数据上报(原 ThingModelReport)
GENERIC_RESPONSE500--- 通用结构与透传 (500-699) --- 通用响应消息 (对应 ResponseBody)
BINARY_PAYLOAD600二进制数据透传 (对应 BinaryPayload)
OTA_UPGRADE_NOTIFICATION700--- OTA 固件升级 (700-799) --- [下行] 服务端推送升级通知
OTA_UPGRADE_RESPONSE701[上行] 设备确认升级通知
OTA_PROGRESS_REPORT702[上行] 升级进度/状态上报
OTA_CHUNK_REQUEST703[上行] 请求固件分片 (Pull模式)
OTA_CHUNK_RESPONSE704[下行] 下发固件分片数据
OTA_CONFIG_UPDATE705[下行] 更新 OTA 策略配置

AuthModeEnum

认证模式

NameValueDescription
AUTH_NONE0不验证(仅加密,不防中间人攻击,不推荐)
AUTH_SERVER_ONLY1单向认证:设备校验服务端证书(标准 HTTPS 模式)
AUTH_MUTUAL2双向认证 (mTLS):服务端也要校验设备证书(金融/安防级安全)

FailoverModeEnum

== 枚举定义 (建议提取到 common 包) == 故障转移模式

NameValueDescription
FAILOVER_MODE_COLD_STANDBY0冷备模式:主链路断开后才拨号连接备用链路(省流量,切换有延迟)
FAILOVER_MODE_HOT_STANDBY1热备模式:双链路同时保持在线,随时切换(高可用,消耗双份资源)
FAILOVER_MODE_SINGLE_LINK2锁定模式:强制仅使用主配置链路,禁用故障转移功能

IpAssignmentMethodEnum

IP 分配方式

NameValueDescription
IP_METHOD_DHCP0自动获取
IP_METHOD_STATIC1静态指定

NetworkRegStatusEnum

网络注册状态

NameValueDescription
REG_UNKNOWN0未知
REG_NOT_REGISTERED1未注册,且当前没有在搜网 (通常是飞行模式或射频关闭)
REG_SEARCHING2正在搜索网络 (设备一直在搜网说明附近无基站或天线脱落)
REG_REGISTERED_HOME3已注册,本地网络 (正常状态)
REG_DENIED4注册被拒绝 (基站明确拒绝,通常结合 code 字段使用,如位置区不允许)
REG_ROAMING5已注册,漫游网络 (跨境物流、跨国设备常用)

ServerWorkModeEnum

服务器工作模式

NameValueDescription
WORK_MODE_SINGLE0单服模式:只连接一个主地址
WORK_MODE_MASTER_SLAVE1主从模式:主故障时切备,通常指服务器地址的灾备
WORK_MODE_DUPLEX2双工模式:双通道同时发送或双服务器同时在线

SimStatusEnum

NameValueDescription
SIM_UNKNOWN0未知状态:系统尚未完成初始化,或无法获取当前 SIM 卡状态
SIM_READY1就绪:SIM 卡已插入且解锁,工作正常,可以进行网络通信
SIM_NOT_INSERTED2未插入:检测到插槽中没有安装 SIM 卡
SIM_PIN_REQUIRED3需要 PIN 码:SIM 卡已锁定,需要用户输入 PIN 码才能解锁使用
SIM_ERROR4错误:SIM 卡无效、损坏、硬件故障或被永久封锁(如 PUK 错误次数超限)
SIM_ARREARS20--- 扩展的业务与订阅状态 --- --- 20-29: 运营管控状态 (服务可用性视角) --- [欠费]:因账户余额不足导致的服务中断(通常缴费后可立即自动恢复)
SIM_ADMIN_SUSPENDED21[行政停机/主动停机]:用户通过平台主动挂失、或者因为设备违规移机被平台下指令停机
SIM_DATA_QUOTA_EXCEEDED22[流量熔断]:当月流量消耗触发了套餐阈值,被运营商暂时关闭数据功能
SIM_DEACTIVATED30--- 30-39: 生命周期与合规状态 (业务开通视角) --- [未激活]:卡片已出库,但尚未在运营商侧激活(通常为测试期或沉默期)
SIM_UNREGISTERED31[未实名]:由于法律法规要求,卡片未完成个人或企业实名登记,被运营商禁止联网
SIM_BINDING_MISMATCH40--- 40-49: 安全与绑定状态 --- [机卡绑定失败]:检测到 IMEI 与 ICCID 不匹配,被运营商/平台锁卡
SIM_PUK_REQUIRED41需要 PUK 码:PIN 码错误多次,卡片被锁定,需 PUK 解锁(比 PIN 更严重)
SIM_NETWORK_LOCKED42网络锁定 (Network Lock):SIM 卡与当前运营商网络不匹配(如定制机插了竞品卡)
SIM_PROFILE_SWITCHING50--- 50-59: eSIM / vSIM (云卡/软卡) 特有状态 --- [Profile 切换中]:eSIM 正在通过 OTA 方式下载或切换运营商 Profile (此时网络会短暂中断)
SIM_VSIM_AUTHENTICATING51[云卡鉴权中]:vSIM (无物理卡) 模式下,正在与云端 Seed 卡服务器进行鉴权并获取本地网络密钥
SIM_ROAMING_RESTRICTED60--- 60-69: 漫游与网络策略状态 --- [禁止漫游]:卡片开通了网络限制,设备处于漫游地,被运营商策略拦截无法入网
SIM_TEST_PERIOD_EXPIRED61[测试期到期/沉默期到期]:物联网卡特有的生命周期。出厂测试流量耗尽,或静默期结束但未激活,导致的断网

SignatureTypeEnum

签名算法类型

NameValueDescription
SIGN_NONE0默认:不签名 (用于调试或内网低安全环境)
SHA2561普通 SHA256 (仅做完整性校验,防数据损坏,不防篡改) 计算方式: sha256("tag=val&...")
HMAC_SHA2562HMAC-SHA256 (完整性 + 身份认证,防篡改) 计算方式: hmac_sha256("tag=val&...", secret)
MD53MD5 (仅做完整性校验,防数据损坏,不防篡改)

AlarmSeverityEnum

定义告警等级枚举

NameValueDescription
SEVERITY_UNKNOWN0
SEVERITY_LEVEL_111级
SEVERITY_LEVEL_222级
SEVERITY_LEVEL_333级

AlarmThresholdTypeEnum

告警阈值判定类型 (Alarm Threshold Type) 用于说明告警是如何被计算出来的。

NameValueDescription
THRESHOLD_TYPE_UNKNOWN0未知类型
THRESHOLD_TYPE_ABSOLUTE1 绝对值判定 (Absolute Threshold) 场景:温度超过 50°C,电压超过 250V。 逻辑:actual_value > limit_value (limit_value 是固定配置的)。
THRESHOLD_TYPE_COEFFICIENT2 倍数/系数判定 (Coefficient/Multiple Threshold) 场景:电流超过 1.1 倍额定值。 逻辑:limit_value = rated_reference * parameter_snapshot (例如 10A * 1.1)。
THRESHOLD_TYPE_PERCENTAGE3 百分比判定 (Percentage Threshold) 场景:电池电量低于 20%,或者电压波动超过额定值的 10%。 逻辑:通常用于表示相对偏移量。

ElectricalFaultTypeEnum

电气故障类型枚举

NameValueDescription
FAULT_TYPE_UNKNOWN0
OVER_VOLTAGE1--- 基础电压类 --- 适用:DC过压、AC火线过压
UNDER_VOLTAGE2适用:DC欠压、AC火线欠压
VOLTAGE_LOST3适用:市电停电
OVER_CURRENT4--- 基础电流类 --- 适用:DC过流、AC过流
LEAKAGE_CURRENT5适用:漏电 (AC/DC 通用)
OVER_LOAD_POWER6--- 功率/负载类 --- 适用:整机过载、单通道过载 (强调功率 Power 超过限制)
LOAD_MISMATCH7适用:负载不匹配
OVER_TEMPERATURE8--- 温度/环境类 --- 适用:DC过温、AC火线过温、AC零线过温、环境过温
PHASE_LOSS9--- 高级/波形类 (AC特有,但定义为通用类型) --- 适用:缺相
FREQUENCY_ABNORMAL10适用:频率异常
ARC_FAULT11适用:电弧故障
AC_INPUT_ABNORMAL12适用:交流供电异常
AC_OUTPUT_ABNORMAL13适用:交流输出异常
DC_OUTPUT_ABNORMAL31--- 直流输出及电源模块类 (DC & Power Module) --- 适用:直流输出异常
DC_SHORT_CIRCUIT32适用:直流短路 (极度严重的故障,需区别于普通过流)
POLARITY_REVERSED33适用:极性接反 (DC正负极接反,常见于直流接线故障)
RIPPLE_OVER_LIMIT34适用:纹波过大 (DC滤波电容老化,导致输出直流质量差,影响精密元器件)
POWER_SUPPLY_INTERNAL_ERROR35适用:电源模块内部故障 (如开关电源自身的控制芯片损坏、风扇故障)
SCOPE_LOGIC_POWER36 逻辑/芯片电源级 (Logic Power Rail) 范围:控制单元(MCU/CPU)、传感器供电轨(如 3.3V, 5V)。 影响:核心控制功能失效,可能导致设备频繁重启、死机或失去通信能力。
DC_INPUT_ABNORMAL37适用:直流输入异常 (针对设备通道供电源,如适配器、电池组、DC总线)
OPEN_CIRCUIT41 适用:运行中电流突然消失、线路断开、负载掉线 区别:它表示电路已经断开,电流“为 0”。
UNDER_CURRENT51 适用:DC欠流、AC欠流,电流低于正常运行下限。 区别:它表示电路还是通的,只是电流“太小了”。

FaultScopeEnum

故障影响范围 (Fault Scope) 用于界定告警发生的物理或逻辑层级。 该字段决定了系统如何隔离故障以及在前端 UI 上如何展示受影响的区域。

NameValueDescription
SCOPE_UNKNOWN0未知或未定义的范围,通常作为协议定义的默认占位符
SCOPE_DEVICE1设备级故障:影响整机全局逻辑或物理运行 场景:整机掉电、系统主进程崩溃、全局配置丢失
SCOPE_MODULE2模块级故障:故障局限在特定的硬件模块或扩展插卡内 场景:某个下挂 485 模块离线、板载电表模组通讯异常
SCOPE_CHANNEL3通道级故障:故障仅影响最末端的物理端口或逻辑采样通道 场景:某一路插座过流保护、某路传感器接线断路
SCOPE_NETWORK_INTERFACE4网络接口级故障:特指通信相关的物理或逻辑接口异常 场景:以太网口 (eth0) 网线拔出、Wi-Fi 模块天线损坏、4G 拨号失败
SCOPE_SYSTEM_COMPONENT5系统组件级故障:涉及主控核心计算资源相关的异常 场景:CPU 温度过高、内存 (RAM) 溢出、内部存储 (Flash) 分区损坏

InternalAlarmTypeEnum

本体告警类型 (Internal)

NameValueDescription
INTERNAL_ALARM_UNKNOWN0
INTERNAL_FUSE_BROKEN1保险丝损坏
INTERNAL_PT_FAULT2电压互感器故障
INTERNAL_CT_FAULT3电流互感器故障
INTERNAL_LEAKAGE_CT_FAULT4漏电流互感器故障
INTERNAL_WIRE_TEMP_SENSOR_FAULT5线温传感器故障
INTERNAL_COMM_MODULE_FAULT6通信模块故障
INTERNAL_POWER_MODULE_FAULT7电源模块故障
INTERNAL_LOCATION_MODULE_FAULT8定位模块故障

NetworkAlarmTypeEnum

网络告警具体分类

NameValueDescription
NETWORK_ALARM_TYPE_UNSPECIFIED0[常规] 未指定的网络告警 场景:占位符或未知类型的网络异常。 表现:无法匹配到具体已知分类的告警类型。
CONNECTION_DISCONNECTED1[常用] 连接断开 (TCP/MQTT) 场景:设备与云端或业务服务器的业务层链接断开。 表现:TCP socket 意外断开或 MQTT keep-alive 超时。
POE_SWITCH_PORT_NO_DATA2[常用] POE交换机网口无数据传输 场景:设备与POE交换机的物理连接可能已建立(甚至已正常供电),但网口未进行任何有效的数据包收发。 表现:网口物理 Link 指示灯常亮但 Data 指示灯不闪烁,RX/TX 无流量统计,网络处于“假死”或链路层阻塞状态。
NETWORK_INTERRUPTION3[常用] 网络中断 (WAN不可达) 场景:设备外网访问受阻,无法连接到互联网。 表现:外网 IP 无法 Ping 通或 HTTP 连通性探测连续失败。
ETHERNET_LINK_DISCONNECTED11[常用] 网线物理状态(断开/连接) 场景:设备的以太网口网线被拔出,或重新插入。 表现:网口状态变为 No Carrier,物理层链路断开与恢复。
GATEWAY_UNREACHABLE12[常用] 网关不可达 场景:设备在局域网内无法与默认网关进行通信。 表现:网关 IP 的 Ping 探测连续失败,ARP 可能无法解析。
IP_ADDRESS_CONFLICT13[偶发] IP地址冲突 场景:局域网内存在两台或多台设备使用了相同的静态/动态 IP。 表现:系统底层检测到 ARP 冲突,导致网络时断时续或彻底无法通信。
DNS_RESOLUTION_FAILURE14[常用] DNS解析异常 场景:设备需要访问域名,但配置的 DNS 服务器无响应或解析报错。 表现:Ping 域名失败,但 Ping 外网数字 IP 依然可达。
DHCP_DISCOVERY_FAILURE15[常用] DHCP 获取失败 场景:网线插着/Wi-Fi连着,但路由器 IP 池耗尽或 DHCP 服务宕机。 表现:设备迟迟拿不到 IP,或者只能给自己分配 169.254.x.x。
NO_VALID_ROUTE16[进阶] 路由表异常 / 无可用路由 场景:多网卡(4G+有线)路由表冲突,或 default gateway 路由记录丢失。 结果:设备有 IP,但数据包不知道往哪发,无法路由出网。
INTERFACE_HARDWARE_FAULT17[常用] 网卡/模组硬件故障 (驱动级消失) 场景:Linux下 eth0 或 wlan0 等网络接口节点直接消失。 原因:USB 4G模组死机掉线、PCIe网卡过热保护、驱动 Crash(属于设备级故障而非单纯断网)。
LINK_SPEED_DEGRADATION20性能/质量指标类 (对应 MultiLevelAlarmConfig) [性能] 链路降速 场景:有线协商速率从千兆降为百/十兆,或蜂窝网络从4G回落为2G。 表现:网络带宽严重受限,传输速度达不到业务预期。
LATENCY_HIGH21[性能] 网络高延迟 场景:当前网络物理链路拥堵或信号质量变差。 表现:Ping 延迟飙升,超过了业务设定的容忍阈值。
PACKET_LOSS_HIGH22[性能] 网络高丢包 场景:物理链路质量恶化、存在电磁干扰或中间节点严重拥塞。 表现:数据包大量重传,ICMP 探测丢包率超过告警阈值。
WIRELESS_SIGNAL_LOW23[性能] 无线信号差 场景:设备移动到信号盲区、天线松动或距离基站/路由器过远。 表现:RSSI/RSRP 等信号强度指标低于设定下限,极易触发断网。
WIFI_AUTH_FAILURE24[极高频] Wi-Fi 密码错误或认证被拒 场景:SSID正确且信号满格,但密码被人修改,或企业级路由器加入了 MAC 白名单限制。 表现:设备持续尝试连接,但在认证阶段被 AP 拒绝,无法成功关联。
SIM_CARD_ERROR25[极高频] SIM 卡异常 (硬件级) 场景:SIM卡未插紧、接触不良、SIM卡损坏,或者 PIN 码被锁。 表现:模组无法读取到 SIM 卡,执行 AT+CPIN? 等指令直接报错。
CELLULAR_NETWORK_DENIED26[极高频] 蜂窝网络注网被拒 / 拨号失败 场景:SIM卡欠费停机、物联网卡被锁卡/机卡绑定受限、APN配置错误。 特点:信号很好,但基站拒绝你接入,或者驻留基站成功但获取不到数据承载(PDP激活失败)。
DATA_QUOTA_EXCEEDED27[可选] 流量超额预警/熔断 场景:结合本地流量统计模块,评估到边缘网关的 4G 流量即将超标。 结果:触发断网保护前的预警,或主动阻断业务以避免产生高额资费。
TLS_HANDSHAKE_FAILURE31[极高频] TLS/SSL 握手失败 场景:设备RTC电池没电导致时间回到1970年使证书"未生效",或内置根证书(Root CA)太老被吊销。 结果:Ping得通、TCP连得上,但 MQTT/HTTPS 死活连不上,极具隐蔽性。
POE_NEGOTIATION_FAILURE32[供电] PoE 供电协商失败 场景:设备(PD)请求的功率等级(Class)高于交换机(PSE)能提供的上限。例如设备需要 802.3at(30W),但供电端只支持 802.3af(15W)。 表现:网线连接正常,但 PoE 握手失败,对端设备无法上电启动或降级运行。
POE_PORT_OVERLOAD_OR_SHORT33[供电] PoE 端口过载/短路 (Over-Current / Short-Circuit) 场景:网线内部短路、接头进水,或对端设备硬件故障导致抽取电流远超标准阈值。 表现:PoE 控制芯片触发硬件级保护,强制切断该网口的供电输出,网络随之中断。
POE_TOTAL_BUDGET_EXCEEDED34[供电] PoE 总功率不足 (Power Budget Exceeded) 场景:主要用于设备作为 PSE (供电交换机/网关) 时,接入的终端总功率超过了电源适配器的总负荷。 表现:为了保护系统,PoE 控制器根据优先级拒绝为新插入的设备供电,或随机断开低优先级端口。
POE_VOLTAGE_ABNORMAL35[供电] PoE 供电电压异常 场景:供电端输出的电压跌落(例如低于 44V)或输入波动过大。 表现:设备可能会频繁重启,或者在功耗变大(如开启红外灯/高负载计算)时网络瞬间掉线。

PerformanceAlarmTypeEnum

性能告警类型枚举

NameValueDescription
PERFORMANCE_ALARM_UNKNOWN0
PERF_CONCURRENCY_HIGH1--- 性能指标类 --- 并发量告警
PERF_THROUGHPUT_ABNORMAL2吞吐量告警
PERF_RESPONSE_TIME_HIGH3响应时间告警
PERF_CPU_USAGE_HIGH4CPU 使用率告警
PERF_MEMORY_USAGE_HIGH5内存占用告警

PerformanceFaultTypeEnum

系统性能故障类型枚举 描述设备硬件资源占用、稳定性及环境规格相关的异常。

NameValueDescription
PERF_UNKNOWN0未知或未定义的性能异常
CPU_OVERLOAD1CPU 负载过高:持续的高占用导致任务调度延迟,可能影响关键业务逻辑的执行周期
MEMORY_OOM2内存耗尽 (OOM):系统可用内存低于预警线,可能导致进程被内核强制杀掉或系统停滞
STORAGE_FULL3存储空间满:Flash/SD卡/硬盘剩余空间不足,将导致日志停止写入或数据库操作失败
SYSTEM_CRASH_REBOOT4系统崩溃重启:通过看门狗 (Watchdog) 或内核恐慌 (Kernel Panic) 触发的非预期重启快照
HIGH_TEMPERATURE5硬件过温:主控芯片或核心板温度超过安全阈值,系统可能进入降频或保护性关机状态

PeripheralAlarmTypeEnum

外设告警类型 (Peripheral)

NameValueDescription
PERIPHERAL_ALARM_UNKNOWN0
PERIPHERAL_ENV_TEMP_OVERHEAT1--- 环境类 --- 环境温度过温
PERIPHERAL_ENV_HUMIDITY_ABNORMAL2环境湿度异常
PERIPHERAL_WATER_LEAK3--- 状态提醒类 --- 进水/水浸提醒
PERIPHERAL_TILT4倾斜提醒
PERIPHERAL_VIBRATION5振动提醒
PERIPHERAL_ILLEGAL_DOOR_OPEN6非法开门
PERIPHERAL_LIGHT_COMPENSATION_FAULT7--- 设备故障类 --- 补光异常
PERIPHERAL_LIGHTNING_PROTECTION_FAULT8防雷异常
PERIPHERAL_SIGNAL_LIGHT_FAULT9信号灯异常
PERIPHERAL_RADAR_FAILURE10雷达失效

NodeTypeEnum

NameValueDescription
NODE_TYPE_UNKNOWN0
NODE_TYPE_INPUT1--- 电源入口 --- 总输入 (Mains/Input) 场景:PDU的电源插头、配电柜的主路进线
NODE_TYPE_MODULE2--- 配电层级 --- 模块 (Module) 场景:模块化PDU中的可插拔模块、通信电源的整流模块、UPS的功率模块
NODE_TYPE_BUS3母线/汇流排 (Bus/Rail) 场景:直流电源系统的直流母线(总输出点)、内部汇流排
NODE_TYPE_BANK4分组/支路 (Bank/Branch/Circuit) 场景:PDU上的 Bank (通常一组插座对应一个断路器)、配电柜的支路开关 这是一个非常关键的层级,通常包含断路器(Breaker)状态
NODE_TYPE_OUTLET5--- 终端/输出层级 --- 物理插座/输出口 (Outlet/Socket) 场景:设备最终连接的 C13/C19 插孔、接线端子
NODE_TYPE_SENSOR6--- 辅助设备 --- 环境传感器 (Sensor/Probe) 场景:挂在 PDU 上的温湿度探头、门禁、水浸传感器 它们也是下挂在设备下的节点

PhaseTypeEnum

相线类型枚举

NameValueDescription
PHASE_TYPE_UNSPECIFIED0默认未知
PHASE_A1A相
PHASE_B2B相
PHASE_C3C相 (三相电通常包含C相)
PHASE_L4火线 (单相电 Line)
PHASE_N5零线 (Neutral)
PHASE_PE6地线 (Protect Earth)
PHASE_DC_POSITIVE7直流正极
PHASE_DC_NEGATIVE8直流负极

PowerSupplySourceEnum

供电来源/供电模式

NameValueDescription
POWER_SOURCE_MAINS0市电/电网
POWER_SOURCE_BATTERY1电池供电
POWER_SOURCE_UPS2UPS供电
POWER_SOURCE_POE3POE供电
POWER_SOURCE_GENERATOR4柴油发电机
POWER_SOURCE_SOLAR5太阳能/光伏

PowerTypeEnum

电源或电流性质:明确是直流、交流还是交直流通用

NameValueDescription
POWER_TYPE_UNSPECIFIED0Protobuf 规定枚举第 0 值必须是 UNSPECIFIED,防止字段未赋值时的歧义
POWER_TYPE_DC1直流 (Direct Current)
POWER_TYPE_AC2交流 (Alternating Current)
POWER_TYPE_AC_DC3交直流通用 (AC/DC Universal)

VoltageLevelEnum

仅代表电压等级,不包含电流性质

NameValueDescription
VOLTAGE_LEVEL_UNSPECIFIED0
VOLTAGE_5V1低压区 (通常用于弱电/控制)
VOLTAGE_12V2
VOLTAGE_24V3
VOLTAGE_36V4
VOLTAGE_48V5
VOLTAGE_110V20高压区 (通常用于强电/供电)
VOLTAGE_220V21
VOLTAGE_380V22
VOLTAGE_CUSTOM999特殊/自定义 (为未来扩展留口子)

AlarmRuntimeContextMessage

告警运行时上下文 (通用快照) 适用于:电气、网络、环境、外设等所有类型的告警

FieldAPI Name(Java/JSON)Type约束规则Description
levellevelcom.nexus.service.proto.enums.AlarmSeverityoptional
--- 基础状态 --- 报警等级 (1, 2, 3)
actionactioncom.nexus.service.proto.enums.AlarmActionoptional
动作 (TRIGGER 触发 / RECOVER 恢复)
threshold_typethreshold_typecom.nexus.service.proto.enums.AlarmThresholdTypeoptional
--- 判定逻辑 --- 阈值判定类型:区分是绝对值、倍数还是百分比 作用:决定了 parameter_snapshot 的物理含义
actual_valueactual_valuefloatoptional
--- 核心数值 (事实真相) --- 核心数值 (事实真相) 触发告警时的【实际采样值】 例如:虽然限值是11A,但实际电流可能瞬间飙升到了 15.5A 对于"市电停电"等状态型告警,此值可为 0 或空
limit_valuelimit_valuefloatoptional
触发告警时的【生效阈值】 (计算后的绝对值) 重点:如果配置是"1.1倍",设备端需在此处计算出 "10A * 1.1 = 11A" 并上报 11.0 这样云端不需要再去查配置表就能直接展示 "限值: 11A"
rated_reference_snapshotrated_reference_snapshotfloatoptional
--- 追溯快照 --- 上下文快照 (用于追溯和UI展示) 【额定参考值快照】 上报当时的额定值配置 (如 10A, 2500W, 220V) 作用:前端展示"额定值 10A"的依据,防止配置修改后历史告警数据费解
parameter_snapshotparameter_snapshotfloatoptional
【倍数/参数快照】 如果是基于倍数触发,上报 1.1;如果是绝对值触发,传 1.0
duration_msduration_msuint64optional
--- 辅助信息 --- 持续时间 (ms) - 仅在 action = RECOVER 时有效
descriptiondescriptionstringoptional
(可选) 故障简述文本,用于日志直接打印 e.g. "Current 15.5A > Limit 11.0A"
Nested Enums defined inAlarmRuntimeContext

PeripheralAlarmPayloadMessage

外设告警具体业务数据

FieldAPI Name(Java/JSON)Type约束规则Description
sensor_typesensor_typePeripheralSensorTypeoptional
外设传感器类型 (必须)
statestatecom.nexus.service.proto.enums.ComponentStatusoptional
外设具体状态语义 (主要针对开关量/状态型传感器:如门磁、水浸、烟感) 模拟量(温度等)告警通常不填此项,而是依赖 AlarmRuntimeContext 的 actual_value 和 limit_value
sub_addresssub_addressint32optional
级联/总线子地址 (可选) 例如:如果接口是 RS485-1,且总线上挂了3个温湿度传感器,这里填 Modbus Slave ID (如 1, 2, 3) 如果是直连的 DI 端口,此项可不填
trigger_sourcetrigger_sourceTriggerSourceoptional
触发归因
operate_user_idoperate_user_idstringoptional
操作人ID
Nested Enums defined inPeripheralAlarmPayload

PeripheralSensorTypeEnum

传感器类型枚举

NameValueDescription
SENSOR_TYPE_UNSPECIFIED0
SENSOR_TYPE_TEMPERATURE1温度
SENSOR_TYPE_HUMIDITY2湿度
SENSOR_TYPE_DOOR_CONTACT3门磁 (防盗/机柜门)
SENSOR_TYPE_VIBRATION4震动
SENSOR_TYPE_WATER_LEAK5水浸
SENSOR_TYPE_SMOKE6烟感

TriggerSourceEnum

触发来源

NameValueDescription
TRIGGER_SOURCE_UNSPECIFIED0未指定
TRIGGER_SOURCE_INSTRUCTION1指令下发 (App/后台远程开锁)
TRIGGER_SOURCE_PHYSICAL_KEY2物理操作 (钥匙/刷卡/本地按钮)
TRIGGER_SOURCE_VIOLENT3暴力触发 (撬锁、非法闯入)
TRIGGER_SOURCE_EXTERNAL_FORCE4外力影响 (非开门,仅是震动或碰撞)

BackupPowerSnapshotMessage

--- 备用电源/停电上下文快照 ---

FieldAPI Name(Java/JSON)Type约束规则Description
power_modepower_modecom.nexus.service.proto.enums.PowerSourceTypeoptional
当前供电模式
current_voltagecurrent_voltagefloatoptional
备用电源当前电压 (核心监控指标,大电容方案必填,例如 4.8V, 3.3V)
estimated_uptime_secestimated_uptime_secint32optional
预计剩余运行时间(秒) (大电容方案可固定传 30)
shutdown_reasonshutdown_reasoncom.nexus.service.proto.enums.ShutdownReasonoptional
关机原因 (仅在 T=30 的关机告警时有意义)
Nested Enums defined inBackupPowerSnapshot

ElectricalAlarmPayloadMessage

电气电能报警事件

FieldAPI Name(Java/JSON)Type约束规则Description
fault_typefault_typecom.nexus.service.proto.enums.ElectricalFaultTypeoptional
故障类型 (过压、欠压等)
phase_typephase_typecom.nexus.service.proto.enums.PhaseTypeoptional
故障发生的通道 (A相、B相、C相等)
power_typepower_typecom.nexus.service.proto.enums.PowerTypeoptional
电源类型:明确是直流、交流还是交直流通用
backup_power_snapshotbackup_power_snapshotBackupPowerSnapshotoptional
--- 备电与关机快照 --- 仅在 VOLTAGE_LOST 或 EMERGENCY_SHUTDOWN 事件时携带此快照
Nested Enums defined inElectricalAlarmPayload

PerformanceAlarmPayloadMessage

性能告警载体

FieldAPI Name(Java/JSON)Type约束规则Description
fault_typefault_typecom.nexus.service.proto.enums.PerformanceFaultTypeoptional
性能系统类故障枚举
total_capacitytotal_capacityfloatoptional
性能特有快照:总容量、已用容量等
used_capacityused_capacityfloatoptional
top_process_nametop_process_namestringoptional
比如:发生 OOM 时,占用内存最多的进程名
Nested Enums defined inPerformanceAlarmPayload

AlarmTargetLocatorMessage

万能告警目标定位器

FieldAPI Name(Java/JSON)Type约束规则Description
scopescopecom.nexus.service.proto.enums.FaultScopeoptional
故障发生的层级 (DEVICE:整机, MODULE:特定模块, CHANNEL:特定通道, PORT:特定网络端口)
interface_or_component_nameinterface_or_component_namestringoptional
--- 扩展定位(针对非电气类) --- 例如:网口名(eth0)、外设总线接口名(RS485-1)、传感器ID等
device_topologydevice_topologycom.nexus.service.proto.channel.DeviceTopologyoptional
受影响的子通道及资产简要信息
Nested Enums defined inAlarmTargetLocator

EventMessage

最小粒度的原子业务事件,包含元数据和具体负载。

FieldAPI Name(Java/JSON)Type约束规则Description
timestamptimestampint64optional
事件实际发生的物理时间戳(业务时间,即“事实真相”)。
contextcontextAlarmRuntimeContextoptional
告警运行时数据
locatorlocatorAlarmTargetLocatoroptional
公共元数据:万能故障定位器 (明确指出是哪个层级、哪个模块、哪个通道出问题)
event_idevent_idstringoptional
原子事件的全局唯一标识(Business Event ID)。 【核心作用与场景】: 1. 业务去重(幂等性保障):在弱网环境下,设备可能会因为未收到云端 ACK 而重传报文(如 MQTT QoS 1)。 后端服务(如 Flink 流计算、时序数据库)依靠此 ID 进行精准去重,防止同一条告警/事件被重复处理或重复入库。 2. 微服务链路追踪(拆包后凭证):外层的 EventReport.message_id 用于记录“单次网络请求”, 当 EventReport 在云端网关被拆分成多个独立的 Event 并派发到不同的微服务(或 Kafka Topic)后, 此 event_id 将作为该业务事件的独立“身份证”,用于跨服务的日志聚合与工单溯源。 3. 防丢包/断点续传:云端目前收到了 event_id = 100,下一秒收到了 105,那么云端立刻就知道:设备到云端丢失了 101~104 这四个关键事件! 这时云端可以下发指令:“请把 101~104 重传一遍”。这在对可靠性要求极高的工业 IoT 场景非常常见。 【设备端生成建议(适配 nanopb 弱算力)】: 为了节省 MCU 算力,不强制要求生成标准的 36 字节 UUID。
electrical_alarm_payloadelectrical_alarm_payloadElectricalAlarmPayload
电气电能告警
performance_alarm_payloadperformance_alarm_payloadPerformanceAlarmPayload
本体告警 com.nexus.service.proto.event.InternalAlarmEvent internal_alarm_event = 12; 性能告警
peripheral_alarm_payloadperipheral_alarm_payloadPeripheralAlarmPayload
外设告警
network_alarm_payloadnetwork_alarm_payloadNetworkAlarmPayload
网络告警
Nested Enums defined inEvent

EventReportMessage

批量事件上报容器,用于减少网络交互并支持断点续传。

FieldAPI Name(Java/JSON)Type约束规则Description
message_idmessage_idstringoptional
全链路追踪ID,用于串联后端多层服务的日志。
gateway_idgateway_idstringoptional
代理网关ID,直连设备留空。
eventseventsEventrepeated
原子事件列表,支持批量打包发送。
Nested Enums defined inEventReport

EventPayloadTypeEnum

事件负载类型枚举,与 Event 消息中的 oneof payload 字段一一对应。 用于在不解析具体 payload 内容的情况下,快速识别事件类别或进行路由过滤。

NameValueDescription
EVENT_PAYLOAD_TYPE_UNSPECIFIED0Protobuf 枚举建议以 UNSPECIFIED 或 UNKNOWN 开头,值为 0
EVENT_PAYLOAD_TYPE_ELECTRICAL_ALARM1电气电能告警 (对应 electrical_alarm_payload)
EVENT_PAYLOAD_TYPE_INTERNAL_ALARM2本体告警 (对应 internal_alarm_event,虽然目前注释掉了,建议预留)
EVENT_PAYLOAD_TYPE_PERFORMANCE_ALARM3性能告警 (对应 performance_alarm_payload)
EVENT_PAYLOAD_TYPE_PERIPHERAL_ALARM4外设告警 (对应 peripheral_alarm_payload)
EVENT_PAYLOAD_TYPE_NETWORK_ALARM5网络告警 (对应 network_alarm_payload)

BaseNetworkInfoMessage

基础与通用指标

FieldAPI Name(Java/JSON)Type约束规则Description
interface_nameinterface_namestringoptional
[作用] 操作系统底层的网卡接口名 [场景] 设备有多网卡时,区分是 eth0(有线)、wlan0(Wi-Fi) 还是 ppp0/usb0(4G/5G模块) 掉线。
interface_aliasinterface_aliasstringoptional
[作用] 业务层给网卡起的别名 [场景] 用于业务日志或UI展示,例如:"WAN口", "LAN1", "内部IPC通信网卡"。
local_iplocal_ipstringoptional
[作用] 本机发生告警时的 IP 地址 [场景] 检查设备是否成功通过 DHCP 获取到了有效 IP(如出现 169.254.x.x 说明 DHCP 失败)。
current_latency_mscurrent_latency_msint32optional
[作用] 到网关或公网测试点(如 114.114.114.114)的 Ping 延迟 (毫秒) [场景] 业务超时断连时,上报当前的延迟数值,排查是否因为网络拥堵导致。
current_packet_loss_ratecurrent_packet_loss_ratefloatoptional
[作用] 当前的丢包率 (建议用小数,如 0.15 表示 15%) [场景] 视频流卡顿、花屏时上报,通常丢包率 > 5% 业务就会受严重影响。
Nested Enums defined inBaseNetworkInfo

ConnectionDiagnosticInfoMessage

应用连接诊断

FieldAPI Name(Java/JSON)Type约束规则Description
target_addresstarget_addressstringoptional
[作用] 尝试建立连接的目标 IP 或域名 [场景] 明确设备当下具体在连哪个节点失败了(如连主服失败还是备服失败,亦或流媒体节点不通)。
target_porttarget_portint32optional
[作用] 目标服务的端口号 [场景] 配合目标 IP 使用,排查现场防火墙/路由器策略是否恶意封堵了特定的业务端口(如封杀了 1883 端口)。
protocolprotocolstringoptional
[作用] 应用层或传输层使用的通信协议标识 [场景] 填 "TCP", "UDP", "MQTT", "HTTP"。不同协议排查方向不同,UDP大面积丢包可能是QoS限制,TCP多为防火墙拦截。
system_errnosystem_errnoint32optional
[作用] 操作系统底层的 C 标准错误码 () [场景] 精准定位 Socket 级断开原因,如 110(ETIMEDOUT)是建连超时,111(ECONNREFUSED)是服务端没开,104(ECONNRESET)是被网关强制切断。
Nested Enums defined inConnectionDiagnosticInfo

DnsDiagnosticInfoMessage

DNS 解析诊断

FieldAPI Name(Java/JSON)Type约束规则Description
failed_domainfailed_domainstringoptional
[作用] 导致解析失败的具体域名 [场景] 业务无法连通时,排查是某个特定业务域名拼写错误、被劫持,还是整个网络的 DNS 瘫痪。
current_dns_servercurrent_dns_serverstringoptional
[作用] 设备当前正在请求的 DNS 服务器地址 (如 8.8.8.8) [场景] 发现 DNS 解析超时时,检查是否被分配了无法访问的内网 DNS,或者当地运营商的 DNS 节点挂了。
error_codeerror_codestringoptional
[作用] DNS 解析的具体错误码或字符串简述 [场景] 排查原因,如 "NXDOMAIN"(域名不存在/被注销)、"TIMEOUT"(DNS服务器无响应/被防火墙拦截)。
Nested Enums defined inDnsDiagnosticInfo

LocalNetworkDiagnosticInfoMessage

局域网与路由诊断

FieldAPI Name(Java/JSON)Type约束规则Description
gateway_ipgateway_ipstringoptional
[作用] 当前网络配置下的默认网关 IP 地址 [场景] 若无法 ping 通外网,检查网关 IP 是否为空(DHCP失败),或是否能 ping 通网关以界定是内外网问题。
gateway_macgateway_macstringoptional
[作用] 当前系统缓存中(ARP表)网关的物理 MAC 地址 [场景] 局域网异常时,排查是否发生了“ARP 欺骗”或存在同 IP 的私接路由器冒充网关导致流量被劫持。
conflicting_ipconflicting_ipstringoptional
[作用] 局域网内检测到与本机发生冲突的 IP 地址 [场景] 静态 IP 配置错误或 DHCP 池异常导致两台设备分到相同 IP,引起网络时断时续。
conflicting_macconflicting_macstringoptional
[作用] 抢占本机 IP 的另一台非法/冲突设备的 MAC 地址 [场景] 提供给现场网络管理员,用于在交换机后台精准定位并封禁该非法设备的物理端口。
Nested Enums defined inLocalNetworkDiagnosticInfo

NetworkAlarmPayloadMessage

网络告警业务负载

FieldAPI Name(Java/JSON)Type约束规则Description
alarm_typealarm_typecom.nexus.service.proto.enums.NetworkAlarmTypeoptional
[必填] 明确触发的是哪一种网络告警
diagnostic_infodiagnostic_infoNetworkDiagnosticInfooptional
[可选] 针对具体告警类型的详细诊断上下文 为什么不把这些放在 AlarmRuntimeContext? 因为 RuntimeContext 是通用的(浮点数为主),而这里是网络协议专属的字符串/状态数据。
Nested Enums defined inNetworkAlarmPayload

NetworkDiagnosticInfoMessage

顶层网络诊断信息 (按层分类归纳)

FieldAPI Name(Java/JSON)Type约束规则Description
base_infobase_infoBaseNetworkInfooptional
基础与通用指标 (所有告警都可能用到)
ethernet_stateethernet_statecom.nexus.service.proto.device.EthernetStateoptional
物理与链路层诊断 以太网诊断 (有线网络专用)
wifiwifiWifiDiagnosticInfooptional
无线网络诊断 (Wi-Fi/4G/5G专用)
local_netlocal_netLocalNetworkDiagnosticInfooptional
局域网与路由诊断 (所有网络类型都可能用到)
dnsdnsDnsDiagnosticInfooptional
DNS 解析诊断
connectionconnectionConnectionDiagnosticInfooptional
应用连接与底层 Socket 诊断 (L4/L7)
securitysecuritySecurityDiagnosticInfooptional
安全与认证诊断 (TLS)
cellular_statecellular_statecom.nexus.service.proto.device.CellularStateoptional
蜂窝网络诊断 (4G/5G专用)
task_snapshottask_snapshotTaskExecutionSnapshotoptional
监控任务执行快照 (L7/主动探测层) 当告警是由具体的拨测任务(如 PingTask)触发时,附带此快照记录当时的执行上下文
Nested Enums defined inNetworkDiagnosticInfo

PingMetricsSnapshotMessage

== Ping 任务专属快照指标 ==

FieldAPI Name(Java/JSON)Type约束规则Description
transmitted_packetstransmitted_packetsint32optional
发送包数 (通常就是触发告警前那一轮的发送数量)
received_packetsreceived_packetsint32optional
接收包数
packet_loss_ratepacket_loss_ratedoubleoptional
丢包率 (百分比,例如 100.0 表示全丢,50.0 表示丢一半)
min_rtt_msmin_rtt_msdoubleoptional
延时指标 (毫秒) - 如果 100% 丢包,这些值可能为空或为 0
avg_rtt_msavg_rtt_msdoubleoptional
平均延时 (毫秒)
max_rtt_msmax_rtt_msdoubleoptional
最大延时 (毫秒)
jitter_msjitter_msdoubleoptional
抖动 (Jitter) - 诊断网络稳定性的重要指标
Nested Enums defined inPingMetricsSnapshot

SecurityDiagnosticInfoMessage

安全与认证诊断

FieldAPI Name(Java/JSON)Type约束规则Description
tls_error_codetls_error_codeint32optional
[作用] mbedtls/openssl 等底层加密库抛出的错误码 [场景] TCP 连通但 MQTT/HTTPS 失败时,通过此码查明是因为证书不受信任、根证书缺失、还是加密套件不匹配。
current_system_timecurrent_system_timeint64optional
[作用] 设备当前的系统 UNIX 时间戳 [场景] 大量 TLS 握手失败往往是因为设备断电重启后 NTP 未同步,时间停留在 1970 年,导致系统认为服务端证书“未生效”。
Nested Enums defined inSecurityDiagnosticInfo

TaskExecutionSnapshotMessage

== 任务执行快照 (统一外壳) ==

FieldAPI Name(Java/JSON)Type约束规则Description
task_idtask_idstringoptional
任务基础信息映射 触发告警的任务 ID (对应 PingTask.id)
task_typetask_typecom.nexus.service.proto.enums.network.MonitorTaskTypeoptional
任务类型 (显式区分是 Ping、HTTP 还是 TCP 拨测) 例如: "PING", "HTTP_GET"
configured_targetconfigured_targetcom.nexus.service.proto.config.TargetEndpointoptional
目标快照 (直接复用已有的 TargetEndpoint 定义) 为什么要在快照里再存一份?因为拓扑(Topology)对应的实际 IP 可能会变,必须记录告警发生"那一刻"的实际目标
resolved_ip_addressresolved_ip_addressstringoptional
[关键] 记录当时实际解析出并进行探测的底层 IP 地址 (非常重要,尤其是域名或拓扑反查场景)
error_codeerror_codeint32optional
通用执行状态 告警发生时的错误码 (如 0-正常, 1-DNS解析失败, 2-连接超时等系统级错误)
error_messageerror_messagestringoptional
告警发生时的简明错误信息 (如 "Connection Timed Out")
current_retry_attemptcurrent_retry_attemptint32optional
记录告警发生时,任务处于第几次重试 (对应 PingTask.retry_count)
result_metricsresult_metricsTaskResultMetricsoptional
具体任务的指标快照
Nested Enums defined inTaskExecutionSnapshot

TaskResultMetricsMessage

== 统一任务指标容器 ==

FieldAPI Name(Java/JSON)Type约束规则Description
pingpingPingMetricsSnapshotoptional
未来可无缝扩展: HttpMetricsSnapshot http = 2; TcpMetricsSnapshot tcp = 3;
Nested Enums defined inTaskResultMetrics

WifiDiagnosticInfoMessage

Wi-Fi 专用诊断

FieldAPI Name(Java/JSON)Type约束规则Description
ssidssidstringoptional
[作用] 当前连接或尝试连接的 Wi-Fi 名称 (SSID) [场景] 设备断网时排查是否连错了热点,或者现场修改了路由器名字导致设备连不上。
wifi_channelwifi_channelint32optional
[作用] 当前 Wi-Fi 工作的物理信道 [场景] 结合周围热点情况,判断是否因为信道拥堵(如 2.4G 的 1, 6, 11 信道重叠冲突)导致网络卡顿或频繁掉线。
rssirssiint32optional
[作用] Wi-Fi 接收信号强度指示 (dBm) [场景] 值一般在 -30 到 -90 之间。低于 -75dBm 通常导致丢包,低于 -85dBm 极易断连,提示客户缩短距离或加装 AP。
Nested Enums defined inWifiDiagnosticInfo

HeartbeatRequestMessage

心跳请求消息

FieldAPI Name(Java/JSON)Type约束规则Description
rsrprsrpsint32optional
手机信号格-接收信号强度指示 电池电量 optional uint32 battery_percent = 2;
Nested Enums defined inHeartbeatRequest

HeartbeatResponseMessage

心跳响应消息

FieldAPI Name(Java/JSON)Type约束规则Description
codecodeenums.BinaryStatusoptional
响应状态码
Nested Enums defined inHeartbeatResponse

LogUploadProgressReportMessage

@message LogUploadProgressReport @brief 设备 -> 服务器:在后台上传过程中【异步上报】的进度和最终结果。

FieldAPI Name(Java/JSON)Type约束规则Description
transaction_idtransaction_idstring
必须与原始 LogUploadRequest 中的 transaction_id 保持一致
upload_statusupload_statusLogUploadProgressReport.UploadStatus
progress_percentageprogress_percentageint32
上传进度百分比 (0-100) 仅在 upload_status 为 UPLOADING 时有意义
error_detailserror_detailsstring
可选的、人类可读的错误详情,用于诊断失败原因。 例如,当 upload_status 为 FAILED_SERVER_ERROR 时, details 可以是 "HTTP PUT returned status 403 Forbidden."
Nested Enums defined inLogUploadProgressReport

LogUploadRequestMessage

@message LogUploadRequest @brief 服务器 -> 设备:请求设备上传指定的日志文件。 这通常由一个 CommandRequest 触发,或者直接包含在 WrapperMessage 中。

FieldAPI Name(Java/JSON)Type约束规则Description
transaction_idtransaction_idstring
唯一的事务ID,用于将后续的响应和进度报告与此请求关联起来
log_typeslog_typesLogUploadRequest.LogTyperepeated
请求上传的日志类型列表,允许一次请求多种日志
start_timestart_timeint64
请求的日志时间范围 (Unix-timestamp, 单位秒) 0 表示不限制
end_timeend_timeint64
destinationdestinationUploadDestination
服务器提供的上传目的地信息
Nested Enums defined inLogUploadRequest

LogUploadResponseMessage

@message LogUploadResponse @brief 设备 -> 服务器:对 LogUploadRequest 的【立即同步响应】。 这个响应仅表示设备是否已接受上传任务,并不代表上传已完成。

FieldAPI Name(Java/JSON)Type约束规则Description
transaction_idtransaction_idstring
必须与收到的 LogUploadRequest 中的 transaction_id 保持一致
statusstatusLogUploadResponse.Status
messagemessagestring
可选的、人类可读的附加信息,主要用于调试。 例如,当 status 为 REJECTED_INVALID_PARAMS 时,message 可以是 "End time cannot be earlier than start time."
Nested Enums defined inLogUploadResponse

UploadDestinationMessage

@message UploadDestination @brief 描述日志文件应该被上传到哪里。

FieldAPI Name(Java/JSON)Type约束规则Description
methodmethodUploadDestination.UploadMethod
上传方式
urlurlstring
上传的目标 URL。对于 S3 等对象存储,这通常是一个预签名的 URL。
headersheadersUploadDestination.HeadersEntryrepeated
对于 HTTP 上传,可能需要的自定义请求头 (例如 Content-Type, Authorization 等)
Nested Enums defined inUploadDestination

HeadersEntryMessage

FieldAPI Name(Java/JSON)Type约束规则Description
keykeystring
valuevaluestring
Nested Enums defined inHeadersEntry

UploadStatusEnum

上传的整体状态

NameValueDescription
UPLOAD_STATUS_UNSPECIFIED0
PREPARING1准备中 (例如正在压缩日志文件)
UPLOADING2上传中
COMPLETED_SUCCESS3全部成功完成
FAILED_PREPARATION4准备阶段失败 (例如压缩失败)
FAILED_CONNECTION5上传失败:网络连接问题
FAILED_TIMEOUT6上传失败:超时
FAILED_SERVER_ERROR7上传失败:服务器返回错误 (例如 4xx, 5xx 状态码)
FAILED_INTERNAL8上传失败:设备内部其他错误

LogTypeEnum

要上传的日志类型

NameValueDescription
LOG_TYPE_UNSPECIFIED0
SYSTEM1系统日志 (dmesg, journalctl)
APPLICATION2应用主程序日志
MODEM3蜂窝模组日志
SECURITY4安全相关日志

StatusEnum

响应状态码,告知服务器任务是否已被接受

NameValueDescription
STATUS_UNSPECIFIED0
ACCEPTED1成功接受任务,设备将很快在后台开始上传流程
REJECTED_BUSY2拒绝:设备正忙于其他高优先级任务 (例如正在 OTA)
REJECTED_INVALID_PARAMS3拒绝:请求的参数无效 (例如时间范围不合法)
REJECTED_NOT_FOUND4拒绝:请求的日志文件不存在
ERROR_INTERNAL5内部错误:设备发生内部错误,无法处理该请求

UploadMethodEnum

NameValueDescription
METHOD_UNSPECIFIED0
HTTP_PUT1使用 HTTP PUT 方法上传
FTP_PUT2使用 FTP PUT 方法上传

LoginRequestMessage

登录请求消息

FieldAPI Name(Java/JSON)Type约束规则Description
product_modelproduct_modelstringoptional
--- 身份标识 --- 产品Key,标识设备品类,用于映射物模型。设备认证时必填。
usernameusernamestringoptional
用户名。用户登录时必填。
auth_methodauth_methodenums.AuthMethodoptional
--- 认证信息 ---
credentialcredentialstringoptional
凭证内容。 如果 auth_method = PASSWORD, 此处为密码。 如果 auth_method = SIGNATURE, 此处为计算出的签名。
client_versionclient_versionstringoptional
客户端固件/SDK 版本号
client_version_codeclient_version_codeuint32optional
Nested Enums defined inLoginRequest

LoginResponseMessage

登录响应消息

FieldAPI Name(Java/JSON)Type约束规则Description
codecodeenums.AuthStatusoptional
响应状态码
messagemessagestringoptional
响应消息, 如 "认证成功" 或 "Token无效"
access_tokenaccess_tokenstringoptional
鉴权令牌 (登录成功时必填) 后续心跳或业务请求需在 WrapperMessage 头部或 payload 中携带此 Token
expires_inexpires_inint32optional
Token 有效期 (秒) 设备端可根据此时间提前发起刷新 Token 或重新登录
Nested Enums defined inLoginResponse

OtaConfigMessage

OTA 静态策略配置 通常作为设备的“属性 (Property)”下发并持久化存储。 作用:控制设备在没有收到具体升级任务时的行为模式(如是否主动询问、何时允许重启)。

FieldAPI Name(Java/JSON)Type约束规则Description
auto_check_updateauto_check_updatebool
自动检查更新开关 控制设备是采用“主动拉取 (Pull)”还是“被动接收 (Push)”模式。 - true: 开启 Pull 模式。设备按照 check_interval_minutes 周期性请求服务端。 - false: 开启 Push 模式 (推荐)。设备保持静默,完全依赖服务端下发 OtaUpgradeNotification。 场景:流量敏感型设备(如 NB-IoT/4G)建议设为 false 以节省资费;Wi-Fi 宽带设备可设为 true。
check_interval_minutescheck_interval_minutesint32
轮询检查周期 (单位: 分钟) 仅当 auto_check_update = true 时生效。 建议值:1440 (24小时) 或 720 (12小时)。 警告:设置过短(如 < 60分钟)会导致服务端并发压力过大,且消耗设备电量和流量。
allowed_update_windowallowed_update_windowstring
允许升级的时间窗口 (静默安装策略) 格式示例:"02:00-05:00" (24小时制)。 作用:避开业务高峰期,防止设备在关键时刻重启。 逻辑: 1. 设备可以在任意时间下载固件(后台下载)。 2. 下载完成后,必须等待当前时间进入该窗口范围,才执行“安装”和“重启”动作。 场景:防止 POS 机在白天结账时重启,或智能路灯在晚上亮灯时断电升级。
Nested Enums defined inOtaConfig

OtaJobMessage

简易升级指令 这是一个轻量级的升级对象,通常用于老旧设备兼容,或非标准流程的测试指令。 注意:在复杂场景下(如包含分片传输、多模块校验),请使用 OtaUpgradeNotification。

FieldAPI Name(Java/JSON)Type约束规则Description
versionversionstring
目标版本号 用于显示或简单的版本比对 (String 比较)。
download_urldownload_urlstring
固件下载地址 通常是 HTTP/HTTPS 的 CDN 链接。
checksumchecksumstring
文件校验值 (Checksum) 通常为 MD5 或 SHA256 字符串。 作用:防止文件在传输过程中损坏,或被中间人劫持篡改。
file_sizefile_sizeint32
文件大小 (字节) 作用:设备在下载前进行“磁盘空间预检”。 如果 (剩余空间 < file_size * 2),设备应直接报错拒绝,避免下载完无法安装。
force_updateforce_updatebool
强制升级开关 - true: 忽略 OtaConfig 中的 allowed_update_window 时间窗口限制,下载完立即重启安装。 - false: 遵循时间窗口策略。 场景:当遇到严重安全漏洞或导致业务瘫痪的 Bug 时,需置为 true。
Nested Enums defined inOtaJob

ChecksumAlgorithmEnum

完整性校验算法 用于验证下载后的固件文件是否完整、是否被篡改。

NameValueDescription
ALG_SHA2560 SHA-256 (推荐标准) 安全性高,碰撞概率极低,适用于绝大多数现代 IoT 设备。
ALG_MD51 MD5 (兼容旧设备) 安全性较低。仅在算力极弱的老旧 8 位/16 位单片机,或为了兼容旧存量设备时使用。

OtaErrorCodeEnum

错误码

NameValueDescription
ERR_NONE0 无错误
ERR_DOWNLOAD_TIMEOUT1001 下载超时 原因:网络不稳定、CDN 无法访问或 TCP 连接频繁中断。
ERR_CHECKSUM_MISMATCH1002 校验失败 原因:文件下载不完整、被中间人篡改或存储介质损坏导致 Hash 不匹配。
ERR_STORAGE_NOT_ENOUGH1003 存储空间不足 原因:设备剩余磁盘空间无法容纳新的固件包(通常需要 2 倍包大小用于解压/备份)。
ERR_INSTALL_FAILED1004 安装失败 原因:解压失败、分区写入错误、安装脚本执行报错或 Bootloader 拒绝引导。
ERR_VERSION_ROLLBACK1005 版本回退拦截 原因:安全策略限制,试图升级一个比当前版本更旧的固件(防降级)。
ERR_CHUNK_MISSING1006 分片丢失 (TCP流式特有) 原因:在流式传输过程中,检测到分片索引乱序或丢失,且重传失败。

OtaResponseStatusEnum

升级握手响应状态 设备收到 OtaUpgradeNotification 后,回复给服务端的决策结果。

NameValueDescription
OTA_ACCEPT0 接受升级 设备状态正常,准备开始下载/接收分片。
OTA_REJECT_GENERAL1 拒绝:通用拒绝 未归类的其他拒绝原因(建议在 message 字段附带详细说明)。
OTA_REJECT_LOW_BATTERY2 拒绝:电量不足 场景:电池供电设备电量低于阈值(如 20%),强制升级可能导致关机变砖。
OTA_REJECT_STORAGE_INSUFFICIENT3 拒绝:存储空间不足 区别:这是在下载前的“预检查”阶段拒绝,避免浪费流量下载完才发现装不下。
OTA_REJECT_BUSY4 拒绝:设备忙 场景:设备正在执行关键业务(如正在打印、正在通话、正在报警),不能打断。
OTA_REJECT_VERSION_OLD5 拒绝:版本过旧 场景:目标版本 <= 当前版本,且服务端未开启 force_update 强制覆盖。

OtaStateEnum

OTA 运行状态机 设备在执行升级任务时的生命周期状态。

NameValueDescription
STATE_IDLE0 空闲状态 设备当前没有进行任何 OTA 任务。
STATE_DOWNLOADING1 下载中 设备正在从 URL 拉取固件,或正在接收 TCP 分片数据。
STATE_VERIFYING2 校验中 下载完成,正在计算本地文件的 MD5/SHA256 并与服务端下发的指纹比对。
STATE_INSTALLING3 安装/烧录中 校验通过,正在将固件写入 Flash 或执行安装脚本(此时设备可能离线)。
STATE_SUCCESS4 升级成功 新固件启动成功,并完成了版本自检(通常在重启后上报)。
STATE_FAILED5 升级失败 流程中任意环节出错(具体原因见 OtaErrorCode)。

OtaTargetScopeEnum

升级目标范围 用于区分 OTA 任务是针对直连设备本身,还是针对其挂载的子设备。

NameValueDescription
SCOPE_SELF0 自身升级 适用场景:直连云端的设备(如网关、4G IPC、Android屏)升级自身的固件。
SCOPE_SUB_DEVICE1 子设备升级 (代理模式) 适用场景:网关下的 Zigbee/蓝牙/Modbus 子设备。 流程:网关负责下载固件,然后通过本地协议将固件传输给子设备。

PackageTypeEnum

升级包技术属性 定义固件包的打包方式,影响设备端的处理逻辑。

NameValueDescription
PKG_FULL0 全量包 (Full Image) 内容:包含完整的固件二进制文件。 优点:可靠性高,不依赖当前版本,可从任意版本直接升级。 缺点:文件大,消耗流量多,下载时间长。
PKG_DIFF1 差分包/增量包 (Diff/Patch) 内容:基于算法(如 BSDiff)生成的二进制差异数据。 优点:包体积极小(通常只有全量的 1%-10%),极其节省流量。 缺点: 1. 强依赖源版本:必须校验 `required_source_version`,版本不匹配会导致合成失败变砖。 2. 消耗算力:设备需要消耗 CPU 和内存将“旧文件 + 差分包”合成为“新文件”。

UpgradeModuleEnum

升级模块类型 定义本次 OTA 针对的具体硬件或软件模块。 IoT 设备通常采用异构架构(如 Linux 主控 + STM32 协处理器 + 4G 模组),需要明确升级对象。

NameValueDescription
MODULE_MAIN_APP0 主业务程序 场景: 1. RTOS/裸机设备:指 Flash 中的 Application 分区固件。 2. Linux/Android 设备:指部署在用户空间的上层业务程序(如 jar 包、bin 文件)。
MODULE_SYSTEM_OS1 系统镜像 (OS) 场景:Linux 的 RootFS、Kernel 或 Android 的 system.img。 特点:通常文件较大,涉及文件系统重写,风险高于普通 APP 升级。
MODULE_MCU_FIRMWARE2 外挂 MCU 固件 场景:网关内部通过 UART/SPI 连接的协处理器(如专门负责采集数据的 STM32,或负责 Zigbee 协议栈的芯片)。 流程:主控下载固件 -> 通过串口透传给 MCU -> 触发 MCU 进入 Bootloader 模式刷写。
MODULE_MODEM_FIRMWARE3 通信模组固件 场景:板载的移远、广和通等 4G/5G/NB-IoT 模组。 流程:通常使用模组厂商提供的 FOTA 指令集(AT+QUPGRADE)进行升级。
MODULE_BOOTLOADER4 Bootloader 引导程序 场景:U-Boot 或 MCU 的一级引导程序。 警告:【高危操作】一旦断电或刷写失败,设备将彻底变砖且无法远程恢复。通常不建议远程升级此模块。

UrgencyEnum

升级紧迫程度 决定设备在收到升级任务后的执行策略。

NameValueDescription
URGENCY_NORMAL0 普通升级 (推荐) 策略: 1. 静默下载。 2. 等待设备进入“闲时状态”或“维护窗口期”再安装。 3. 如果需要用户交互,会弹出提示询问是否安装。
URGENCY_CRITICAL1 紧急升级 (Critical) 场景:修复重大安全漏洞、修复导致业务瘫痪的 Bug。 策略: 1. 立即下载(可能抢占业务带宽)。 2. 下载完成后,即使设备正在运行业务,也可能强制中断并重启安装。

OtaChunkRequestMessage

[TCP] 分片数据请求 (Device -> Server) 模式:Pull (拉取) 模式。 设计理由: 相比服务端主动 Push,由设备主动 Pull 可以实现“背压 (Backpressure)”控制。 设备处理完一片(写入 Flash),再请求下一片,防止低速设备缓冲区溢出。

FieldAPI Name(Java/JSON)Type约束规则Description
task_idtask_idstring
chunk_indexchunk_indexint32
请求的分片索引 (从 0 开始) 逻辑:通常是上一次成功接收的 index + 1。 服务端根据此索引计算文件读取位置。
offsetoffsetint64
(可选) 字节偏移量 - [双重校验字段] 理论公式:offset = chunk_index * negotiated_chunk_size 设计目的: 虽然该值在数学上是冗余的,但在协议中保留是为了【防止固件错位损坏 (变砖风险)】。 场景: 若服务端与设备端的 "negotiated_chunk_size" 状态不一致(例如服务端重启后重置为 1K,而设备端仍认为是 4K)。 此时: - 设备请求 index=1 (期望获取 4096~8192 字节)。 - 若无 offset,服务端会按 1K 大小返回 1024~2048 字节。 - 结果:设备将错误的数据写入到了 Flash 的 4096 位置,导致固件损坏。 校验逻辑: 服务端必须校验:(chunk_index * session.chunk_size) == request.offset。 若不相等,应立即拒绝请求并报错。
Nested Enums defined inOtaChunkRequest

OtaChunkResponseMessage

[TCP] 分片数据响应 (Server -> Device) 服务端响应设备的 Pull 请求,返回处理过的固件数据。 数据处理流程 (Server): 原始固件切片 -> LZ4压缩 (可选) -> Base64编码 -> 填入 data 字段 数据还原流程 (Device): 读取 data -> Base64解码 -> LZ4解压 (若 compression_type=LZ4) -> 校验 CRC32 -> 写入 Flash

FieldAPI Name(Java/JSON)Type约束规则Description
task_idtask_idstring
chunk_indexchunk_indexint32
分片索引确认 设备收到后需校验:此 index 是否等于请求的 index。如果不等,说明发生乱序,需丢弃。
datadatabytes
传输载荷 (Payload) 内容:经过 Base64 编码后的字节流。 为了防止原始二进制数据中的特殊字符(如 0x00, 0x2B(+), 0x0D(\r), 0x0A(\n) 等) 被模组 AT 指令解析器误判或吞掉。 注意: 1. 这是一个 ASCII 字符流。 2. 它是“压缩后”数据的 Base64 表现形式。
data_lengthdata_lengthint32
传输数据长度 (Wire Length) 含义:当前data字段的实际字节长度(即 Base64 编码后的长度)。 用途: 客户端接收时,应使用此长度来申请或检查 Base64 解码前的输入缓冲区。 注意:此长度通常比压缩后的二进制数据大约膨胀 33%。
chunk_crc32chunk_crc32uint32
原始数据校验码 (CRC32 of RAW DATA) 含义:针对“未压缩、未编码”的原始固件切片计算的 CRC32。 校验时机: 客户端必须完成 [Base64解码] 和 [LZ4解压] 两个步骤,还原出原始数据后, 再计算 CRC32 并与此字段比对。
file_offsetfile_offsetint64
绝对字节偏移量 (File Offset) 指示还原后的原始数据应该写入 Flash 的具体字节位置。 (例如:index=1, raw_size=1024, offset=1024)
original_sizeoriginal_sizeint32
原始数据长度 (Raw / Uncompressed Size) 含义:最终还原出来的原始固件切片大小。 用途: 1. LZ4 解压参数:作为 LZ4 解压函数的目标输出缓冲区大小 (destSize)。 2. 写入校验:解压后的数据长度必须等于此值。
compression_typecompression_typecom.nexus.service.proto.enums.CompressionType
压缩方式 指示 Base64 解码后的二进制数据,是否还需要进行 LZ4 解压。 NONE: Base64解码后即为原始数据。 LZ4: Base64解码后是 LZ4 压缩流,需进一步解压。
Nested Enums defined inOtaChunkResponse

OtaProgressReportMessage

升级进度上报 (Heartbeat) 作用: 1. 更新服务端任务状态(从“已下发”变为“执行中”)。 2. 也是一种心跳机制,防止服务端认为设备离线而超时断开。 建议上报频率:每下载 5%~10% 或每隔 30秒上报一次。

FieldAPI Name(Java/JSON)Type约束规则Description
task_idtask_idstring
statestateOtaState
当前流转状态 随着流程推进,状态流转:IDLE -> DOWNLOADING -> VERIFYING -> INSTALLING -> SUCCESS/FAILED。
progress_percentprogress_percentint32
总体进度百分比 (0-100) 用于管理台 UI 展示进度条。 计算公式:(已下载字节 / file_size_bytes) * 100
error_codeerror_codeOtaErrorCode
错误码 仅当 state = STATE_FAILED 时有效,用于定位失败原因。
error_messageerror_messagestring
错误详情描述 具体的堆栈信息或错误日志摘要。
current_chunk_indexcurrent_chunk_indexint32
[断点续传] 当前已成功写入的分片索引 仅用于 TCP 模式。 作用:服务端可以将此值记录到 Redis/数据库。 如果网络中断,设备重新连接后,服务端知道从哪一片开始继续发送,无需重头开始。
Nested Enums defined inOtaProgressReport

OtaUpgradeResponseMessage

升级任务响应 (握手确认) 流程:Device 收到 OtaUpgradeNotification -> 校验自身条件 -> 立即回复此消息。 作用: 1. 告知服务端“我收到了”。 2. 告知服务端“我是否接受”。 3. (关键) 协商传输参数(如分片大小)。

FieldAPI Name(Java/JSON)Type约束规则Description
task_idtask_idstring
任务 ID 必须回传 Notification 中下发的 task_id,用于服务端关联上下文。 作用: 1. 全链路唯一标识:贯穿握手、进度上报、分片请求全流程,确保服务端能定位到具体的升级会话。 2. 安全校验:防止因网络延迟或设备重启,导致旧任务的残留数据包干扰当前任务。
statusstatusOtaResponseStatus
响应状态 决策结果:接受 (ACCEPT) 或 拒绝 (REJECT_XXX)。 如果是拒绝,服务端将标记任务失败并终止后续流程。
negotiated_chunk_sizenegotiated_chunk_sizeint32
[参数协商] 协商后的分片大小 (字节) 仅当使用 TCP 策略时有效。 逻辑: 1. 设备根据自身内存水位 (Heap/Buffer),评估服务端建议的 recommended_chunk_size。 2. 如果设备能承受,填 0 或填原值。 3. 如果设备内存紧张,填一个更小的值 (如 512 或 256)。 4. 服务端收到后,后续下发的分片数据包将严格遵守此大小限制。
messagemessagestring
附加信息 用于携带拒绝的具体原因日志,或调试信息。 例如:"Battery level 15%, threshold is 20%"。
Nested Enums defined inOtaUpgradeResponse

OtaUpgradeNotificationMessage

升级任务通知 (Server -> Device) 作用:服务端向设备下发升级指令的核心消息。 触发方式: 1. Push 模式:服务端直接下发给在线设备。 2. Pull 模式:设备主动轮询后,服务端在响应中返回此消息。

FieldAPI Name(Java/JSON)Type约束规则Description
task_idtask_idstring
任务唯一标识 作用:全链路追踪 ID。 设备在后续上报进度 (OtaProgressReport) 和 最终结果时,必须带上此 ID。
product_keyproduct_keystring
[安全核心] 产品标识 (ProductKey) 作用:双重身份校验,防止错误的固件推送到错误的设备型号。 逻辑:设备收到消息后,必须校验 `this.productKey == msg.product_key`。 如果不匹配,说明服务端路由配置错误,设备应直接丢弃消息并报错,严禁尝试下载。
module_typemodule_typeUpgradeModule
升级模块类型 指定本次升级针对的具体部件(例如:是升级主控 App,还是升级挂载的 4G 模组)。
target_versiontarget_versionstring
[展示用] 目标版本名称 示例:"v2.1.0-beta", "release-2025.12.25" 作用:仅用于日志打印、用户界面显示,**不建议**用于核心的版本比对逻辑。
target_version_codetarget_version_codeint64
[逻辑用] 目标版本代码 示例:2025122501 (时间戳风格) 或 21000 (语义化风格)。 作用:用于程序内部的版本比对。 逻辑: 1. 升级:if (target_version_code > current_code) 2. 降级/回退:if (target_version_code < current_code)。 通常设备应拒绝降级,除非 force_update 或策略允许。
distinct_hardware_versionsdistinct_hardware_versionsstringrepeated
允许升级的硬件版本列表 场景:同一款产品可能有不同的 PCB 版本(如 V1.0 用 ESP32,V2.0 用 RTL8720)。 逻辑: - 空列表:表示通刷(Compatible All)。 - 非空列表:设备检查自身的 `hardware_version` 是否包含在列表中。若不在,则拒绝升级。
target_scopetarget_scopeOtaTargetScope
升级目标范围 区分是“自身升级”还是“代理子设备升级”。 针对网关设备,这决定了固件是写给自己,还是通过 Zigbee/蓝牙转发出去。
sub_device_idsub_device_idstring
子设备 ID 仅当 target_scope = SCOPE_SUB_DEVICE 时有效。 标识具体的子设备(如 Zigbee IEEE 地址、Modbus Slave ID)。
package_typepackage_typePackageType
升级包类型 标识是“全量包”还是“差分增量包”。
required_source_versionrequired_source_versionstring
[仅差分] 必需的源版本 仅当 package_type = PKG_DIFF 时必填。 逻辑:差分包是基于特定旧版本生成的。设备必须校验 `current_version == required_source_version`。 如果版本不匹配强行打补丁,会导致固件损坏。
checksum_algorithmchecksum_algorithmChecksumAlgorithm
校验算法 指定 file_checksum 使用的是 MD5 还是 SHA256。
file_checksumfile_checksumstring
[安全核心] 文件指纹 (Hash) 作用:防止固件在传输过程中被篡改(中间人攻击)或数据损坏。 逻辑:下载完成后,设备必须计算本地文件 Hash 并与此值比对,完全一致才可安装。
file_size_bytesfile_size_bytesint64
[资源预检] 文件大小 (字节) 作用: 1. 空间检查:设备在下载前检查 `FreeStorage > file_size_bytes * 1.5` (预留解压空间)。 2. 进度计算:用于计算下载百分比。
urgencyurgencyUrgency
紧迫程度 - NORMAL: 闲时安装,避开业务高峰。 - CRITICAL: 立即打断业务进行安装。
max_retry_countmax_retry_countint32
[熔断机制] 最大失败重试次数 建议值:3 ~ 5 次。 作用:防止因网络环境恶劣或固件本身问题导致设备陷入“死循环下载”,造成流量费爆炸。
http_strategyhttp_strategyHttpTransport
策略 A: HTTP 拉取模式 适用于:支持 HTTP 协议栈,网络带宽较好的设备(如 Linux 网关、Android 屏)。
tcp_strategytcp_strategyTcpStreamTransport
策略 B: TCP 分片流式模式 适用于:仅有 TCP/UDP 能力,或对单包大小限制严格的低功耗设备(如 NB-IoT 模组)。
download_delay_jitter_secondsdownload_delay_jitter_secondsint32
下载启动随机延迟 (单位: 秒) 作用:错峰下载,防止惊群效应。 逻辑:设备收到通知后,不立即开始下载,而是先睡眠一个随机时间。 公式:wait_time = Random(0, download_delay_jitter_seconds) 场景:全网推送时,设置此值为 3600 (1小时),则百万台设备的请求会均匀分散在 1 小时内。
Nested Enums defined inOtaUpgradeNotification

HttpTransportMessage

策略 A 详情:HTTP 拉取

FieldAPI Name(Java/JSON)Type约束规则Description
download_urldownload_urlstring
timeout_secondstimeout_secondsint32
headersheadersHttpTransport.HeadersEntryrepeated
Nested Enums defined inHttpTransport

HeadersEntryMessage

FieldAPI Name(Java/JSON)Type约束规则Description
keykeystring
valuevaluestring
Nested Enums defined inHeadersEntry

TcpStreamTransportMessage

策略 B 详情:TCP 分片流

FieldAPI Name(Java/JSON)Type约束规则Description
recommended_chunk_sizerecommended_chunk_sizeint32
服务端建议的单片大小 (字节)
Nested Enums defined inTcpStreamTransport

AttributeUpdateRequestMessage

[设备 -> 服务端] 属性变更/状态上报 场景: 1. 定时上报传感器数据 -> 填充 status 2. 本地有人按开关改变了配置 -> 填充 settings 3. 设备启动全量上报 -> 填充 settings + status

FieldAPI Name(Java/JSON)Type约束规则Description
update_reasonupdate_reasoncom.nexus.service.proto.enums.UpdateReasonoptional
变更原因
thing_settingsthing_settingsThingSettingsoptional
上报当前的配置 (可选,仅在本地配置变更时携带)
thing_statusthing_statusThingStatusoptional
上报当前的状态 (可选,周期性或变化时携带)
task_idtask_idstringoptional
(可选) 如果是因为某个具体的远程命令/任务触发的,可以带上任务ID以便云端做链路追踪
Nested Enums defined inAttributeUpdateRequest

PropertyGetRequestMessage

[服务端 -> 设备] 查询请求

FieldAPI Name(Java/JSON)Type约束规则Description
query_maskquery_maskuint32optional
粗粒度控制,仅作为大类别的快速开关: 1=Settings, 2=Status,4=DeviceTopology
trigger_sourcetrigger_sourcecom.nexus.service.proto.enums.TriggerSourceoptional
触发源
request_settingsrequest_settingsThingSettings.SettingsModulerepeated
请求的 Settings 模块列表。如果数组为空,约定为“查询全部 Settings”
request_statusrequest_statusThingStatus.StatusModulerepeated
请求的 Status 模块列表 当查询为query_mask=2,并数组为空,代表查询全部 当查询为query_mask=2,并数组不为空,代表指定查询
channel_selectorchannel_selectorcom.nexus.service.proto.channel.ChannelDataSelectoroptional
统一的通道/模块查询过滤器
Nested Enums defined inPropertyGetRequest

PropertyGetResponseMessage

[设备 -> 服务端] 查询响应 返回完整的物模型视图

FieldAPI Name(Java/JSON)Type约束规则Description
response_bodyresponse_bodycom.nexus.service.proto.common.ResponseBodyoptional
响应body
trigger_sourcetrigger_sourcecom.nexus.service.proto.enums.TriggerSourceoptional
触发源
thing_settingsthing_settingsThingSettingsoptional
配置
thing_statusthing_statusThingStatusoptional
状态
Nested Enums defined inPropertyGetResponse

PropertySetRequestMessage

请求/响应消息重新定义 [服务端 -> 设备] 设置/控制请求

FieldAPI Name(Java/JSON)Type约束规则Description
settingssettingsThingSettingsoptional
常规配置更新 (全量或大粒度,如修改系统阈值)
trigger_sourcetrigger_sourcecom.nexus.service.proto.enums.TriggerSourceoptional
触发源
module_controlsmodule_controlscom.nexus.service.proto.channel.ChannelActionUnitrepeated
通道/开关的快捷控制指令 (针对性强,高频操作)
peripheralsperipheralsPeripheralsoptional
外设
device_command_requestdevice_command_requestcom.nexus.service.proto.device.DeviceCommandRequestoptional
设备命令请求
Nested Enums defined inPropertySetRequest

PropertySetResponseMessage

[设备 -> 服务端] 设置响应

FieldAPI Name(Java/JSON)Type约束规则Description
response_bodyresponse_bodycom.nexus.service.proto.common.ResponseBodyoptional
响应body
trigger_sourcetrigger_sourcecom.nexus.service.proto.enums.TriggerSourceoptional
触发源
device_topologydevice_topologycom.nexus.service.proto.channel.DeviceTopologyoptional
执行通道(开/关)控制后的状态快照 必须包含最新的 switch_state 和 measure (电压/电流/功率)
peripheralsperipheralsPeripheralsoptional
外设
Nested Enums defined inPropertySetResponse

AlarmSettingsMessage

告警配置

FieldAPI Name(Java/JSON)Type约束规则Description
device_electrical_alarm_profile_enableddevice_electrical_alarm_profile_enabledbooloptional
电气报警使能
device_electrical_alarm_profiledevice_electrical_alarm_profilecom.nexus.service.proto.config.DeviceElectricalAlarmProfileoptional
自身电气报警配置
network_alarm_strategy_enablednetwork_alarm_strategy_enabledbooloptional
网络报警使能
network_alarm_strategynetwork_alarm_strategycom.nexus.service.proto.config.NetworkAlarmStrategyoptional
网络报警策略
peripheral_alarm_strategy_enabledperipheral_alarm_strategy_enabledbooloptional
外设告警使能
peripheral_alarm_strategyperipheral_alarm_strategycom.nexus.service.proto.config.PeripheralAlarmStrategyoptional
外设告警配置
Nested Enums defined inAlarmSettings

PeripheralsMessage

外设

FieldAPI Name(Java/JSON)Type约束规则Description
door_lock_actiondoor_lock_actioncom.nexus.service.proto.device.DoorLockActionoptional
门锁控制
fanfancom.nexus.service.proto.device.FanSystemoptional
风扇设置
Nested Enums defined inPeripherals

SensorsMessage

传感器

FieldAPI Name(Java/JSON)Type约束规则Description
Nested Enums defined inSensors

ThingSettingsMessage

可写配置集 (Read-Write) 包含所有服务端可以下发控制、或者修改配置的字段

FieldAPI Name(Java/JSON)Type约束规则Description
device_infodevice_infocom.nexus.service.proto.device.DeviceInfooptional
静态信息 (SN, 型号, 版本)
system_configsystem_configcom.nexus.service.proto.config.SystemConfigoptional
系统配置 (例如:阈值、报警开关)
network_confignetwork_configcom.nexus.service.proto.config.TerminalNetworkConfigoptional
网络配置 (例如:双链路参数)
device_topologydevice_topologycom.nexus.service.proto.channel.DeviceTopologyoptional
通道与模块的配置集合
device_hardware_profiledevice_hardware_profilecom.nexus.service.proto.device.DeviceHardwareProfileoptional
设备本体额定值集合
device_electrical_alarm_profiledeprecateddevice_electrical_alarm_profilecom.nexus.service.proto.config.DeviceElectricalAlarmProfileoptional
[已废弃] 仅为兼容老版本设备,新设备请使用 alarm_settings
alarm_settingsalarm_settingsAlarmSettingsoptional
告警配置
metering_configmetering_configcom.nexus.service.proto.config.MeteringConfigoptional
计量模块配置与校准参数 (读写) 用于下发标定参数、校准增益、修改底层计量寄存器配置
task_settingstask_settingscom.nexus.service.proto.config.TaskSettingsoptional
定时任务/调度策略配置
Nested Enums defined inThingSettings

SettingsModuleEnum

对应 ThingSettings 里的字段索引

NameValueDescription
SETTINGS_UNKNOWN0
SETTINGS_DEVICE_INFO1对应 device_info (设备基础信息)
SETTINGS_SYSTEM_CONFIG2对应 system_config (系统配置)
SETTINGS_TERMINAL_NETWORK_CONFIG3对应 terminal_network_config (网络配置)
SETTINGS_DEVICE_TOPOLOGY4对应 device_topology
SETTINGS_HARDWARE_PROFILE20对应 device_hardware_profile
SETTINGS_DEVICE_ELECTRICAL_ALARM_PROFILE51对应 device_electrical_alarm_profile (设备自身电气告警策略)
SETTINGS_PERIPHERAL_ALARM_STRATEGY61对应 alarm_strategy (告警策略)
SETTINGS_DEVICE_METERING_CONFIG101对应 metering_config (计量配置)
SETTINGS_TASK_SETTINGS111对应 task_settings (定时任务配置)

ThingStatusMessage

只读状态集 (Read-Only) 包含设备客观存在的状态、采样数据、静态信息,服务端不可修改

FieldAPI Name(Java/JSON)Type约束规则Description
system_statesystem_statecom.nexus.service.proto.device.SystemStateoptional
运行状态 (CPU, 内存, 运行时长)
battery_statebattery_statecom.nexus.service.proto.device.BatteryStateoptional
电池/能源状态
sensor_statesensor_statecom.nexus.service.proto.device.SensorStateoptional
传感器采样数据 (所有传感器的大类)
metering_statemetering_statecom.nexus.service.proto.config.MeteringStateoptional
计量模块实时状态数据 (只读) 用于上报当前的电压、电流、功率、累计电量等
network_statenetwork_statecom.nexus.service.proto.device.NetworkStateoptional
网络状态
active_monitor_stateactive_monitor_statecom.nexus.service.proto.device.ActiveMonitorStateoptional
主动监控任务状态
Nested Enums defined inThingStatus

StatusModuleEnum

定义可查询的状态模块枚举 命名规范:MODULE_<模块名>

NameValueDescription
MODULE_UNSPECIFIED0默认值,防错处理
MODULE_SYSTEM1对应 system_state
MODULE_BATTERY2对应 battery_state
MODULE_SENSOR30对应 sensor_state 注意:只代表"查询传感器模块"。如需指定"风扇"或"开关", 请在外部 Request 的 channel_selector 中指定设备类型/ID,勿在此处无限增加枚举。
MODULE_METERING_STATE40对应 metering_state
MODULE_NETWORK_STATE51对应 network_state
ACTIVE_MONITOR_STATE61对应 active_monitor_state

DecimalPointMessage

为每种格式定义一个包含经纬度的 "Point" 消息

FieldAPI Name(Java/JSON)Type约束规则Description
longitudelongitudedoubleoptional
经度
latitudelatitudedoubleoptional
纬度
coord_systemcoord_systemCoordinateSystemoptional
坐标系类型 明确告诉后端:这组经纬度是百度家的还是高德家的,防止地图偏移
horizontal_accuracyhorizontal_accuracyfloatoptional
水平精度 (单位: 米) 很多业务场景需要根据精度过滤掉“飘”太远的定位点
altitudealtitudedoubleoptional
海拔
Nested Enums defined inDecimalPoint

LocationDataMessage

地理位置数据模型

FieldAPI Name(Java/JSON)Type约束规则Description
decimal_pointdecimal_pointDecimalPointoptional
标准经纬度 (小数形式) 样例: { longitude: 116.404, latitude: 39.915 }
gga_datagga_dataNmeaGgaDataoptional
上报从 NMEA GGA 语句中解析出的原始字段
source_typesource_typeLocationSourceTypeoptional
定位来源
rmc_datarmc_dataNmeaRmcDataoptional
上报从 NMEA RMC 语句中解析出的原始字段 (包含日期、速度、航向等)
location_timestamp_mslocation_timestamp_msint64optional
【定位时间戳】 生成逻辑: 1. 结合 RMC 语句的 utc_date (DDMMYY) 与 GGA/RMC 语句的 utc_time (HHMMSS.SS) 获取原始 UTC 时间。 2. 特别注意:NMEA 协议输出的是 UTC 时间(+0时区),嵌入式端在生成时间戳前,必须在该时间基础上【增加 8 小时】。 3. 最终上报:北京时间(东八区)相对于 1970-01-01 00:00:00 的毫秒数。 目的:IOT 网关和后端将直接存储此时间戳,前端展示不再进行时区偏移转换。
Nested Enums defined inLocationData

NmeaGgaDataMessage

NMEA GGA 语句的结构化表示(GGA 默认通常是 WGS-84)

FieldAPI Name(Java/JSON)Type约束规则Description
latitudelatitudedoubleoptional
纬度, 格式: ddmm.mmmm (度在前, 分在后并含小数)
latitude_hemispherelatitude_hemisphereHemisphereoptional
纬度半球方向
longitudelongitudedoubleoptional
经度, 格式: dddmm.mmmm (度在前, 分在后并含小数)
longitude_hemispherelongitude_hemisphereHemisphereoptional
经度半球方向
fix_qualityfix_qualityFixQualityoptional
定位质量
satellite_countsatellite_countint32optional
用于定位的卫星数量
hdophdopfloatoptional
HDOP - 水平精度因子
altitudealtitudefloatoptional
海拔高度 (单位: 米)
water_surface_altitudewater_surface_altitudefloatoptional
大地水准面差距 (单位: 米)
Nested Enums defined inNmeaGgaData

NmeaRmcDataMessage

NMEA RMC 语句的结构化表示 (Recommended Minimum Specific GPS/TRANSIT Data) 只有 RMC 包含了完整的日期信息、速度和运动方向。

FieldAPI Name(Java/JSON)Type约束规则Description
utc_timeutc_timestringoptional
UTC 时间, 格式: hhmmss.ss
statusstatusRmcStatusoptional
定位状态 (A=有效, V=无效)
speed_knotsspeed_knotsfloatoptional
对地速度 (单位: 节, Knots) -> 1节 = 1.852 km/h
course_degreescourse_degreesfloatoptional
对地航向 (单位: 度, Degrees)
utc_dateutc_datestringoptional
UTC 日期, 格式: ddmmyy (日月年) 样例: "250324" 代表 2024年3月25日
magnetic_variationmagnetic_variationfloatoptional
磁偏角 (单位: 度, 部分便宜的 GPS 模块可能不输出此项)
magnetic_variation_directionmagnetic_variation_directionHemisphereoptional
磁偏角方向 (E/W)
Nested Enums defined inNmeaRmcData

CoordinateSystemEnum

--- 坐标系类型 ---

NameValueDescription
COORD_SYSTEM_UNSPECIFIED0
WGS841WGS-84: 全球标准 GPS 坐标系 (Google Maps 国际版、设备原始输出)
GCJ022GCJ-02: 中国国家测绘局标准 (火星坐标系),高德、腾讯、Google 中国使用
BD093BD-09: 百度坐标系,在高德基础上二次加密
CGCS20004CGCS2000: 中国大地坐标系 2000,国家标准,常用于政务、GIS及高精度地图

FixQualityEnum

定义 GGA 定位质量指示

NameValueDescription
INVALID00 = 无效解
GPS_FIX11 = GPS 单点定位
DGPS_FIX22 = DGPS 差分定位
PPS_FIX33 = PPS 解
REAL_TIME_KINEMATIC44 = RTK 固定解
FLOAT_RTK55 = RTK 浮点解
ESTIMATED66 = 正在估算
MANUAL_INPUT_MODE77 = 手动输入模式
SIMULATION_MODE88 = 模拟模式

HemisphereEnum

定义半球方向的枚举

NameValueDescription
HEMISPHERE_UNKNOWN0
NORTH1北纬 (N)
SOUTH2南纬 (S)
EAST3东经 (E)
WEST4西经 (W)

LocationSourceTypeEnum

定义定位来源的枚举类型

NameValueDescription
SOURCE_UNKNOWN0未知来源
GPS1GPS 定位
WIFI2Wi-Fi 三角定位
CELLULAR3蜂窝网络基站定位
BEI_DOU4北斗定位

RmcStatusEnum

RMC 定位状态指示

NameValueDescription
RMC_STATUS_UNKNOWN0
A_ACTIVE1A = 数据有效 (已定位)
V_VOID2V = 数据无效 (未定位/导航接收机警告)

PropertyReportMessage

属性/状态上报消息 (Property/State Report) 用途: 1. 周期性上报设备的运行状态(如温度、电压、开关状态)。 2. 设备上线/重启时上报静态属性(如固件版本、SN号)。 区别: 不同于 Event (瞬时触发、报警),此处数据通常用于时序数据库存储或设备影子更新。

FieldAPI Name(Java/JSON)Type约束规则Description
request_idrequest_idstringoptional
全链路追踪 ID,用于日志审计
gateway_idgateway_idstringoptional
代理网关 ID (直连设备可填自身 ID 或留空)
data_timestampdata_timestampint64optional
数据打包的系统时间戳 (毫秒)
initial_attributesinitial_attributesInitialAttributeReport
设备冷启动/重连时的静态属性上报 (如:SN、MAC、固件版本)
thing_modelthing_modelThingModelReport
定时/变化上报的动态物模型遥测数据 (如:当前温度、当前运行模式)
channel_reportchannel_reportcom.nexus.service.proto.channel.DeviceTopology
通道上报
locationlocationLocationData
设备的实时地理位置信息 (GNSS/基站定位)
Nested Enums defined inPropertyReport

InitialAttributeReportMessage

设备上线初始化上报,用于同步静态资产与启动状态

FieldAPI Name(Java/JSON)Type约束规则Description
current_power_supplycurrent_power_supplycom.nexus.service.proto.enums.PowerSupplySourceoptional
当前供电来源(用于判断设备是否处于断电应急状态)(如:电池、市电、POE)
device_infodevice_infocom.nexus.service.proto.device.DeviceInfooptional
通用设备身份信息(包含SN、MAC、固件版本等)
local_iplocal_ipstringoptional
局域网IP,方便内网排查
boot_countboot_countuint32optional
设备系统累计启动次数(主控芯片/OS 重启)
boot_last_reset_timeboot_last_reset_timeint64optional
系统上次重启时间戳
comm_module_reset_countcomm_module_reset_countuint32optional
通信模组累计重启次数(如 4G/WiFi 模组因网络异常、死机被主动或被动复位)
comm_module_last_reset_timecomm_module_last_reset_timeint64optional
通信模组上次重启时间戳
device_timestampdevice_timestampint64optional
设备当前时间戳,检查时钟漂移
boot_duration_msboot_duration_msint32optional
本次系统启动耗时,单位:毫秒
last_reboot_reasonlast_reboot_reasoncom.nexus.service.proto.enums.RebootReasonoptional
[关键诊断字段] 上一次设备 MCU 重启的【硬件底层原因】(如:看门狗复位、OTA升级、掉电) 该值通常在系统启动最早期,通过读取芯片的 Reset Control 寄存器获得。 它可以告诉云端设备是断电了、按键了、还是看门狗咬了。
reboot_detail_messagereboot_detail_messagestringoptional
重启原因的详细补充描述(可选,如崩溃堆栈或错误码)
system_statesystem_statecom.nexus.service.proto.device.SystemStateoptional
系统核心运行状态(CPU负载、内存使用、存储空间等)
mcu_specmcu_speccom.nexus.service.proto.common.McuSpecoptional
MCU型号 (如 ESP32, STM32F4, STM32L4)
cellular_identitycellular_identitycom.nexus.service.proto.common.CellularIdentityoptional
移动网络运营商 (SIM卡)
cellular_signal_qualitycellular_signal_qualitycom.nexus.service.proto.common.CellularSignalQualityoptional
信号质量
online_reasononline_reasoncom.nexus.service.proto.enums.OnlineReasonoptional
[关键诊断字段] 本次建立网络连接的【上层业务原因】 该值由应用层逻辑判定。不一定伴随重启(如网络断线重连)。 它回答了:"设备现在为什么要连云平台?" 用于触发云端的对应业务闭环(如OTA成功确认)。
network_confignetwork_configcom.nexus.service.proto.config.TerminalNetworkConfigoptional
网络诊断与配置信息 仅在 online_reason = FALLBACK_DOMAIN_RECOVERY 或 触发特定诊断任务时上报
Nested Enums defined inInitialAttributeReport

ThingModelReportMessage

物模型定时上报的完整遥测数据 (周期性上报)

FieldAPI Name(Java/JSON)Type约束规则Description
work_modework_modestringoptional
--- 元数据 --- 设备当前的工作模式(如:省电、高性能、维护模式)
system_statesystem_statecom.nexus.service.proto.device.SystemStateoptional
--- 聚合数据 --- 系统核心运行状态(CPU负载、内存使用、存储空间等)
battery_statebattery_statecom.nexus.service.proto.device.BatteryStateoptional
电池健康度与充放电状态
network_statenetwork_statecom.nexus.service.proto.device.NetworkStateoptional
网络连接详情(信号强度 RSSI、运营商、IP地址等)
sensor_statesensor_statecom.nexus.service.proto.device.SensorStateoptional
外接传感器业务采集数据
electrical_overviewelectrical_overviewcom.nexus.service.proto.device.ElectricalNodeoptional
整机电气总览
health_statushealth_statuscom.nexus.service.proto.common.DeviceInternalHealthoptional
设备当前健康状态
Nested Enums defined inThingModelReport

BinaryPayloadMessage

专门用于封装二进制数据的消息对象

FieldAPI Name(Java/JSON)Type约束规则Description
datadatabytes
这里存放实际的数据
Nested Enums defined inBinaryPayload

WrapperMessageMessage

唯一的“包装器”消息,作为所有通信的顶层结构。

FieldAPI Name(Java/JSON)Type约束规则Description
request_idrequest_idstringoptional
请求ID,用于全链路追踪或请求-响应关联 【ID生成策略分流说明】: 1. 常规端 (Web / API / App): 统一使用标准的 UUID (如 UUID v4),确保全局唯一性。 2. 嵌入式端 (Device / Embedded): 【心跳场景优化】为降低资源消耗,采用“易失性自增序列号”(转为String传输)。 - 初始状态:程序启动/重启后,计数器归零。 - 变化规则:每次发送心跳时递增 (+1)。 - 业务含义:不仅节省生成UUID开销,服务端还可通过ID归零判定设备发生了重启。
device_iddevice_idstringoptional
设备唯一标识
protocol_versionprotocol_versionuint32optional
每次发生破坏性变更时,此版本号应递增。
timestamptimestampint64optional
消息生成时的时间戳 (Unix-timestamp, 毫秒)
compressioncompressionenums.CompressionTypeoptional
压缩算法
encryption_typeencryption_typeenums.EncryptionTypeoptional
加密算法类型
encryption_ivencryption_ivbytesoptional
加密向量(IV)
message_typemessage_typeenums.MessageTypeoptional
真实消息类型
signature_typesignature_typeenums.SignatureTypeoptional
签名类型
signaturesignaturestringoptional
消息签名
tokentokenstringoptional
鉴权令牌 (Access Token) 场景:除了登录请求(LoginRequest)外,后续所有请求(如心跳、事件)都需携带此Token
codecodeint32optional
【全局响应状态区域】 (仅云端下发 Response 时携带) 全局响应业务码。 说明:1 表示成功。其他遵循 "模块+具体错误" 的5-6位数字(如 201004)
login_requestlogin_requestLoginRequest
登录请求
login_responselogin_responseLoginResponse
登录响应
heartbeat_requestheartbeat_requestHeartbeatRequest
心跳请求
heartbeat_responseheartbeat_responseHeartbeatResponse
心跳响应
property_set_requestproperty_set_requestproperty.PropertySetRequest
属性/配置管理(100-199) [服务端 -> 设备] 下发控制指令,修改设备属性或配置。
property_set_responseproperty_set_responseproperty.PropertySetResponse
[设备 -> 服务端] 反馈控制指令的执行结果(成功/失败)。
property_get_requestproperty_get_requestproperty.PropertyGetRequest
[服务端 -> 设备] 主动查询设备的当前属性状态。
property_get_responseproperty_get_responseproperty.PropertyGetResponse
[设备 -> 服务端] 返回查询到的最新属性值。
event_reportevent_reportevent.EventReport
事件层 (瞬时动作、报警)
attribute_update_requestattribute_update_requestproperty.AttributeUpdateRequest
[设备 -> 服务端] 主动上报本地发生的属性变更(如物理开关触发)。
property_reportproperty_reportreport.PropertyReport
属性上报层 (状态、遥测)
device_operation_reportdevice_operation_reportdevice.DeviceOperationReport
设备操作异步上报详情
response_bodyresponse_bodycommon.ResponseBody
统一的响应字段
binary_databinary_dataBinaryPayload
二进制载荷 (通用容器)
ota_upgrade_notificationota_upgrade_notificationota.OtaUpgradeNotification
OTA 固件升级与运维 (700-709) 服务端通知设备升级 (Push)
ota_upgrade_responseota_upgrade_responseota.OtaUpgradeResponse
OTA 通知响应
ota_progress_reportota_progress_reportota.OtaProgressReport
设备上报进度 (Report)
ota_chunk_requestota_chunk_requestota.OtaChunkRequest
TCP流式-请求分片 (Pull)
ota_chunk_responseota_chunk_responseota.OtaChunkResponse
TCP流式-响应分片 (Reply)
ota_config_updateota_config_updateota.OtaConfig
修改OTA检查配置 (Config)
Nested Enums defined inWrapperMessage