syntax = "proto3"; package sensor_stream; service SensorPush { rpc Upload(stream SensorFrame) returns (stream PztAngleResponse); } 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 PztAngleResponse { uint64 seq = 1; uint64 timestamp_ms = 2; float angle = 3; uint32 dts_ms = 4; bool ok = 5; string message = 6; } message ProcessRequest { string csv_path = 1; bool save_as_xlsx = 2; } 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; }