定义模型的proto文件

This commit is contained in:
joylink_zhangsai 2023-08-25 15:54:46 +08:00
parent 747c9a2347
commit f980c6b826

97
proto/src/model.proto Normal file
View File

@ -0,0 +1,97 @@
syntax = "proto3";
package model;
option go_package = "./model/proto";
message Repository {
repeated Turnout turnouts = 1;
repeated Signal Signals = 2;
repeated Section sections = 3;
repeated AxleCounter axleCounters = 4;
repeated Responder responders = 5;
repeated Slope slopes = 6;
repeated Curve curves = 7;
}
message Turnout {
Id id = 1;
Kilometer kilometer = 2;
Id axleCounterA = 3; //A端关联的计轴
Id axleCounterB = 4;
Id axleCounterC = 5;
}
message Signal {
Id id = 1;
Kilometer kilometer = 2;
DevicePort relDevice = 3; //
}
message Section {
Id id = 1;
Id axleCounterA = 2; //A端关联的计轴
Id axleCounterB = 3; //B端关联的计轴
Id turnout = 4; //
}
message AxleCounter{
Id id = 1;
Kilometer kilometer = 2;
bool virtual = 3; //
}
message Responder {
Id id = 1;
Kilometer kilometer = 2;
}
//
message Slope {
Id id = 1;
repeated Point points = 2;
int32 degree = 3; //sin * 1000
}
//线
message Curve {
Id id = 1;
repeated Point points = 2;
int32 radius = 3; // mm
}
message DevicePort {
Id deviceId = 1;
Port port = 2;
}
message Id {
string lineId = 1;
string stationId = 2;
string index = 3;
}
enum Port {
UNKNOWN = 0;
A = 1;
B = 2;
C = 3;
}
//
message Kilometer {
int64 kilometer = 1; //mm
string coordinateSystem = 2; //
Direction direction = 3; //
}
//
enum Direction {
LEFT = 0;
RIGHT = 1;
}
//
message Point {
repeated Kilometer kilometers = 1;
}