Files
pig-farm-controller/internal/domain/device/proto/device.proto

51 lines
1.6 KiB
Protocol Buffer
Raw Normal View History

syntax = "proto3";
package device;
import "google/protobuf/any.proto";
2025-10-02 00:18:13 +08:00
option go_package = "internal/domain/device/proto";
// --- 通用指令结构 ---
2025-09-15 23:45:15 +08:00
// 指令类型
enum MethodType {
2025-09-29 23:54:09 +08:00
INSTRUCTION = 0; // 下发指令
COLLECT = 1; // 批量采集
}
// 平台生成的原始485指令单片机直接发送到总线
message Raw485Command {
2025-09-30 00:01:51 +08:00
int32 bus_number = 1; // 总线号,用于指示单片机将指令发送到哪个总线
bytes command_bytes = 2; // 原始485指令的字节数组
}
// 指令 (所有空中数据都会被包装在这里面)
2025-09-29 23:54:09 +08:00
// data字段现在可以包含 Raw485Command表示平台生成的原始485指令。
message Instruction {
2025-09-15 23:45:15 +08:00
MethodType method = 1;
2025-09-29 23:54:09 +08:00
google.protobuf.Any data = 2; // 可以是 Switch, Raw485Command 等
}
// --- 批量采集相关结构 ---
// BatchCollectCommand
// 用于在平台内部构建一个完整的、包含所有元数据的批量采集任务。
// 这个消息本身不会被发送到设备。
message BatchCollectCommand {
2025-09-30 00:01:51 +08:00
string correlation_id = 1; // 用于关联请求和响应的唯一ID
repeated CollectTask tasks = 2; // 采集任务列表
2025-09-25 20:16:07 +08:00
}
// CollectTask
2025-09-30 00:01:51 +08:00
// 定义了单个采集任务的“意图”。现在直接包含平台生成的原始485指令并带上总线号。
message CollectTask {
2025-09-30 00:01:51 +08:00
Raw485Command command = 2; // 平台生成的原始485指令
2025-09-26 15:26:21 +08:00
}
// CollectResult
// 这是设备响应的、极致精简的数据包。
message CollectResult {
2025-09-30 00:01:51 +08:00
string correlation_id = 1; // 从下行指令中原样返回的关联ID
repeated float values = 2; // 按预定顺序排列的采集值
2025-09-15 23:45:15 +08:00
}