增加门控箱交互接口;修改门控箱构建逻辑bug;增加屏蔽门状态
This commit is contained in:
parent
f87d820196
commit
d8b93dc309
@ -36,6 +36,7 @@ func InitSimulationRouter(api *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddle
|
||||
authed.POST("/signal/operation", signalOperation)
|
||||
authed.POST("/esbBtn/operation", esbBtnOperation)
|
||||
authed.POST("/ibp/operation", ibpBtnOperation)
|
||||
authed.POST("/psl/operation", pslBtnOperation)
|
||||
|
||||
// 初始化地图信息
|
||||
initPublishMapInfo()
|
||||
@ -333,6 +334,33 @@ func ibpBtnOperation(c *gin.Context) {
|
||||
c.JSON(http.StatusOK, "ok")
|
||||
}
|
||||
|
||||
// PSL操作
|
||||
//
|
||||
// @Summary PSL操作
|
||||
//
|
||||
// @Security JwtAuth
|
||||
//
|
||||
// @Description PSL操作
|
||||
// @Tags ATS测试仿真Api
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param Authorization header string true "JWT Token"
|
||||
// @Param ButtonOperationReqDto body dto.ButtonOperationReqDto true "PSL操作"
|
||||
//
|
||||
// @Success 200 {object} string
|
||||
// @Failure 500 {object} dto.ErrorDto
|
||||
// @Router /api/v1/simulation/ibp/operation [post]
|
||||
func pslBtnOperation(c *gin.Context) {
|
||||
req := &dto.PslOperationReqDto{}
|
||||
if err := c.ShouldBind(&req); err != nil {
|
||||
panic(dto.ErrorDto{Code: dto.ArgumentParseError, Message: err.Error()})
|
||||
}
|
||||
simulation := checkDeviceDataAndReturn(req.SimulationId)
|
||||
slog.Info("传入状态参数", req)
|
||||
memory.ChangePSLButtonState(simulation, req.MapId, req.GateBoxId, req.ButtonCode, req.Down)
|
||||
c.JSON(http.StatusOK, "ok")
|
||||
}
|
||||
|
||||
// 获取仿真信息更新通道名称
|
||||
//
|
||||
// @Summary 获取仿真信息更新通道名称
|
||||
|
@ -1477,6 +1477,62 @@ func (x *LightState) GetAspect() Signal_Aspect {
|
||||
return Signal_Non
|
||||
}
|
||||
|
||||
// 屏蔽门状态
|
||||
type PsdState struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` //屏蔽门的id
|
||||
OpenDoorCodes []string `protobuf:"bytes,2,rep,name=openDoorCodes,proto3" json:"openDoorCodes,omitempty"` //开启的小门的编号
|
||||
}
|
||||
|
||||
func (x *PsdState) Reset() {
|
||||
*x = PsdState{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_device_state_proto_msgTypes[14]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *PsdState) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*PsdState) ProtoMessage() {}
|
||||
|
||||
func (x *PsdState) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_device_state_proto_msgTypes[14]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use PsdState.ProtoReflect.Descriptor instead.
|
||||
func (*PsdState) Descriptor() ([]byte, []int) {
|
||||
return file_device_state_proto_rawDescGZIP(), []int{14}
|
||||
}
|
||||
|
||||
func (x *PsdState) GetId() string {
|
||||
if x != nil {
|
||||
return x.Id
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *PsdState) GetOpenDoorCodes() []string {
|
||||
if x != nil {
|
||||
return x.OpenDoorCodes
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// 仿真运行时状态变化量,当前时刻与上一时刻比较得到
|
||||
type VariationStatus struct {
|
||||
state protoimpl.MessageState
|
||||
@ -1498,7 +1554,7 @@ type VariationStatus struct {
|
||||
func (x *VariationStatus) Reset() {
|
||||
*x = VariationStatus{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_device_state_proto_msgTypes[14]
|
||||
mi := &file_device_state_proto_msgTypes[15]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -1511,7 +1567,7 @@ func (x *VariationStatus) String() string {
|
||||
func (*VariationStatus) ProtoMessage() {}
|
||||
|
||||
func (x *VariationStatus) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_device_state_proto_msgTypes[14]
|
||||
mi := &file_device_state_proto_msgTypes[15]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -1524,7 +1580,7 @@ func (x *VariationStatus) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use VariationStatus.ProtoReflect.Descriptor instead.
|
||||
func (*VariationStatus) Descriptor() ([]byte, []int) {
|
||||
return file_device_state_proto_rawDescGZIP(), []int{14}
|
||||
return file_device_state_proto_rawDescGZIP(), []int{15}
|
||||
}
|
||||
|
||||
func (x *VariationStatus) GetUpdatedTrain() []*TrainState {
|
||||
@ -1584,12 +1640,14 @@ type AllDevicesStatus struct {
|
||||
AlarmState []*AlarmState `protobuf:"bytes,7,rep,name=AlarmState,proto3" json:"AlarmState,omitempty"`
|
||||
// 灯状态
|
||||
LightState []*LightState `protobuf:"bytes,8,rep,name=LightState,proto3" json:"LightState,omitempty"`
|
||||
// 屏蔽门状态
|
||||
PsdState []*PsdState `protobuf:"bytes,9,rep,name=psdState,proto3" json:"psdState,omitempty"`
|
||||
}
|
||||
|
||||
func (x *AllDevicesStatus) Reset() {
|
||||
*x = AllDevicesStatus{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_device_state_proto_msgTypes[15]
|
||||
mi := &file_device_state_proto_msgTypes[16]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -1602,7 +1660,7 @@ func (x *AllDevicesStatus) String() string {
|
||||
func (*AllDevicesStatus) ProtoMessage() {}
|
||||
|
||||
func (x *AllDevicesStatus) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_device_state_proto_msgTypes[15]
|
||||
mi := &file_device_state_proto_msgTypes[16]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -1615,7 +1673,7 @@ func (x *AllDevicesStatus) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use AllDevicesStatus.ProtoReflect.Descriptor instead.
|
||||
func (*AllDevicesStatus) Descriptor() ([]byte, []int) {
|
||||
return file_device_state_proto_rawDescGZIP(), []int{15}
|
||||
return file_device_state_proto_rawDescGZIP(), []int{16}
|
||||
}
|
||||
|
||||
func (x *AllDevicesStatus) GetTrainState() []*TrainState {
|
||||
@ -1674,6 +1732,13 @@ func (x *AllDevicesStatus) GetLightState() []*LightState {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *AllDevicesStatus) GetPsdState() []*PsdState {
|
||||
if x != nil {
|
||||
return x.PsdState
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// 服务器端向前端推送的设备状态信息
|
||||
type PushedDevicesStatus struct {
|
||||
state protoimpl.MessageState
|
||||
@ -1692,7 +1757,7 @@ type PushedDevicesStatus struct {
|
||||
func (x *PushedDevicesStatus) Reset() {
|
||||
*x = PushedDevicesStatus{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_device_state_proto_msgTypes[16]
|
||||
mi := &file_device_state_proto_msgTypes[17]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -1705,7 +1770,7 @@ func (x *PushedDevicesStatus) String() string {
|
||||
func (*PushedDevicesStatus) ProtoMessage() {}
|
||||
|
||||
func (x *PushedDevicesStatus) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_device_state_proto_msgTypes[16]
|
||||
mi := &file_device_state_proto_msgTypes[17]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -1718,7 +1783,7 @@ func (x *PushedDevicesStatus) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use PushedDevicesStatus.ProtoReflect.Descriptor instead.
|
||||
func (*PushedDevicesStatus) Descriptor() ([]byte, []int) {
|
||||
return file_device_state_proto_rawDescGZIP(), []int{16}
|
||||
return file_device_state_proto_rawDescGZIP(), []int{17}
|
||||
}
|
||||
|
||||
func (x *PushedDevicesStatus) GetAll() bool {
|
||||
@ -1757,7 +1822,7 @@ type SimulationStatus struct {
|
||||
func (x *SimulationStatus) Reset() {
|
||||
*x = SimulationStatus{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_device_state_proto_msgTypes[17]
|
||||
mi := &file_device_state_proto_msgTypes[18]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -1770,7 +1835,7 @@ func (x *SimulationStatus) String() string {
|
||||
func (*SimulationStatus) ProtoMessage() {}
|
||||
|
||||
func (x *SimulationStatus) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_device_state_proto_msgTypes[17]
|
||||
mi := &file_device_state_proto_msgTypes[18]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -1783,7 +1848,7 @@ func (x *SimulationStatus) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use SimulationStatus.ProtoReflect.Descriptor instead.
|
||||
func (*SimulationStatus) Descriptor() ([]byte, []int) {
|
||||
return file_device_state_proto_rawDescGZIP(), []int{17}
|
||||
return file_device_state_proto_rawDescGZIP(), []int{18}
|
||||
}
|
||||
|
||||
func (x *SimulationStatus) GetSimulationId() string {
|
||||
@ -1828,7 +1893,7 @@ type MemoryDataStatus struct {
|
||||
func (x *MemoryDataStatus) Reset() {
|
||||
*x = MemoryDataStatus{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_device_state_proto_msgTypes[18]
|
||||
mi := &file_device_state_proto_msgTypes[19]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -1841,7 +1906,7 @@ func (x *MemoryDataStatus) String() string {
|
||||
func (*MemoryDataStatus) ProtoMessage() {}
|
||||
|
||||
func (x *MemoryDataStatus) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_device_state_proto_msgTypes[18]
|
||||
mi := &file_device_state_proto_msgTypes[19]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -1854,7 +1919,7 @@ func (x *MemoryDataStatus) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use MemoryDataStatus.ProtoReflect.Descriptor instead.
|
||||
func (*MemoryDataStatus) Descriptor() ([]byte, []int) {
|
||||
return file_device_state_proto_rawDescGZIP(), []int{18}
|
||||
return file_device_state_proto_rawDescGZIP(), []int{19}
|
||||
}
|
||||
|
||||
func (x *MemoryDataStatus) GetAllSimulations() []*SimulationStatus {
|
||||
@ -2080,94 +2145,101 @@ var file_device_state_proto_rawDesc = []byte{
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x61, 0x73,
|
||||
0x70, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x73, 0x74, 0x61,
|
||||
0x74, 0x65, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74,
|
||||
0x52, 0x06, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x22, 0x9e, 0x02, 0x0a, 0x0f, 0x56, 0x61, 0x72,
|
||||
0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x0c,
|
||||
0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x03,
|
||||
0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e,
|
||||
0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x72,
|
||||
0x61, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x54, 0x72,
|
||||
0x61, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x6d,
|
||||
0x6f, 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0d, 0x75,
|
||||
0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x03,
|
||||
0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63,
|
||||
0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53,
|
||||
0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x3b, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64,
|
||||
0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e,
|
||||
0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
|
||||
0x74, 0x65, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x63, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x70,
|
||||
0x6c, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65,
|
||||
0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x75, 0x70, 0x64,
|
||||
0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0xb9, 0x03, 0x0a, 0x10, 0x41, 0x6c,
|
||||
0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31,
|
||||
0x0a, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03,
|
||||
0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e,
|
||||
0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74,
|
||||
0x65, 0x12, 0x34, 0x0a, 0x0b, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65,
|
||||
0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53,
|
||||
0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x73, 0x77, 0x69, 0x74,
|
||||
0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x73, 0x65, 0x63, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e,
|
||||
0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
|
||||
0x74, 0x65, 0x52, 0x0c, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65,
|
||||
0x12, 0x31, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04,
|
||||
0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x70,
|
||||
0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74,
|
||||
0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61,
|
||||
0x74, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65,
|
||||
0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x73, 0x69,
|
||||
0x67, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x62, 0x75, 0x74,
|
||||
0x74, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12,
|
||||
0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x53, 0x74, 0x61,
|
||||
0x74, 0x65, 0x52, 0x0b, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12,
|
||||
0x31, 0x0a, 0x0a, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20,
|
||||
0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x6c, 0x61, 0x72,
|
||||
0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x74, 0x61,
|
||||
0x74, 0x65, 0x12, 0x31, 0x0a, 0x0a, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65,
|
||||
0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4c,
|
||||
0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x4c, 0x69, 0x67, 0x68, 0x74,
|
||||
0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x13, 0x50, 0x75, 0x73, 0x68, 0x65, 0x64,
|
||||
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a,
|
||||
0x03, 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12,
|
||||
0x34, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01,
|
||||
0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x76, 0x61, 0x72, 0x53,
|
||||
0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74,
|
||||
0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65,
|
||||
0x2e, 0x41, 0x6c, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75,
|
||||
0x73, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x82, 0x01, 0x0a,
|
||||
0x10, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75,
|
||||
0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
|
||||
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x64, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70,
|
||||
0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
|
||||
0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x70,
|
||||
0x49, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x61, 0x70, 0x49, 0x64,
|
||||
0x73, 0x22, 0xdb, 0x01, 0x0a, 0x10, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61,
|
||||
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x53, 0x69, 0x6d,
|
||||
0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17,
|
||||
0x52, 0x06, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x22, 0x40, 0x0a, 0x08, 0x50, 0x73, 0x64, 0x53,
|
||||
0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x02, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72,
|
||||
0x43, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65,
|
||||
0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x9e, 0x02, 0x0a, 0x0f, 0x56,
|
||||
0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35,
|
||||
0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x18, 0x01,
|
||||
0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x61,
|
||||
0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64,
|
||||
0x54, 0x72, 0x61, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64,
|
||||
0x54, 0x72, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72,
|
||||
0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x38, 0x0a,
|
||||
0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03,
|
||||
0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x77, 0x69,
|
||||
0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
|
||||
0x64, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x3b, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74,
|
||||
0x65, 0x64, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x13, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53,
|
||||
0x74, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x63,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x52,
|
||||
0x65, 0x70, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61,
|
||||
0x74, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x75,
|
||||
0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0xe6, 0x03, 0x0a, 0x10,
|
||||
0x41, 0x6c, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
|
||||
0x12, 0x31, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01,
|
||||
0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x61,
|
||||
0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x74,
|
||||
0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61,
|
||||
0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65,
|
||||
0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x73, 0x77,
|
||||
0x69, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x73, 0x65, 0x63,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x13, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53,
|
||||
0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
|
||||
0x74, 0x65, 0x12, 0x31, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65,
|
||||
0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52,
|
||||
0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79,
|
||||
0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53,
|
||||
0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x74, 0x61,
|
||||
0x74, 0x65, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b,
|
||||
0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x62,
|
||||
0x75, 0x74, 0x74, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
|
||||
0x32, 0x12, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x53,
|
||||
0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74,
|
||||
0x65, 0x12, 0x31, 0x0a, 0x0a, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18,
|
||||
0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x6c,
|
||||
0x61, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x53,
|
||||
0x74, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x0a, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61,
|
||||
0x74, 0x65, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65,
|
||||
0x2e, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x4c, 0x69, 0x67,
|
||||
0x68, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x70, 0x73, 0x64, 0x53, 0x74,
|
||||
0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x74, 0x61, 0x74,
|
||||
0x65, 0x2e, 0x50, 0x73, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x70, 0x73, 0x64, 0x53,
|
||||
0x74, 0x61, 0x74, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x13, 0x50, 0x75, 0x73, 0x68, 0x65, 0x64, 0x44,
|
||||
0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03,
|
||||
0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x34,
|
||||
0x0a, 0x09, 0x76, 0x61, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||
0x0b, 0x32, 0x16, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x76, 0x61, 0x72, 0x53, 0x74,
|
||||
0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75,
|
||||
0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e,
|
||||
0x41, 0x6c, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
|
||||
0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x10,
|
||||
0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
|
||||
0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72,
|
||||
0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70,
|
||||
0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x70, 0x49,
|
||||
0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x61, 0x70, 0x49, 0x64, 0x73,
|
||||
0x22, 0xdb, 0x01, 0x0a, 0x10, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x53,
|
||||
0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x53, 0x69, 0x6d, 0x75,
|
||||
0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e,
|
||||
0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x53, 0x69, 0x6d, 0x75, 0x6c,
|
||||
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x0e, 0x61, 0x64, 0x64, 0x53, 0x69, 0x6d,
|
||||
0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17,
|
||||
0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x53, 0x69, 0x6d, 0x75,
|
||||
0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x0e, 0x61, 0x64, 0x64, 0x53, 0x69,
|
||||
0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x61, 0x64, 0x64, 0x53, 0x69, 0x6d,
|
||||
0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x72, 0x65, 0x6d, 0x6f,
|
||||
0x76, 0x65, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20,
|
||||
0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x69, 0x6d, 0x75,
|
||||
0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x11, 0x72, 0x65,
|
||||
0x6d, 0x6f, 0x76, 0x65, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2a,
|
||||
0x37, 0x0a, 0x0b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07,
|
||||
0x0a, 0x03, 0x41, 0x6e, 0x79, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x78, 0x6c, 0x65, 0x10,
|
||||
0x01, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06,
|
||||
0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x10, 0x03, 0x42, 0x54, 0x0a, 0x25, 0x63, 0x6c, 0x75, 0x62,
|
||||
0x2e, 0x6a, 0x6f, 0x79, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x62, 0x6a, 0x72, 0x74, 0x73, 0x73, 0x2e,
|
||||
0x61, 0x74, 0x73, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x73, 0x42, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x5a, 0x19, 0x2e, 0x2f, 0x61, 0x74, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66,
|
||||
0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x62, 0x06,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x61, 0x64, 0x64, 0x53, 0x69, 0x6d, 0x75,
|
||||
0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x76,
|
||||
0x65, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03,
|
||||
0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c,
|
||||
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x11, 0x72, 0x65, 0x6d,
|
||||
0x6f, 0x76, 0x65, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0x37,
|
||||
0x0a, 0x0b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a,
|
||||
0x03, 0x41, 0x6e, 0x79, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x78, 0x6c, 0x65, 0x10, 0x01,
|
||||
0x12, 0x09, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x50,
|
||||
0x68, 0x79, 0x73, 0x69, 0x63, 0x10, 0x03, 0x42, 0x54, 0x0a, 0x25, 0x63, 0x6c, 0x75, 0x62, 0x2e,
|
||||
0x6a, 0x6f, 0x79, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x62, 0x6a, 0x72, 0x74, 0x73, 0x73, 0x2e, 0x61,
|
||||
0x74, 0x73, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73,
|
||||
0x42, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x5a, 0x19, 0x2e, 0x2f, 0x61, 0x74, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79,
|
||||
0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x62, 0x06, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@ -2183,7 +2255,7 @@ func file_device_state_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_device_state_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
|
||||
var file_device_state_proto_msgTypes = make([]protoimpl.MessageInfo, 19)
|
||||
var file_device_state_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
|
||||
var file_device_state_proto_goTypes = []interface{}{
|
||||
(SectionType)(0), // 0: state.SectionType
|
||||
(Signal_Aspect)(0), // 1: state.Signal.Aspect
|
||||
@ -2201,11 +2273,12 @@ var file_device_state_proto_goTypes = []interface{}{
|
||||
(*ButtonState)(nil), // 13: state.ButtonState
|
||||
(*AlarmState)(nil), // 14: state.AlarmState
|
||||
(*LightState)(nil), // 15: state.LightState
|
||||
(*VariationStatus)(nil), // 16: state.VariationStatus
|
||||
(*AllDevicesStatus)(nil), // 17: state.AllDevicesStatus
|
||||
(*PushedDevicesStatus)(nil), // 18: state.PushedDevicesStatus
|
||||
(*SimulationStatus)(nil), // 19: state.SimulationStatus
|
||||
(*MemoryDataStatus)(nil), // 20: state.MemoryDataStatus
|
||||
(*PsdState)(nil), // 16: state.PsdState
|
||||
(*VariationStatus)(nil), // 17: state.VariationStatus
|
||||
(*AllDevicesStatus)(nil), // 18: state.AllDevicesStatus
|
||||
(*PushedDevicesStatus)(nil), // 19: state.PushedDevicesStatus
|
||||
(*SimulationStatus)(nil), // 20: state.SimulationStatus
|
||||
(*MemoryDataStatus)(nil), // 21: state.MemoryDataStatus
|
||||
}
|
||||
var file_device_state_proto_depIdxs = []int32{
|
||||
0, // 0: state.SectionState.type:type_name -> state.SectionType
|
||||
@ -2226,16 +2299,17 @@ var file_device_state_proto_depIdxs = []int32{
|
||||
13, // 15: state.AllDevicesStatus.buttonState:type_name -> state.ButtonState
|
||||
14, // 16: state.AllDevicesStatus.AlarmState:type_name -> state.AlarmState
|
||||
15, // 17: state.AllDevicesStatus.LightState:type_name -> state.LightState
|
||||
16, // 18: state.PushedDevicesStatus.varStatus:type_name -> state.VariationStatus
|
||||
17, // 19: state.PushedDevicesStatus.allStatus:type_name -> state.AllDevicesStatus
|
||||
19, // 20: state.MemoryDataStatus.allSimulations:type_name -> state.SimulationStatus
|
||||
19, // 21: state.MemoryDataStatus.addSimulations:type_name -> state.SimulationStatus
|
||||
19, // 22: state.MemoryDataStatus.removeSimulations:type_name -> state.SimulationStatus
|
||||
23, // [23:23] is the sub-list for method output_type
|
||||
23, // [23:23] is the sub-list for method input_type
|
||||
23, // [23:23] is the sub-list for extension type_name
|
||||
23, // [23:23] is the sub-list for extension extendee
|
||||
0, // [0:23] is the sub-list for field type_name
|
||||
16, // 18: state.AllDevicesStatus.psdState:type_name -> state.PsdState
|
||||
17, // 19: state.PushedDevicesStatus.varStatus:type_name -> state.VariationStatus
|
||||
18, // 20: state.PushedDevicesStatus.allStatus:type_name -> state.AllDevicesStatus
|
||||
20, // 21: state.MemoryDataStatus.allSimulations:type_name -> state.SimulationStatus
|
||||
20, // 22: state.MemoryDataStatus.addSimulations:type_name -> state.SimulationStatus
|
||||
20, // 23: state.MemoryDataStatus.removeSimulations:type_name -> state.SimulationStatus
|
||||
24, // [24:24] is the sub-list for method output_type
|
||||
24, // [24:24] is the sub-list for method input_type
|
||||
24, // [24:24] is the sub-list for extension type_name
|
||||
24, // [24:24] is the sub-list for extension extendee
|
||||
0, // [0:24] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_device_state_proto_init() }
|
||||
@ -2413,7 +2487,7 @@ func file_device_state_proto_init() {
|
||||
}
|
||||
}
|
||||
file_device_state_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*VariationStatus); i {
|
||||
switch v := v.(*PsdState); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
@ -2425,7 +2499,7 @@ func file_device_state_proto_init() {
|
||||
}
|
||||
}
|
||||
file_device_state_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*AllDevicesStatus); i {
|
||||
switch v := v.(*VariationStatus); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
@ -2437,7 +2511,7 @@ func file_device_state_proto_init() {
|
||||
}
|
||||
}
|
||||
file_device_state_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*PushedDevicesStatus); i {
|
||||
switch v := v.(*AllDevicesStatus); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
@ -2449,7 +2523,7 @@ func file_device_state_proto_init() {
|
||||
}
|
||||
}
|
||||
file_device_state_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*SimulationStatus); i {
|
||||
switch v := v.(*PushedDevicesStatus); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
@ -2461,6 +2535,18 @@ func file_device_state_proto_init() {
|
||||
}
|
||||
}
|
||||
file_device_state_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*SimulationStatus); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_device_state_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*MemoryDataStatus); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
@ -2479,7 +2565,7 @@ func file_device_state_proto_init() {
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_device_state_proto_rawDesc,
|
||||
NumEnums: 2,
|
||||
NumMessages: 19,
|
||||
NumMessages: 20,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
|
@ -89,6 +89,11 @@ func QueryGiData[T proto.Message](mapId int32) T {
|
||||
return value.(T)
|
||||
}
|
||||
|
||||
func QueryGiId(name string) int32 {
|
||||
value, _ := giNameMap.Load(name)
|
||||
return value.(int32)
|
||||
}
|
||||
|
||||
// 根据区段,道岔偏移量返回linkID和link相对偏移量
|
||||
func QueryEcsLinkByDeviceInfo(repo *repository.Repository, mapId int32, id string, devicePort string, offset int64, runDirection bool) (int32, int64, bool, bool, int64) {
|
||||
if devicePort == "" {
|
||||
|
@ -18,7 +18,7 @@ type elementIdStructure struct {
|
||||
Uid string
|
||||
}
|
||||
|
||||
// 数组为Index为 common.Id, index, uid
|
||||
// 数组为Index为 common.ButtonCode, index, uid
|
||||
type stationUidStructure struct {
|
||||
AxlePointIds map[string]*elementIdStructure
|
||||
TurnoutIds map[string]*elementIdStructure
|
||||
@ -30,6 +30,9 @@ type stationUidStructure struct {
|
||||
ButtonIds map[string]*elementIdStructure
|
||||
StationIds map[string]*elementIdStructure
|
||||
IBPIds map[string]map[string]*elementIdStructure
|
||||
PlatformIds map[string]*elementIdStructure
|
||||
PsdIds map[string]*elementIdStructure
|
||||
GateBoxIds map[string]*elementIdStructure
|
||||
}
|
||||
|
||||
type relayUidStructure struct {
|
||||
@ -75,6 +78,9 @@ func initStationUid(data *graphicData.RtssGraphicStorage) *stationUidStructure {
|
||||
ButtonIds: make(map[string]*elementIdStructure, len(data.EsbButtons)),
|
||||
StationIds: make(map[string]*elementIdStructure, len(data.Stations)),
|
||||
IBPIds: make(map[string]map[string]*elementIdStructure, len(data.Stations)),
|
||||
PlatformIds: make(map[string]*elementIdStructure, len(data.Platforms)),
|
||||
PsdIds: make(map[string]*elementIdStructure, len(data.ScreenDoors)),
|
||||
GateBoxIds: make(map[string]*elementIdStructure, len(data.GateBoxs)),
|
||||
}
|
||||
city, lineId, _ := getUIdPrefix(data.UniqueIdPrefix)
|
||||
// 初始化计轴信息
|
||||
@ -155,7 +161,9 @@ func initStationUid(data *graphicData.RtssGraphicStorage) *stationUidStructure {
|
||||
}
|
||||
}
|
||||
// 处理车站信息
|
||||
stationMap := make(map[string]*graphicData.Station)
|
||||
for _, s := range data.Stations {
|
||||
stationMap[s.Common.Id] = s
|
||||
gus.StationIds[s.Common.Id] = &elementIdStructure{
|
||||
CommonId: s.Common.Id,
|
||||
Uid: GenerateElementUid(city, lineId, nil, s.Code),
|
||||
@ -163,6 +171,33 @@ func initStationUid(data *graphicData.RtssGraphicStorage) *stationUidStructure {
|
||||
// 处理关联的IBP盘信息
|
||||
initIBPUid(gus, city, lineId, s, getStorageIBPMapData(s.RefIbpMapCode))
|
||||
}
|
||||
// 站台
|
||||
platformMap := make(map[string]*graphicData.Platform)
|
||||
for _, platform := range data.Platforms {
|
||||
platformMap[platform.Common.Id] = platform
|
||||
gus.PlatformIds[platform.Common.Id] = &elementIdStructure{
|
||||
CommonId: platform.Common.Id,
|
||||
Uid: GenerateElementUid(city, lineId, nil, platform.Code),
|
||||
}
|
||||
}
|
||||
// 屏蔽门
|
||||
for _, door := range data.ScreenDoors {
|
||||
station := stationMap[platformMap[door.RefPlatformId].GetRefStationId()]
|
||||
if station == nil { //线路数据有问题
|
||||
continue
|
||||
}
|
||||
gus.PsdIds[door.Common.Id] = &elementIdStructure{
|
||||
CommonId: door.Common.Id,
|
||||
Uid: GenerateElementUid(city, lineId, []string{station.GetCommon().GetId()}, door.Code),
|
||||
}
|
||||
}
|
||||
// 门控箱
|
||||
for _, box := range data.GateBoxs {
|
||||
gus.GateBoxIds[box.Common.Id] = &elementIdStructure{
|
||||
CommonId: box.Common.Id,
|
||||
Uid: GenerateElementUid(city, lineId, nil, box.Code),
|
||||
}
|
||||
}
|
||||
return gus
|
||||
}
|
||||
|
||||
|
26
ats/verify/simulation/wayside/memory/wayside_memory_psd.go
Normal file
26
ats/verify/simulation/wayside/memory/wayside_memory_psd.go
Normal file
@ -0,0 +1,26 @@
|
||||
package memory
|
||||
|
||||
import (
|
||||
"joylink.club/bj-rtsts-server/ats/verify/protos/state"
|
||||
)
|
||||
|
||||
// 获取所有的列车信息
|
||||
func GetMapAllPsdState(vs *VerifySimulation, mapId int32) []*state.TrainState {
|
||||
return nil
|
||||
//world := vs.GetSimulationWorld()
|
||||
//uidStructure := queryUidStructure[*stationUidStructure](mapId)
|
||||
//for _, psdStructure := range uidStructure.PsdIds {
|
||||
// uid := psdStructure.Uid
|
||||
// psdEntry, ok := entity.GetEntityByUid(world, uid)
|
||||
// if ok {
|
||||
//
|
||||
// }
|
||||
//}
|
||||
//allTrainMap := &vs.Memory.Status.TrainStateMap
|
||||
//var trainArr []*state.PsdState
|
||||
//allTrainMap.Range(func(_, v any) bool {
|
||||
// trainArr = append(trainArr, v.(*state.TrainState))
|
||||
// return true
|
||||
//})
|
||||
//return trainArr
|
||||
}
|
16
ats/verify/simulation/wayside/memory/wayside_memory_psl.go
Normal file
16
ats/verify/simulation/wayside/memory/wayside_memory_psl.go
Normal file
@ -0,0 +1,16 @@
|
||||
package memory
|
||||
|
||||
import (
|
||||
"joylink.club/rtsssimulation/fi"
|
||||
)
|
||||
|
||||
// 操作IBP按钮
|
||||
func ChangePSLButtonState(sim *VerifySimulation, mapId int32, gateBoxId, btnCode string, pressDown bool) {
|
||||
uid := queryUidStructure[*stationUidStructure](mapId)
|
||||
gateBoxUid := uid.GateBoxIds[gateBoxId].Uid
|
||||
if pressDown {
|
||||
fi.PressDownButton(sim.World, gateBoxUid+"_"+btnCode)
|
||||
} else {
|
||||
fi.PressUpButton(sim.World, gateBoxUid+"_"+btnCode)
|
||||
}
|
||||
}
|
@ -2,6 +2,8 @@ package memory
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"joylink.club/rtsssimulation/component"
|
||||
"joylink.club/rtsssimulation/entity"
|
||||
"log/slog"
|
||||
"math"
|
||||
"sort"
|
||||
@ -143,6 +145,7 @@ func (s *VerifySimulation) GetAllState(mapId int32) *state.PushedDevicesStatus {
|
||||
TrainState: GetAllTrainState(s),
|
||||
SignalState: GetMapAllSignalState(s, mapId),
|
||||
ButtonState: GetMapAllStationButtonState(s, mapId),
|
||||
//PsdState: GetMapAllPsdState(s, mapId),
|
||||
},
|
||||
}
|
||||
case graphicData.PictureType_RelayCabinetLayout:
|
||||
@ -158,10 +161,31 @@ func (s *VerifySimulation) GetAllState(mapId int32) *state.PushedDevicesStatus {
|
||||
|
||||
// 获取门控箱状态
|
||||
func (s *VerifySimulation) GetAllPSLState(mapId int32, boxId string) *state.PushedDevicesStatus {
|
||||
world := s.GetSimulationWorld()
|
||||
uidStructure := queryUidStructure[*stationUidStructure](mapId)
|
||||
boxUid := uidStructure.GateBoxIds[boxId].Uid
|
||||
mkxEntry, ok := entity.GetEntityByUid(world, boxUid)
|
||||
var buttonStateArr []*state.ButtonState
|
||||
if ok {
|
||||
mkxCircuit := component.MkxCircuitType.Get(mkxEntry)
|
||||
var boxArr []*ecs.Entry
|
||||
boxArr = append(boxArr, mkxCircuit.PcbList...)
|
||||
boxArr = append(boxArr, mkxCircuit.PobList...)
|
||||
boxArr = append(boxArr, mkxCircuit.PabList...)
|
||||
for _, mkxBoxEntry := range boxArr {
|
||||
mkxBox := component.MkxBoxType.Get(mkxBoxEntry)
|
||||
uid := component.UidType.Get(mkxBox.Btn).Id
|
||||
down := component.BitStateType.Get(mkxBox.Btn).Val
|
||||
buttonStateArr = append(buttonStateArr, &state.ButtonState{
|
||||
Id: uid,
|
||||
Down: down,
|
||||
})
|
||||
}
|
||||
}
|
||||
return &state.PushedDevicesStatus{
|
||||
All: true,
|
||||
AllStatus: &state.AllDevicesStatus{
|
||||
ButtonState: []*state.ButtonState{},
|
||||
ButtonState: buttonStateArr,
|
||||
},
|
||||
}
|
||||
}
|
||||
@ -389,12 +413,15 @@ func buildAndRelateElectronicComponent(repo *proto.Repository, relayGi *graphicD
|
||||
city := relayGi.UniqueIdPrefix.City
|
||||
lineId := relayGi.UniqueIdPrefix.LineId
|
||||
station := relayGi.UniqueIdPrefix.BelongsConcentrationStation
|
||||
relayMap := make(map[string]*proto.Relay)
|
||||
for _, relay := range relayGi.Relays {
|
||||
repo.Relays = append(repo.Relays, &proto.Relay{
|
||||
repoRelay := &proto.Relay{
|
||||
Id: uidsMap.RelayIds[relay.Common.Id].Uid,
|
||||
Code: relay.Code,
|
||||
Model: convertRelayModel(relay.NewModel),
|
||||
})
|
||||
}
|
||||
repo.Relays = append(repo.Relays, repoRelay)
|
||||
relayMap[repoRelay.Id] = repoRelay
|
||||
}
|
||||
for _, pfp := range relayGi.PhaseFailureProtectors {
|
||||
repo.PhaseFailureProtectors = append(repo.PhaseFailureProtectors, &proto.PhaseFailureProtector{
|
||||
@ -414,6 +441,14 @@ func buildAndRelateElectronicComponent(repo *proto.Repository, relayGi *graphicD
|
||||
for _, station := range repo.Stations {
|
||||
stationMap[station.Id] = station
|
||||
}
|
||||
psdMap := make(map[string]*proto.Psd)
|
||||
for _, psd := range repo.Psds {
|
||||
psdMap[psd.Id] = psd
|
||||
}
|
||||
platformMap := make(map[string]*proto.Platform)
|
||||
for _, platform := range repo.Platforms {
|
||||
platformMap[platform.Id] = platform
|
||||
}
|
||||
for _, relationship := range relayGi.DeviceRelateRelayList {
|
||||
switch relationship.DeviceType {
|
||||
case graphicData.RelatedRef_Turnout:
|
||||
@ -476,6 +511,53 @@ func buildAndRelateElectronicComponent(repo *proto.Repository, relayGi *graphicD
|
||||
}
|
||||
station.ElectronicGroup = append(station.ElectronicGroup, d)
|
||||
}
|
||||
case graphicData.RelatedRef_ScreenDoor:
|
||||
psd, ok := psdMap[GenerateElementUid(city, lineId, nil, relationship.Code)]
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
for _, group := range relationship.Combinationtypes {
|
||||
var componentIds []string
|
||||
for _, relayId := range group.RefRelays {
|
||||
if uidsMap.RelayIds[relayId] == nil {
|
||||
continue
|
||||
}
|
||||
componentIds = append(componentIds, uidsMap.RelayIds[relayId].Uid)
|
||||
}
|
||||
psd.ElectronicComponentGroups = append(psd.ElectronicComponentGroups,
|
||||
&proto.ElectronicComponentGroup{
|
||||
Code: group.Code,
|
||||
ComponentIds: componentIds,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
//门控箱
|
||||
for _, mkx := range repo.Mkxs {
|
||||
platform := platformMap[psdMap[mkx.PsdId].GetPlatformId()]
|
||||
station := stationMap[platform.GetStationId()]
|
||||
var s string
|
||||
if strings.Contains(platform.GetCode(), "上行") {
|
||||
s = "S"
|
||||
} else if strings.Contains(platform.GetCode(), "下行") {
|
||||
s = "X"
|
||||
} else {
|
||||
continue
|
||||
}
|
||||
for _, group := range station.ElectronicGroup {
|
||||
if group.Code == "MKX" {
|
||||
var componentIds []string
|
||||
for _, component := range group.Components {
|
||||
relay := relayMap[component.Id]
|
||||
if strings.Contains(relay.GetCode(), s) {
|
||||
componentIds = append(componentIds, relay.Id)
|
||||
}
|
||||
}
|
||||
mkx.ElectronicComponentGroups = append(mkx.ElectronicComponentGroups, &proto.ElectronicComponentGroup{
|
||||
Code: group.Code,
|
||||
ComponentIds: componentIds,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -676,7 +758,53 @@ func fillProtoRepository(repo *proto.Repository, storage *graphicData.RtssGraphi
|
||||
handlerIBPDeviceToStation(uidsMap, station, repo, data.RefIbpMapCode)
|
||||
repo.Stations = append(repo.Stations, station)
|
||||
}
|
||||
|
||||
//门控箱
|
||||
for _, data := range storage.GateBoxs {
|
||||
mkx := &proto.Mkx{
|
||||
Id: uidsMap.GateBoxIds[data.Common.Id].Uid,
|
||||
PsdId: uidsMap.PsdIds[data.RefScreenDoor].Uid,
|
||||
}
|
||||
repo.Mkxs = append(repo.Mkxs, mkx)
|
||||
pslMapId := QueryGiId(data.RefGatedBoxMapCode)
|
||||
pslStorage := QueryGiData[*graphicData.PslGraphicStorage](pslMapId)
|
||||
for _, button := range pslStorage.PslButtons {
|
||||
repoButton := &proto.Button{
|
||||
Id: mkx.Id + "_" + button.Code,
|
||||
Code: button.Code,
|
||||
ButtonType: proto.Button_Reset_Press,
|
||||
HasLight: true,
|
||||
}
|
||||
repo.Buttons = append(repo.Buttons, repoButton)
|
||||
switch button.Code {
|
||||
case "PCB":
|
||||
mkx.PcbButtonIds = append(mkx.PcbButtonIds, repoButton.Id)
|
||||
case "POB":
|
||||
mkx.PobButtonIds = append(mkx.PobButtonIds, repoButton.Id)
|
||||
case "PAB":
|
||||
mkx.PabButtonIds = append(mkx.PabButtonIds, repoButton.Id)
|
||||
}
|
||||
}
|
||||
}
|
||||
//站台
|
||||
platformMap := make(map[string]*graphicData.Platform)
|
||||
for _, data := range storage.Platforms {
|
||||
platformMap[data.Common.Id] = data
|
||||
platform := &proto.Platform{
|
||||
Id: uidsMap.PlatformIds[data.Common.Id].Uid,
|
||||
Code: data.Code,
|
||||
}
|
||||
repo.Platforms = append(repo.Platforms, platform)
|
||||
platform.StationId = uidsMap.StationIds[data.RefStationId].Uid
|
||||
platform.PhysicalSectionId = uidsMap.PhysicalSectionIds[data.RefSectionId].Uid
|
||||
}
|
||||
//屏蔽门
|
||||
for _, data := range storage.ScreenDoors {
|
||||
psd := &proto.Psd{
|
||||
Id: uidsMap.PsdIds[data.Common.Id].Uid,
|
||||
PlatformId: uidsMap.PlatformIds[data.RefPlatformId].Uid,
|
||||
}
|
||||
repo.Psds = append(repo.Psds, psd)
|
||||
}
|
||||
}
|
||||
|
||||
// 将IBP的设备关联到车站中
|
||||
|
@ -89,6 +89,14 @@ type ButtonOperationReqDto struct {
|
||||
Down bool `form:"down" json:"down" binding:"required"`
|
||||
}
|
||||
|
||||
type PslOperationReqDto struct {
|
||||
SimulationId string `form:"simulationId" json:"simulationId" binding:"required"`
|
||||
MapId int32 `json:"mapId" from:"mapId" binding:"required"`
|
||||
GateBoxId string `form:"gateBoxId" json:"gateBoxId"`
|
||||
ButtonCode string `form:"buttonCode" json:"buttonCode" binding:"required"`
|
||||
Down bool `form:"down" json:"down"`
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// 地铁数据检测请求
|
||||
|
Loading…
Reference in New Issue
Block a user