55 lines
1.4 KiB
Protocol Buffer
55 lines
1.4 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package device;
|
|
|
|
import "google/protobuf/any.proto";
|
|
|
|
option go_package = "internal/app/service/device/proto";
|
|
|
|
// --- 通用指令结构 ---
|
|
|
|
// 指令类型
|
|
enum MethodType {
|
|
SWITCH = 0; // 启停
|
|
COLLECT = 1; // 采集
|
|
}
|
|
|
|
// 指令 (所有空中数据都会被包装在这里面)
|
|
message Instruction {
|
|
MethodType method = 1;
|
|
google.protobuf.Any data = 2;
|
|
}
|
|
|
|
// Switch 指令的载荷
|
|
message Switch {
|
|
string device_action = 1; // 指令
|
|
int32 bus_number = 2; // 总线号
|
|
int32 bus_address = 3; // 总线地址
|
|
int32 relay_channel = 4; // 继电器通道号
|
|
}
|
|
|
|
|
|
// --- 批量采集相关结构 ---
|
|
|
|
// BatchCollectCommand
|
|
// 用于在平台内部构建一个完整的、包含所有元数据的批量采集任务。
|
|
// 这个消息本身不会被发送到设备。
|
|
message BatchCollectCommand {
|
|
string correlation_id = 1; // 用于关联请求和响应的唯一ID
|
|
repeated CollectTask tasks = 2; // 采集任务列表
|
|
}
|
|
|
|
// CollectTask
|
|
// 定义了单个采集任务的“意图”。
|
|
message CollectTask {
|
|
string device_action = 1; // 指令
|
|
int32 bus_number = 2; // 总线号
|
|
int32 bus_address = 3; // 总线地址
|
|
}
|
|
|
|
// CollectResult
|
|
// 这是设备响应的、极致精简的数据包。
|
|
message CollectResult {
|
|
string correlation_id = 1; // 从下行指令中原样返回的关联ID
|
|
repeated float values = 2; // 按预定顺序排列的采集值
|
|
} |