syntax = "proto3"; package sensor_stream; // 传感器数据推送服务 —— Rust 端作为 gRPC client 推送实时帧 service SensorPush { rpc Upload (stream SensorFrame) returns (UploadResponse); } // 导出后处理服务 —— Rust 导出 CSV 后将路径发给 Python 做梯度过滤 service ExportProcessor { rpc ProcessFile (ProcessRequest) returns (ProcessResponse); } // 一帧传感器数据 message SensorFrame { uint64 seq = 1; uint64 timestamp_ms = 2; uint32 rows = 3; uint32 cols = 4; repeated uint32 matrix = 5; double resultant_force = 6; uint32 dts_ms = 7; } // 上传确认响应 message UploadResponse { bool ok = 1; uint64 frames_received = 2; string message = 3; } // 导出处理请求 message ProcessRequest { string csv_path = 1; // 导出的 CSV 文件路径 bool save_as_xlsx = 2; // 是否以 xlsx 保存(删除源 CSV) } // 导出处理响应 message ProcessResponse { bool ok = 1; string output_path = 2; // 输出文件路径 uint32 groups_used = 3; // 分组数 double mean_value = 4; // 均值 double threshold = 5; // 梯度阈值 uint32 rows_total = 6; // 原始行数 uint32 rows_kept = 7; // 保留行数 string message = 8; }