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;   // 按预定顺序排列的采集值
 | |
| } |