From 522a065720f718d847c2c95eae2cd8c8a331f3fa Mon Sep 17 00:00:00 2001 From: weizhihong Date: Wed, 18 Oct 2023 13:53:17 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90IBP=E6=93=8D=E4=BD=9C=EF=BC=8C?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=8F=91=E9=80=81=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/drafting.go | 2 +- api/simulation.go | 56 ++++ ats/verify/protos/state/device_state.pb.go | 256 ++++++++--------- .../wayside/memory/wayside_memory_ibp.go | 90 ++++++ .../wayside/memory/wayside_memory_map_init.go | 16 +- .../wayside/memory/wayside_memory_station.go | 37 +++ .../wayside/memory/wayside_simulation.go | 9 +- bj-rtss-message | 2 +- docs/docs.go | 258 +++++++++++++++++- docs/swagger.json | 258 +++++++++++++++++- docs/swagger.yaml | 167 +++++++++++- dto/simulation.go | 8 + rtss_simulation | 2 +- 13 files changed, 1013 insertions(+), 148 deletions(-) create mode 100644 ats/verify/simulation/wayside/memory/wayside_memory_ibp.go create mode 100644 ats/verify/simulation/wayside/memory/wayside_memory_station.go diff --git a/api/drafting.go b/api/drafting.go index 47c3170..242cdb3 100644 --- a/api/drafting.go +++ b/api/drafting.go @@ -74,7 +74,7 @@ func pageQueryDrafting(c *gin.Context) { // @Failure 401 {object} dto.ErrorDto // @Failure 404 {object} dto.ErrorDto // @Failure 500 {object} dto.ErrorDto -// @Router /api/v1/drafting/paging [get] +// @Router /api/v1/drafting/list [get] func listQueryDrafting(c *gin.Context) { user, _ := c.Get(middleware.IdentityKey) slog.Debug("列表查询草稿", user) diff --git a/api/simulation.go b/api/simulation.go index 1b1b58d..e635576 100644 --- a/api/simulation.go +++ b/api/simulation.go @@ -34,6 +34,8 @@ func InitSimulationRouter(api *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddle authed.GET("/getDataChannelName", getDataChannelName) authed.POST("/relay/operation", relayOperation) authed.POST("/signal/operation", signalOperation) + authed.POST("/esbBtn/operation", esbBtnOperation) + authed.POST("/ibp/operation", ibpBtnOperation) // 初始化地图信息 initPublishMapInfo() @@ -276,6 +278,60 @@ func signalOperation(c *gin.Context) { c.JSON(http.StatusOK, "ok") } +// ATS测试-ESB按钮操作 +// +// @Summary ATS测试-ESB按钮操作 +// +// @Security JwtAuth +// +// @Description ATS测试-ESB按钮操作 +// @Tags ATS测试仿真Api +// @Accept json +// @Produce json +// @Param Authorization header string true "JWT Token" +// @Param ButtonOperationReqDto body dto.ButtonOperationReqDto true "ATS测试仿真-ESB按钮操作" +// +// @Success 200 {object} string +// @Failure 500 {object} dto.ErrorDto +// @Router /api/v1/simulation/esbBtn/operation [post] +func esbBtnOperation(c *gin.Context) { + req := &dto.ButtonOperationReqDto{} + if err := c.ShouldBind(&req); err != nil { + panic(dto.ErrorDto{Code: dto.ArgumentParseError, Message: err.Error()}) + } + simulation := checkDeviceDataAndReturn(req.SimulationId) + slog.Info("传入状态参数", req) + memory.ChangeEsbButtonState(simulation, req.MapId, req.Id, req.Down) + c.JSON(http.StatusOK, "ok") +} + +// ATS测试-IBP按钮操作 +// +// @Summary ATS测试-IBP按钮操作 +// +// @Security JwtAuth +// +// @Description ATS测试-IBP按钮操作 +// @Tags ATS测试仿真Api +// @Accept json +// @Produce json +// @Param Authorization header string true "JWT Token" +// @Param ButtonOperationReqDto body dto.ButtonOperationReqDto true "ATS测试仿真-IBP按钮操作" +// +// @Success 200 {object} string +// @Failure 500 {object} dto.ErrorDto +// @Router /api/v1/simulation/ibp/operation [post] +func ibpBtnOperation(c *gin.Context) { + req := &dto.ButtonOperationReqDto{} + if err := c.ShouldBind(&req); err != nil { + panic(dto.ErrorDto{Code: dto.ArgumentParseError, Message: err.Error()}) + } + simulation := checkDeviceDataAndReturn(req.SimulationId) + slog.Info("传入状态参数", req) + memory.ChangeIBPButtonState(simulation, req.MapId, req.StationId, req.Id, req.Down) + c.JSON(http.StatusOK, "ok") +} + // 获取仿真信息更新通道名称 // // @Summary 获取仿真信息更新通道名称 diff --git a/ats/verify/protos/state/device_state.pb.go b/ats/verify/protos/state/device_state.pb.go index b44c88d..fb78e97 100644 --- a/ats/verify/protos/state/device_state.pb.go +++ b/ats/verify/protos/state/device_state.pb.go @@ -1307,8 +1307,9 @@ type ButtonState struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Down bool `protobuf:"varint,2,opt,name=down,proto3" json:"down,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Down bool `protobuf:"varint,2,opt,name=down,proto3" json:"down,omitempty"` + Aspect Signal_Aspect `protobuf:"varint,3,opt,name=aspect,proto3,enum=state.Signal_Aspect" json:"aspect,omitempty"` // 带灯的按钮 } func (x *ButtonState) Reset() { @@ -1357,6 +1358,13 @@ func (x *ButtonState) GetDown() bool { return false } +func (x *ButtonState) GetAspect() Signal_Aspect { + if x != nil { + return x.Aspect + } + return Signal_Non +} + // 警铃状态 type AlarmState struct { state protoimpl.MessageState @@ -2057,105 +2065,108 @@ var file_device_state_proto_rawDesc = []byte{ 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x2c, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x78, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x02, 0x78, 0x68, 0x22, 0x31, 0x0a, 0x0b, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x53, + 0x08, 0x52, 0x02, 0x78, 0x68, 0x22, 0x5f, 0x0a, 0x0b, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x34, 0x0a, 0x0a, 0x41, 0x6c, 0x61, 0x72, - 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x4a, - 0x0a, 0x0a, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 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, 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, + 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x2c, 0x0a, 0x06, 0x61, 0x73, 0x70, 0x65, + 0x63, 0x74, 0x18, 0x03, 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, 0x34, 0x0a, 0x0a, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x4a, 0x0a, 0x0a, + 0x4c, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 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, + 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, } var ( @@ -2200,29 +2211,30 @@ var file_device_state_proto_depIdxs = []int32{ 1, // 1: state.SignalState.aspect:type_name -> state.Signal.Aspect 10, // 2: state.TrainState.dynamicState:type_name -> state.TrainDynamicState 11, // 3: state.TrainState.vobcState:type_name -> state.TrainVobcState - 1, // 4: state.LightState.aspect:type_name -> state.Signal.Aspect - 9, // 5: state.VariationStatus.updatedTrain:type_name -> state.TrainState - 4, // 6: state.VariationStatus.updatedSwitch:type_name -> state.SwitchState - 3, // 7: state.VariationStatus.updatedSection:type_name -> state.SectionState - 12, // 8: state.VariationStatus.updatedReply:type_name -> state.ReplyState - 9, // 9: state.AllDevicesStatus.trainState:type_name -> state.TrainState - 4, // 10: state.AllDevicesStatus.switchState:type_name -> state.SwitchState - 3, // 11: state.AllDevicesStatus.sectionState:type_name -> state.SectionState - 12, // 12: state.AllDevicesStatus.replyState:type_name -> state.ReplyState - 5, // 13: state.AllDevicesStatus.signalState:type_name -> state.SignalState - 13, // 14: state.AllDevicesStatus.buttonState:type_name -> state.ButtonState - 14, // 15: state.AllDevicesStatus.AlarmState:type_name -> state.AlarmState - 15, // 16: state.AllDevicesStatus.LightState:type_name -> state.LightState - 16, // 17: state.PushedDevicesStatus.varStatus:type_name -> state.VariationStatus - 17, // 18: state.PushedDevicesStatus.allStatus:type_name -> state.AllDevicesStatus - 19, // 19: state.MemoryDataStatus.allSimulations:type_name -> state.SimulationStatus - 19, // 20: state.MemoryDataStatus.addSimulations:type_name -> state.SimulationStatus - 19, // 21: state.MemoryDataStatus.removeSimulations:type_name -> state.SimulationStatus - 22, // [22:22] is the sub-list for method output_type - 22, // [22:22] is the sub-list for method input_type - 22, // [22:22] is the sub-list for extension type_name - 22, // [22:22] is the sub-list for extension extendee - 0, // [0:22] is the sub-list for field type_name + 1, // 4: state.ButtonState.aspect:type_name -> state.Signal.Aspect + 1, // 5: state.LightState.aspect:type_name -> state.Signal.Aspect + 9, // 6: state.VariationStatus.updatedTrain:type_name -> state.TrainState + 4, // 7: state.VariationStatus.updatedSwitch:type_name -> state.SwitchState + 3, // 8: state.VariationStatus.updatedSection:type_name -> state.SectionState + 12, // 9: state.VariationStatus.updatedReply:type_name -> state.ReplyState + 9, // 10: state.AllDevicesStatus.trainState:type_name -> state.TrainState + 4, // 11: state.AllDevicesStatus.switchState:type_name -> state.SwitchState + 3, // 12: state.AllDevicesStatus.sectionState:type_name -> state.SectionState + 12, // 13: state.AllDevicesStatus.replyState:type_name -> state.ReplyState + 5, // 14: state.AllDevicesStatus.signalState:type_name -> state.SignalState + 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 } func init() { file_device_state_proto_init() } diff --git a/ats/verify/simulation/wayside/memory/wayside_memory_ibp.go b/ats/verify/simulation/wayside/memory/wayside_memory_ibp.go new file mode 100644 index 0000000..b85e884 --- /dev/null +++ b/ats/verify/simulation/wayside/memory/wayside_memory_ibp.go @@ -0,0 +1,90 @@ +package memory + +import ( + "joylink.club/bj-rtsts-server/ats/verify/protos/state" + "joylink.club/ecs" + "joylink.club/rtsssimulation/component" + "joylink.club/rtsssimulation/entity" + "joylink.club/rtsssimulation/fi" +) + +// 操作IBP按钮 +func ChangeIBPButtonState(sim *VerifySimulation, mapId int32, stationId, btnId string, pressDown bool) { + uid := QueryIBPUidByMidAndComId(mapId, btnId, stationId) + if pressDown { + fi.PressDownButton(sim.World, uid) + } else { + fi.PressUpButton(sim.World, uid) + } +} + +// 获取仿真车站按钮状态,前端推送 +func GetMapAllIBPState(sim *VerifySimulation, mapId int32, stationId string) *state.AllDevicesStatus { + status := &state.AllDevicesStatus{ + ButtonState: []*state.ButtonState{}, + LightState: []*state.LightState{}, + AlarmState: []*state.AlarmState{}, + } + uidMap := QueryIBPUidMapByType(mapId, stationId) + for _, u := range uidMap { + entry, ok := entity.GetEntityByUid(sim.World, u.Uid) + if !ok { + continue + } + if entry.HasComponent(component.ButtonTag) { // 按钮 + status.ButtonState = append(status.ButtonState, getIBPButtonState(u.CommonId, entry)) + } else if entry.HasComponent(component.AlarmTag) { // 报警器 + status.AlarmState = append(status.AlarmState, getIBPAlarmState(u.CommonId, entry)) + } else if entry.HasComponent(component.LightTag) { // 指示灯 + status.LightState = append(status.LightState, &state.LightState{ + Id: u.CommonId, + Aspect: getIBPLightAspect(entry), + }) + } + } + return status +} + +// 获取IBP盘按钮状态 +func getIBPButtonState(id string, entry *ecs.Entry) *state.ButtonState { + status := &state.ButtonState{Id: id, Aspect: state.Signal_Non} + bit := component.BitStateType.Get(entry) + status.Down = bit.Val + // 如果按钮包含灯 + if entry.HasComponent(component.SingleLightType) { + lightComponent := component.SingleLightType.Get(entry) + status.Aspect = getIBPLightAspect(lightComponent.Light) + } + return status +} + +// 获取灯的颜色 +func getIBPLightAspect(light *ecs.Entry) state.Signal_Aspect { + isActive := component.BitStateType.Get(light).Val + if isActive { + switch { + case light.HasComponent(component.LdTag): + return state.Signal_L + case light.HasComponent(component.HdTag): + return state.Signal_H + case light.HasComponent(component.UdTag): + return state.Signal_U + case light.HasComponent(component.BdTag): + return state.Signal_B + case light.HasComponent(component.AdTag): + return state.Signal_A + default: + return state.Signal_Non + } + } else { + return state.Signal_OFF + } +} + +// 获取警铃状态 +func getIBPAlarmState(id string, entry *ecs.Entry) *state.AlarmState { + status := &state.AlarmState{Id: id} + bit := component.BitStateType.Get(entry) + status.Active = bit.Val + return status +} diff --git a/ats/verify/simulation/wayside/memory/wayside_memory_map_init.go b/ats/verify/simulation/wayside/memory/wayside_memory_map_init.go index 1faec15..5da82bd 100644 --- a/ats/verify/simulation/wayside/memory/wayside_memory_map_init.go +++ b/ats/verify/simulation/wayside/memory/wayside_memory_map_init.go @@ -215,7 +215,7 @@ func initIBPUid(gus *stationUidStructure, city, lineId string, station *graphicD Uid: GenerateElementUid(city, lineId, []string{station.Code}, getCode(d.Common.Id, d.Code)), } } - gus.IBPIds[station.Code] = uidMap + gus.IBPIds[station.Common.Id] = uidMap } // 初始化继电器柜 UID @@ -370,23 +370,17 @@ func QueryUidByMidAndComId(mapId int32, comId string, m interface{}) string { } // 根据地图、车站CODE、设备类型获取UID集合 -func QueryIBPUidMapByType(mapId int32, stationCode string, m interface{}) map[string]*elementIdStructure { +func QueryIBPUidMapByType(mapId int32, stationCommonId string) map[string]*elementIdStructure { uidData, ok := giUidMap.Load(mapId) if !ok { panic(&dto.ErrorDto{Code: dto.DataNotExist, Message: fmt.Sprintf("地图【id:%d】不存在uid缓存", mapId)}) } - switch m.(type) { - // Ibp相关 - case *graphicData.IBPButton, *graphicData.IbpAlarm, *graphicData.IbpKey, *graphicData.IbpLight: - return (uidData.(*stationUidStructure)).IBPIds[stationCode] - default: - panic(&dto.ErrorDto{Code: dto.ArgumentParseError, Message: "类型未映射字段"}) - } + return (uidData.(*stationUidStructure)).IBPIds[stationCommonId] } // 根据地图的comId获取UID -func QueryIBPUidByMidAndComId(mapId int32, comId, stationCode string, m interface{}) string { - uidMap := QueryIBPUidMapByType(mapId, stationCode, m) +func QueryIBPUidByMidAndComId(mapId int32, comId, stationCommonId string) string { + uidMap := QueryIBPUidMapByType(mapId, stationCommonId) if uidMap[comId] != nil { return uidMap[comId].Uid } diff --git a/ats/verify/simulation/wayside/memory/wayside_memory_station.go b/ats/verify/simulation/wayside/memory/wayside_memory_station.go new file mode 100644 index 0000000..c121f7e --- /dev/null +++ b/ats/verify/simulation/wayside/memory/wayside_memory_station.go @@ -0,0 +1,37 @@ +package memory + +import ( + "joylink.club/bj-rtsts-server/ats/verify/protos/graphicData" + "joylink.club/bj-rtsts-server/ats/verify/protos/state" + "joylink.club/rtsssimulation/component" + "joylink.club/rtsssimulation/entity" + "joylink.club/rtsssimulation/fi" +) + +// 操作IBP按钮 +func ChangeEsbButtonState(sim *VerifySimulation, mapId int32, btnId string, pressDown bool) { + uid := QueryUidByMidAndComId(mapId, btnId, &graphicData.EsbButton{}) + if pressDown { + fi.PressDownButton(sim.World, uid) + } else { + fi.PressUpButton(sim.World, uid) + } +} + +// 获取仿真车站按钮状态,前端推送 +func GetMapAllStationButtonState(sim *VerifySimulation, mapId int32) []*state.ButtonState { + // 获取地图上的按钮状态 + var btnStateArr []*state.ButtonState + uidMap := QueryMapUidMapByType(mapId, &graphicData.EsbButton{}) + for _, u := range uidMap { + entry, ok := entity.GetEntityByUid(sim.World, u.Uid) + if !ok { + continue + } + if entry.HasComponent(component.ButtonTag) { // 按钮 + bit := component.BitStateType.Get(entry) + btnStateArr = append(btnStateArr, &state.ButtonState{Id: u.CommonId, Down: bit.Val}) + } + } + return btnStateArr +} diff --git a/ats/verify/simulation/wayside/memory/wayside_simulation.go b/ats/verify/simulation/wayside/memory/wayside_simulation.go index 5e174e3..b08dca4 100644 --- a/ats/verify/simulation/wayside/memory/wayside_simulation.go +++ b/ats/verify/simulation/wayside/memory/wayside_simulation.go @@ -137,6 +137,7 @@ func (s *VerifySimulation) GetAllState(mapId int32) *state.PushedDevicesStatus { SwitchState: GetMapAllTurnoutState(s, mapId), TrainState: GetAllTrainState(s), SignalState: GetMapAllSignalState(s, mapId), + ButtonState: GetMapAllStationButtonState(s, mapId), }, } case graphicData.PictureType_RelayCabinetLayout: @@ -163,12 +164,8 @@ func (s *VerifySimulation) GetAllPSLState(mapId int32, boxId string) *state.Push // 获取车站IBP状态 func (s *VerifySimulation) GetAllIBPState(mapId int32, stationId string) *state.PushedDevicesStatus { return &state.PushedDevicesStatus{ - All: true, - AllStatus: &state.AllDevicesStatus{ - ButtonState: []*state.ButtonState{}, - LightState: []*state.LightState{}, - AlarmState: []*state.AlarmState{}, - }, + All: true, + AllStatus: GetMapAllIBPState(s, mapId, stationId), } } diff --git a/bj-rtss-message b/bj-rtss-message index 7b83f10..291c568 160000 --- a/bj-rtss-message +++ b/bj-rtss-message @@ -1 +1 @@ -Subproject commit 7b83f10ef6e00d741ba05dead36871c1bba81dbb +Subproject commit 291c568905730b90622ffe8211be0c707873957f diff --git a/docs/docs.go b/docs/docs.go index 8c86fd9..5869c15 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -1328,7 +1328,7 @@ const docTemplate = `{ } } }, - "/api/v1/drafting/paging": { + "/api/v1/drafting/list": { "get": { "security": [ { @@ -1381,6 +1381,75 @@ const docTemplate = `{ } } }, + "/api/v1/drafting/paging": { + "get": { + "security": [ + { + "JwtAuth": [] + } + ], + "description": "可以通过草稿名称过滤,分页查询草稿", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "草稿Api" + ], + "summary": "分页查询草稿", + "parameters": [ + { + "type": "string", + "name": "name", + "in": "query" + }, + { + "type": "integer", + "example": 1, + "description": "页码", + "name": "current", + "in": "query", + "required": true + }, + { + "type": "integer", + "example": 10, + "description": "页面行数", + "name": "size", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageDto" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/dto.ErrorDto" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/dto.ErrorDto" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/dto.ErrorDto" + } + } + } + } + }, "/api/v1/drafting/{id}": { "get": { "security": [ @@ -2333,6 +2402,61 @@ const docTemplate = `{ } } }, + "/api/v1/publishedGi/name": { + "get": { + "security": [ + { + "JwtAuth": [] + } + ], + "description": "可以通过名称过滤", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "发布的图形数据Api" + ], + "summary": "根据Code查询发布地图数据", + "parameters": [ + { + "type": "boolean", + "name": "detail", + "in": "query" + }, + { + "type": "string", + "name": "name", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/model.PublishedGi" + } + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/dto.ErrorDto" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/dto.ErrorDto" + } + } + } + } + }, "/api/v1/publishedGi/paging": { "get": { "security": [ @@ -2766,6 +2890,58 @@ const docTemplate = `{ } } }, + "/api/v1/simulation/esbBtn/operation": { + "post": { + "security": [ + { + "JwtAuth": [] + } + ], + "description": "ATS测试-ESB按钮操作", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "ATS测试仿真Api" + ], + "summary": "ATS测试-ESB按钮操作", + "parameters": [ + { + "type": "string", + "description": "JWT Token", + "name": "Authorization", + "in": "header", + "required": true + }, + { + "description": "ATS测试仿真-ESB按钮操作", + "name": "ButtonOperationReqDto", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ButtonOperationReqDto" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/dto.ErrorDto" + } + } + } + } + }, "/api/v1/simulation/getDataChannelName": { "get": { "security": [ @@ -2809,6 +2985,58 @@ const docTemplate = `{ } } }, + "/api/v1/simulation/ibp/operation": { + "post": { + "security": [ + { + "JwtAuth": [] + } + ], + "description": "ATS测试-IBP按钮操作", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "ATS测试仿真Api" + ], + "summary": "ATS测试-IBP按钮操作", + "parameters": [ + { + "type": "string", + "description": "JWT Token", + "name": "Authorization", + "in": "header", + "required": true + }, + { + "description": "ATS测试仿真-IBP按钮操作", + "name": "ButtonOperationReqDto", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ButtonOperationReqDto" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/dto.ErrorDto" + } + } + } + } + }, "/api/v1/simulation/list": { "get": { "security": [ @@ -4503,6 +4731,32 @@ const docTemplate = `{ } } }, + "dto.ButtonOperationReqDto": { + "type": "object", + "required": [ + "down", + "id", + "mapId", + "simulationId" + ], + "properties": { + "down": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "mapId": { + "type": "integer" + }, + "simulationId": { + "type": "string" + }, + "stationId": { + "type": "string" + } + } + }, "dto.CheckMapDataReqDto": { "type": "object", "required": [ @@ -5184,8 +5438,8 @@ const docTemplate = `{ 7 ], "x-enum-varnames": [ + "Signal_Non", "Signal_OFF", - "Signal_ON", "Signal_L", "Signal_H", "Signal_U", diff --git a/docs/swagger.json b/docs/swagger.json index 733072a..468dd90 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -1321,7 +1321,7 @@ } } }, - "/api/v1/drafting/paging": { + "/api/v1/drafting/list": { "get": { "security": [ { @@ -1374,6 +1374,75 @@ } } }, + "/api/v1/drafting/paging": { + "get": { + "security": [ + { + "JwtAuth": [] + } + ], + "description": "可以通过草稿名称过滤,分页查询草稿", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "草稿Api" + ], + "summary": "分页查询草稿", + "parameters": [ + { + "type": "string", + "name": "name", + "in": "query" + }, + { + "type": "integer", + "example": 1, + "description": "页码", + "name": "current", + "in": "query", + "required": true + }, + { + "type": "integer", + "example": 10, + "description": "页面行数", + "name": "size", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/dto.PageDto" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/dto.ErrorDto" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/dto.ErrorDto" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/dto.ErrorDto" + } + } + } + } + }, "/api/v1/drafting/{id}": { "get": { "security": [ @@ -2326,6 +2395,61 @@ } } }, + "/api/v1/publishedGi/name": { + "get": { + "security": [ + { + "JwtAuth": [] + } + ], + "description": "可以通过名称过滤", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "发布的图形数据Api" + ], + "summary": "根据Code查询发布地图数据", + "parameters": [ + { + "type": "boolean", + "name": "detail", + "in": "query" + }, + { + "type": "string", + "name": "name", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/model.PublishedGi" + } + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/dto.ErrorDto" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/dto.ErrorDto" + } + } + } + } + }, "/api/v1/publishedGi/paging": { "get": { "security": [ @@ -2759,6 +2883,58 @@ } } }, + "/api/v1/simulation/esbBtn/operation": { + "post": { + "security": [ + { + "JwtAuth": [] + } + ], + "description": "ATS测试-ESB按钮操作", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "ATS测试仿真Api" + ], + "summary": "ATS测试-ESB按钮操作", + "parameters": [ + { + "type": "string", + "description": "JWT Token", + "name": "Authorization", + "in": "header", + "required": true + }, + { + "description": "ATS测试仿真-ESB按钮操作", + "name": "ButtonOperationReqDto", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ButtonOperationReqDto" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/dto.ErrorDto" + } + } + } + } + }, "/api/v1/simulation/getDataChannelName": { "get": { "security": [ @@ -2802,6 +2978,58 @@ } } }, + "/api/v1/simulation/ibp/operation": { + "post": { + "security": [ + { + "JwtAuth": [] + } + ], + "description": "ATS测试-IBP按钮操作", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "ATS测试仿真Api" + ], + "summary": "ATS测试-IBP按钮操作", + "parameters": [ + { + "type": "string", + "description": "JWT Token", + "name": "Authorization", + "in": "header", + "required": true + }, + { + "description": "ATS测试仿真-IBP按钮操作", + "name": "ButtonOperationReqDto", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/dto.ButtonOperationReqDto" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/dto.ErrorDto" + } + } + } + } + }, "/api/v1/simulation/list": { "get": { "security": [ @@ -4496,6 +4724,32 @@ } } }, + "dto.ButtonOperationReqDto": { + "type": "object", + "required": [ + "down", + "id", + "mapId", + "simulationId" + ], + "properties": { + "down": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "mapId": { + "type": "integer" + }, + "simulationId": { + "type": "string" + }, + "stationId": { + "type": "string" + } + } + }, "dto.CheckMapDataReqDto": { "type": "object", "required": [ @@ -5177,8 +5431,8 @@ 7 ], "x-enum-varnames": [ + "Signal_Non", "Signal_OFF", - "Signal_ON", "Signal_L", "Signal_H", "Signal_U", diff --git a/docs/swagger.yaml b/docs/swagger.yaml index 5861728..64ebec3 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -60,6 +60,24 @@ definitions: name: type: string type: object + dto.ButtonOperationReqDto: + properties: + down: + type: boolean + id: + type: string + mapId: + type: integer + simulationId: + type: string + stationId: + type: string + required: + - down + - id + - mapId + - simulationId + type: object dto.CheckMapDataReqDto: properties: data: @@ -545,8 +563,8 @@ definitions: - 7 type: integer x-enum-varnames: + - Signal_Non - Signal_OFF - - Signal_ON - Signal_L - Signal_H - Signal_U @@ -1583,7 +1601,7 @@ paths: summary: 根据地图数据新生成计算的link信息 tags: - 草稿Api - /api/v1/drafting/paging: + /api/v1/drafting/list: get: consumes: - application/json @@ -1616,6 +1634,51 @@ paths: summary: 列表查询草稿 tags: - 草稿Api + /api/v1/drafting/paging: + get: + consumes: + - application/json + description: 可以通过草稿名称过滤,分页查询草稿 + parameters: + - in: query + name: name + type: string + - description: 页码 + example: 1 + in: query + name: current + required: true + type: integer + - description: 页面行数 + example: 10 + in: query + name: size + required: true + type: integer + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/dto.PageDto' + "401": + description: Unauthorized + schema: + $ref: '#/definitions/dto.ErrorDto' + "404": + description: Not Found + schema: + $ref: '#/definitions/dto.ErrorDto' + "500": + description: Internal Server Error + schema: + $ref: '#/definitions/dto.ErrorDto' + security: + - JwtAuth: [] + summary: 分页查询草稿 + tags: + - 草稿Api /api/v1/project: post: consumes: @@ -2094,6 +2157,40 @@ paths: summary: 列表查询发布的图形数据 tags: - 发布的图形数据Api + /api/v1/publishedGi/name: + get: + consumes: + - application/json + description: 可以通过名称过滤 + parameters: + - in: query + name: detail + type: boolean + - in: query + name: name + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + items: + $ref: '#/definitions/model.PublishedGi' + type: array + "401": + description: Unauthorized + schema: + $ref: '#/definitions/dto.ErrorDto' + "500": + description: Internal Server Error + schema: + $ref: '#/definitions/dto.ErrorDto' + security: + - JwtAuth: [] + summary: 根据Code查询发布地图数据 + tags: + - 发布的图形数据Api /api/v1/publishedGi/paging: get: consumes: @@ -2310,6 +2407,39 @@ paths: summary: ATS仿真销毁 tags: - ATS测试仿真Api + /api/v1/simulation/esbBtn/operation: + post: + consumes: + - application/json + description: ATS测试-ESB按钮操作 + parameters: + - description: JWT Token + in: header + name: Authorization + required: true + type: string + - description: ATS测试仿真-ESB按钮操作 + in: body + name: ButtonOperationReqDto + required: true + schema: + $ref: '#/definitions/dto.ButtonOperationReqDto' + produces: + - application/json + responses: + "200": + description: OK + schema: + type: string + "500": + description: Internal Server Error + schema: + $ref: '#/definitions/dto.ErrorDto' + security: + - JwtAuth: [] + summary: ATS测试-ESB按钮操作 + tags: + - ATS测试仿真Api /api/v1/simulation/getDataChannelName: get: consumes: @@ -2337,6 +2467,39 @@ paths: summary: 获取仿真信息更新通道名称 tags: - ATS测试仿真Api + /api/v1/simulation/ibp/operation: + post: + consumes: + - application/json + description: ATS测试-IBP按钮操作 + parameters: + - description: JWT Token + in: header + name: Authorization + required: true + type: string + - description: ATS测试仿真-IBP按钮操作 + in: body + name: ButtonOperationReqDto + required: true + schema: + $ref: '#/definitions/dto.ButtonOperationReqDto' + produces: + - application/json + responses: + "200": + description: OK + schema: + type: string + "500": + description: Internal Server Error + schema: + $ref: '#/definitions/dto.ErrorDto' + security: + - JwtAuth: [] + summary: ATS测试-IBP按钮操作 + tags: + - ATS测试仿真Api /api/v1/simulation/list: get: consumes: diff --git a/dto/simulation.go b/dto/simulation.go index 962c364..4239818 100644 --- a/dto/simulation.go +++ b/dto/simulation.go @@ -77,6 +77,14 @@ type SignalOperationReqDto struct { Aspect state.Signal_Aspect `form:"aspect" json:"aspect" binding:"required"` } +type ButtonOperationReqDto struct { + SimulationId string `form:"simulationId" json:"simulationId" binding:"required"` + MapId int32 `json:"mapId" from:"mapId" binding:"required"` + StationId string `form:"stationId" json:"stationId"` + Id string `form:"id" json:"id" binding:"required"` + Down bool `form:"down" json:"down" binding:"required"` +} + ///////////////////////////////////////////////////////////////////////////////// // 地铁数据检测请求 diff --git a/rtss_simulation b/rtss_simulation index 05de54f..a65799e 160000 --- a/rtss_simulation +++ b/rtss_simulation @@ -1 +1 @@ -Subproject commit 05de54f450cb8fc95301e414c3439194a7d49594 +Subproject commit a65799ed77d93ff71e4fa6ea9fe35a47997f9a58