diff --git a/api/simulation.go b/api/simulation.go index b4de711..22d851e 100644 --- a/api/simulation.go +++ b/api/simulation.go @@ -30,22 +30,24 @@ func InitSimulationRouter(api *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddle authed.POST("/train/add", addTrain) authed.POST("/train/config", configTrain) authed.POST("/train/remove", removeTrain) + authed.POST("/train/remove/all", removeAllTrain) authed.POST("/train/update", updateTrain) authed.POST("/switch/operation", turnoutOperation) authed.POST("/relay/operation", relayOperation) authed.POST("/signal/operation", signalOperation) authed.POST("/axleSection/operation", axleSectionOperation) - authed.POST("/esbBtn/operation", esbBtnOperation) - authed.POST("/ibp/btn/operation", ibpBtnOperation) - authed.POST("/ibp/key/operation", ibpKeyOperation) + authed.POST("/esbBtn/operation", esbBtnOperation) //1 + authed.POST("/ibp/btn/operation", ibpBtnOperation) //1 + authed.POST("/ibp/key/operation", ibpKeyOperation) //1 authed.GET("/:id/getMapKilometerRange", getMapKilometerRange) - authed.POST("/psl/operation", pslBtnOperation) + authed.POST("/psl/operation", pslBtnOperation) //1 authed.POST("/psd/operation", psdOperation) authed.PUT("/balise/position/modify", balisePositionModify) authed.PUT("/balise/position/reset", transponderPositionReset) authed.PUT("/balise/telegram/modify", baliseTelegramModify) authed.PUT("/balise/telegram/reset", baliseTelegramReset) authed.PUT("/balise/reset", baliseReset) + authed.POST("/bypass/operation", bypassBtnOrKeyOperation) // 初始化地图信息 initPublishMapInfo() @@ -223,18 +225,22 @@ func addTrain(c *gin.Context) { panic(sys_error.New("添加列车失败,请求参数异常", err)) } simulation := checkDeviceDataAndReturn(req.SimulationId) - id := getAddTrainPrimaryKey(simulation) - if id == -1 { - panic(sys_error.New("添加列车失败,已有列车在运行")) + //id := getAddTrainPrimaryKey(simulation) + //if id == -1 { + // panic(sys_error.New("添加列车失败,已有列车在运行")) + //} + if req.TrainId < 0 || req.TrainId >= 255 { + panic(sys_error.New("列车编号不能小于0,大于255")) } rsp := &state_proto.TrainState{ - Id: strconv.Itoa(id), + Id: fmt.Sprintf("%v", req.TrainId), HeadDeviceId: req.Id, HeadOffset: req.HeadOffset, DevicePort: req.DevicePort, RunDirection: req.RunDirection, TrainLength: req.TrainLength, WheelDiameter: req.WheelDiameter, + Speed: req.TrainSpeed, } memory.AddTrainStateNew(simulation, rsp, req.ConfigTrain, req.TrainEndsA, req.TrainEndsB, req.MapId) c.JSON(http.StatusOK, &rsp) @@ -270,6 +276,35 @@ func updateTrain(c *gin.Context) { c.JSON(http.StatusOK, &rsp) } +// ATS测试仿真-移除所有列车 +// +// @Summary ATS测试仿真-移除列车 +// +// @Security JwtAuth +// +// @Description ATS测试仿真-移除列车 +// @Tags ATS测试仿真Api +// @Accept json +// @Produce json +// @Param Authorization header string true "JWT Token" +// @Param RemoveTrainDto body dto.RemoveAllTrainRspDto true "ATS测试仿真-移除所有列车" +// +// @Success 200 {object} string +// @Failure 500 {object} dto.ErrorDto +// @Router /api/v1/simulation/train/remove/all [post] +func removeAllTrain(c *gin.Context) { + + rt := &dto.RemoveAllTrainRspDto{} + if err := c.ShouldBind(&rt); err != nil { + panic(sys_error.New("移除所有列车失败,请求参数异常", err)) + } + slog.Debug("ATS测试仿真-移除所有列车,请求:", rt) + simulation := checkDeviceDataAndReturn(rt.SimulationId) + memory.RemoveAllTrain(simulation) + //TODO 后续调用列车删除操作 + c.JSON(http.StatusOK, "ok") +} + // ATS测试仿真-移除列车 // // @Summary ATS测试仿真-移除列车 @@ -298,6 +333,36 @@ func removeTrain(c *gin.Context) { c.JSON(http.StatusOK, "ok") } +// ATS测试仿真-摁钮,钥匙设置旁路 +// +// @Summary ATS测试仿真-摁钮,钥匙设置旁路 +// +// @Security JwtAuth +// +// @Description ATS测试仿真-移除列车 +// @Tags ATS测试仿真Api +// @Accept json +// @Produce json +// @Param Authorization header string true "JWT Token" +// @Param BypassOperationReq body request_proto.BypassOperationReq true "ATS测试仿真-摁钮,钥匙设置旁路" +// +// @Success 200 {object} string +// @Failure 500 {object} dto.ErrorDto +// @Router /api/v1/simulation/bypass/operation [post] +func bypassBtnOrKeyOperation(c *gin.Context) { + req := &request_proto.BypassOperationReq{} + if err := c.ShouldBind(&req); err != nil { + panic(sys_error.New("摁钮旁路参数,请求参数异常", err)) + } + slog.Debug("ATS测试仿真-摁钮旁路参数,请求:", req) + simulation := checkDeviceDataAndReturn(req.SimulationId) + err := memory.ChangeBtnAndkeyBypass(simulation, req) + if err != nil { + panic(sys_error.New("旁路设置失败")) + } + c.JSON(http.StatusOK, "ok") +} + // 获取ATS测试-操作道岔 // // @Summary 获取ATS测试-操作道岔 diff --git a/bj-rtss-message b/bj-rtss-message index 15c8b52..936ecfe 160000 --- a/bj-rtss-message +++ b/bj-rtss-message @@ -1 +1 @@ -Subproject commit 15c8b523c29de1ced3ec98bdfbd615325f1e4e42 +Subproject commit 936ecfec019eda93e282bffd67f07f18f678ae05 diff --git a/docs/docs.go b/docs/docs.go index 58fcd0a..86a3cb4 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -3506,6 +3506,58 @@ const docTemplate = `{ } } }, + "/api/v1/simulation/bypass/operation": { + "post": { + "security": [ + { + "JwtAuth": [] + } + ], + "description": "ATS测试仿真-移除列车", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "ATS测试仿真Api" + ], + "summary": "ATS测试仿真-摁钮,钥匙设置旁路", + "parameters": [ + { + "type": "string", + "description": "JWT Token", + "name": "Authorization", + "in": "header", + "required": true + }, + { + "description": "ATS测试仿真-摁钮,钥匙设置旁路", + "name": "BypassOperationReq", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request_proto.BypassOperationReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/dto.ErrorDto" + } + } + } + } + }, "/api/v1/simulation/check/data": { "post": { "security": [ @@ -4278,6 +4330,58 @@ const docTemplate = `{ } } }, + "/api/v1/simulation/train/remove/all": { + "post": { + "security": [ + { + "JwtAuth": [] + } + ], + "description": "ATS测试仿真-移除列车", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "ATS测试仿真Api" + ], + "summary": "ATS测试仿真-移除列车", + "parameters": [ + { + "type": "string", + "description": "JWT Token", + "name": "Authorization", + "in": "header", + "required": true + }, + { + "description": "ATS测试仿真-移除所有列车", + "name": "RemoveTrainDto", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/dto.RemoveAllTrainRspDto" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/dto.ErrorDto" + } + } + } + } + }, "/api/v1/simulation/train/update": { "post": { "security": [ @@ -4950,6 +5054,10 @@ const docTemplate = `{ "dto.AddTrainReqDtoNew": { "type": "object", "properties": { + "TrainSpeed": { + "description": "列车时速", + "type": "number" + }, "configTrain": { "description": "列车数据配置", "allOf": [ @@ -5002,6 +5110,10 @@ const docTemplate = `{ } ] }, + "trainId": { + "description": "列车id", + "type": "integer" + }, "trainLength": { "description": "列车长度", "type": "integer" @@ -5682,6 +5794,19 @@ const docTemplate = `{ } } }, + "dto.RemoveAllTrainRspDto": { + "type": "object", + "properties": { + "mapId": { + "description": "场景ID", + "type": "integer" + }, + "simulationId": { + "description": "仿真id", + "type": "string" + } + } + }, "dto.RemoveTrainDto": { "type": "object", "properties": { @@ -6011,6 +6136,70 @@ const docTemplate = `{ } } }, + "request_proto.BypassOperationReq": { + "type": "object", + "properties": { + "btnType": { + "$ref": "#/definitions/request_proto.BypassOperationReq_BtnType" + }, + "deviceCode": { + "description": "设备code", + "type": "string" + }, + "deviceId": { + "description": "设备id", + "type": "integer" + }, + "gateBoxId": { + "type": "integer" + }, + "mapId": { + "description": "图id", + "type": "integer" + }, + "operation": { + "$ref": "#/definitions/request_proto.BypassOperationReq_Operation" + }, + "simulationId": { + "description": "仿真id", + "type": "string" + }, + "stationId": { + "description": "车站id", + "type": "integer" + } + } + }, + "request_proto.BypassOperationReq_BtnType": { + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ], + "x-enum-varnames": [ + "BypassOperationReq_esb_btn", + "BypassOperationReq_ibp_btn", + "BypassOperationReq_ibp_key", + "BypassOperationReq_pls_btn" + ] + }, + "request_proto.BypassOperationReq_Operation": { + "type": "integer", + "enum": [ + 0, + 1 + ], + "x-enum-comments": { + "BypassOperationReq_bypass": "旁路", + "BypassOperationReq_bypass_reset": "旁路重置" + }, + "x-enum-varnames": [ + "BypassOperationReq_bypass", + "BypassOperationReq_bypass_reset" + ] + }, "request_proto.PointsOperationReq": { "type": "object", "properties": { diff --git a/docs/swagger.json b/docs/swagger.json index ed32c75..eec4310 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -3500,6 +3500,58 @@ } } }, + "/api/v1/simulation/bypass/operation": { + "post": { + "security": [ + { + "JwtAuth": [] + } + ], + "description": "ATS测试仿真-移除列车", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "ATS测试仿真Api" + ], + "summary": "ATS测试仿真-摁钮,钥匙设置旁路", + "parameters": [ + { + "type": "string", + "description": "JWT Token", + "name": "Authorization", + "in": "header", + "required": true + }, + { + "description": "ATS测试仿真-摁钮,钥匙设置旁路", + "name": "BypassOperationReq", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request_proto.BypassOperationReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/dto.ErrorDto" + } + } + } + } + }, "/api/v1/simulation/check/data": { "post": { "security": [ @@ -4272,6 +4324,58 @@ } } }, + "/api/v1/simulation/train/remove/all": { + "post": { + "security": [ + { + "JwtAuth": [] + } + ], + "description": "ATS测试仿真-移除列车", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "ATS测试仿真Api" + ], + "summary": "ATS测试仿真-移除列车", + "parameters": [ + { + "type": "string", + "description": "JWT Token", + "name": "Authorization", + "in": "header", + "required": true + }, + { + "description": "ATS测试仿真-移除所有列车", + "name": "RemoveTrainDto", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/dto.RemoveAllTrainRspDto" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/dto.ErrorDto" + } + } + } + } + }, "/api/v1/simulation/train/update": { "post": { "security": [ @@ -4944,6 +5048,10 @@ "dto.AddTrainReqDtoNew": { "type": "object", "properties": { + "TrainSpeed": { + "description": "列车时速", + "type": "number" + }, "configTrain": { "description": "列车数据配置", "allOf": [ @@ -4996,6 +5104,10 @@ } ] }, + "trainId": { + "description": "列车id", + "type": "integer" + }, "trainLength": { "description": "列车长度", "type": "integer" @@ -5676,6 +5788,19 @@ } } }, + "dto.RemoveAllTrainRspDto": { + "type": "object", + "properties": { + "mapId": { + "description": "场景ID", + "type": "integer" + }, + "simulationId": { + "description": "仿真id", + "type": "string" + } + } + }, "dto.RemoveTrainDto": { "type": "object", "properties": { @@ -6005,6 +6130,70 @@ } } }, + "request_proto.BypassOperationReq": { + "type": "object", + "properties": { + "btnType": { + "$ref": "#/definitions/request_proto.BypassOperationReq_BtnType" + }, + "deviceCode": { + "description": "设备code", + "type": "string" + }, + "deviceId": { + "description": "设备id", + "type": "integer" + }, + "gateBoxId": { + "type": "integer" + }, + "mapId": { + "description": "图id", + "type": "integer" + }, + "operation": { + "$ref": "#/definitions/request_proto.BypassOperationReq_Operation" + }, + "simulationId": { + "description": "仿真id", + "type": "string" + }, + "stationId": { + "description": "车站id", + "type": "integer" + } + } + }, + "request_proto.BypassOperationReq_BtnType": { + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ], + "x-enum-varnames": [ + "BypassOperationReq_esb_btn", + "BypassOperationReq_ibp_btn", + "BypassOperationReq_ibp_key", + "BypassOperationReq_pls_btn" + ] + }, + "request_proto.BypassOperationReq_Operation": { + "type": "integer", + "enum": [ + 0, + 1 + ], + "x-enum-comments": { + "BypassOperationReq_bypass": "旁路", + "BypassOperationReq_bypass_reset": "旁路重置" + }, + "x-enum-varnames": [ + "BypassOperationReq_bypass", + "BypassOperationReq_bypass_reset" + ] + }, "request_proto.PointsOperationReq": { "type": "object", "properties": { diff --git a/docs/swagger.yaml b/docs/swagger.yaml index 107fe7c..4baeb87 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -37,6 +37,9 @@ definitions: - PictureType_TrainData dto.AddTrainReqDtoNew: properties: + TrainSpeed: + description: 列车时速 + type: number configTrain: allOf: - $ref: '#/definitions/dto.ConfigTrainData' @@ -70,6 +73,9 @@ definitions: allOf: - $ref: '#/definitions/dto.ConfigTrainEnds' description: 车辆B端 + trainId: + description: 列车id + type: integer trainLength: description: 列车长度 type: integer @@ -536,6 +542,15 @@ definitions: - mapId - simulationId type: object + dto.RemoveAllTrainRspDto: + properties: + mapId: + description: 场景ID + type: integer + simulationId: + description: 仿真id + type: string + type: object dto.RemoveTrainDto: properties: mapId: @@ -770,6 +785,53 @@ definitions: description: 数据类型 type: integer type: object + request_proto.BypassOperationReq: + properties: + btnType: + $ref: '#/definitions/request_proto.BypassOperationReq_BtnType' + deviceCode: + description: 设备code + type: string + deviceId: + description: 设备id + type: integer + gateBoxId: + type: integer + mapId: + description: 图id + type: integer + operation: + $ref: '#/definitions/request_proto.BypassOperationReq_Operation' + simulationId: + description: 仿真id + type: string + stationId: + description: 车站id + type: integer + type: object + request_proto.BypassOperationReq_BtnType: + enum: + - 0 + - 1 + - 2 + - 3 + type: integer + x-enum-varnames: + - BypassOperationReq_esb_btn + - BypassOperationReq_ibp_btn + - BypassOperationReq_ibp_key + - BypassOperationReq_pls_btn + request_proto.BypassOperationReq_Operation: + enum: + - 0 + - 1 + type: integer + x-enum-comments: + BypassOperationReq_bypass: 旁路 + BypassOperationReq_bypass_reset: 旁路重置 + x-enum-varnames: + - BypassOperationReq_bypass + - BypassOperationReq_bypass_reset request_proto.Points_Force: enum: - 0 @@ -3229,6 +3291,39 @@ paths: summary: 重置应答器报文 tags: - ATS测试仿真Api + /api/v1/simulation/bypass/operation: + post: + consumes: + - application/json + description: ATS测试仿真-移除列车 + parameters: + - description: JWT Token + in: header + name: Authorization + required: true + type: string + - description: ATS测试仿真-摁钮,钥匙设置旁路 + in: body + name: BypassOperationReq + required: true + schema: + $ref: '#/definitions/request_proto.BypassOperationReq' + produces: + - application/json + responses: + "200": + description: OK + schema: + type: string + "500": + description: Internal Server Error + schema: + $ref: '#/definitions/dto.ErrorDto' + security: + - JwtAuth: [] + summary: ATS测试仿真-摁钮,钥匙设置旁路 + tags: + - ATS测试仿真Api /api/v1/simulation/check/data: post: consumes: @@ -3719,6 +3814,39 @@ paths: summary: ATS测试仿真-移除列车 tags: - ATS测试仿真Api + /api/v1/simulation/train/remove/all: + post: + consumes: + - application/json + description: ATS测试仿真-移除列车 + parameters: + - description: JWT Token + in: header + name: Authorization + required: true + type: string + - description: ATS测试仿真-移除所有列车 + in: body + name: RemoveTrainDto + required: true + schema: + $ref: '#/definitions/dto.RemoveAllTrainRspDto' + produces: + - application/json + responses: + "200": + description: OK + schema: + type: string + "500": + description: Internal Server Error + schema: + $ref: '#/definitions/dto.ErrorDto' + security: + - JwtAuth: [] + summary: ATS测试仿真-移除列车 + tags: + - ATS测试仿真Api /api/v1/simulation/train/update: post: consumes: diff --git a/dto/data_proto/stationLayoutGraphics.pb.go b/dto/data_proto/stationLayoutGraphics.pb.go index 9ed020b..199e53f 100644 --- a/dto/data_proto/stationLayoutGraphics.pb.go +++ b/dto/data_proto/stationLayoutGraphics.pb.go @@ -4040,8 +4040,9 @@ type EsbButton struct { Flip bool `protobuf:"varint,3,opt,name=flip,proto3" json:"flip,omitempty"` // 是否翻转(前端显示) // int32 index = 4; //索引 // int32 refStand = 5; // 关联站台索引 - OldrefStand string `protobuf:"bytes,6,opt,name=oldrefStand,proto3" json:"oldrefStand,omitempty"` // 关联站台 - RefStand uint32 `protobuf:"varint,7,opt,name=refStand,proto3" json:"refStand,omitempty"` // 关联站台 + OldrefStand string `protobuf:"bytes,6,opt,name=oldrefStand,proto3" json:"oldrefStand,omitempty"` // 关联站台 + RefStand uint32 `protobuf:"varint,7,opt,name=refStand,proto3" json:"refStand,omitempty"` // 关联站台 + RefEsbButtonMapCode string `protobuf:"bytes,8,opt,name=refEsbButtonMapCode,proto3" json:"refEsbButtonMapCode,omitempty"` // 关联紧急关闭按钮地图Code--关联PSL地图 } func (x *EsbButton) Reset() { @@ -4111,6 +4112,13 @@ func (x *EsbButton) GetRefStand() uint32 { return 0 } +func (x *EsbButton) GetRefEsbButtonMapCode() string { + if x != nil { + return x.RefEsbButtonMapCode + } + return "" +} + type GatedBox struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5952,7 +5960,7 @@ var file_stationLayoutGraphics_proto_rawDesc = []byte{ 0x65, 0x66, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x22, 0xa2, 0x01, 0x0a, 0x09, 0x45, 0x73, + 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x22, 0xd4, 0x01, 0x0a, 0x09, 0x45, 0x73, 0x62, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, @@ -5962,185 +5970,188 @@ var file_stationLayoutGraphics_proto_rawDesc = []byte{ 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x22, 0xe5, - 0x01, 0x0a, 0x08, 0x47, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x2f, 0x0a, 0x06, 0x63, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x12, 0x30, + 0x0a, 0x13, 0x72, 0x65, 0x66, 0x45, 0x73, 0x62, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x4d, 0x61, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x72, 0x65, 0x66, + 0x45, 0x73, 0x62, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x43, 0x6f, 0x64, 0x65, + 0x22, 0xe5, 0x01, 0x0a, 0x08, 0x47, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x2f, 0x0a, + 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, + 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, + 0x6f, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x72, 0x65, 0x66, 0x47, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, + 0x78, 0x4d, 0x61, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, + 0x72, 0x65, 0x66, 0x47, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x4d, 0x61, 0x70, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, + 0x6f, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x65, 0x66, 0x53, 0x63, + 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x22, 0x9e, 0x01, 0x0a, 0x0f, 0x53, 0x6c, 0x6f, + 0x70, 0x65, 0x4b, 0x69, 0x6c, 0x6f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x06, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, + 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x12, 0x46, 0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, + 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0xa2, 0x01, 0x0a, 0x13, 0x43, 0x75, + 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x69, 0x6c, 0x6f, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x46, 0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, + 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b, + 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0xbc, + 0x01, 0x0a, 0x06, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, + 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x32, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x67, + 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x22, 0x25, 0x0a, 0x0a, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x10, 0x00, + 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x10, 0x01, 0x22, 0xd0, 0x01, + 0x0a, 0x05, 0x53, 0x6c, 0x6f, 0x70, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, + 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, + 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0b, 0x73, 0x6c, 0x6f, 0x70, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, + 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, + 0x22, 0xdc, 0x01, 0x0a, 0x09, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2f, + 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, + 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x63, + 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6f, + 0x6c, 0x64, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, + 0xb7, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x6c, 0x64, 0x72, 0x65, + 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x6c, + 0x64, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x75, 0x6e, + 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x72, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, + 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x22, 0xbc, 0x01, 0x0a, 0x0d, 0x41, 0x75, + 0x74, 0x6f, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, 0x6f, 0x78, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, - 0x66, 0x6c, 0x69, 0x70, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53, 0x63, - 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, - 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, - 0x12, 0x2e, 0x0a, 0x12, 0x72, 0x65, 0x66, 0x47, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x4d, - 0x61, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, - 0x66, 0x47, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x4d, 0x61, 0x70, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, - 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x65, 0x66, 0x53, 0x63, 0x72, 0x65, - 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x22, 0x9e, 0x01, 0x0a, 0x0f, 0x53, 0x6c, 0x6f, 0x70, 0x65, - 0x4b, 0x69, 0x6c, 0x6f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, - 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, - 0x46, 0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, - 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0xa2, 0x01, 0x0a, 0x13, 0x43, 0x75, 0x72, 0x76, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x69, 0x6c, 0x6f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x12, - 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x12, 0x46, 0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b, 0x69, 0x6c, - 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0xbc, 0x01, 0x0a, - 0x06, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, - 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x61, - 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x2e, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, - 0x66, 0x6c, 0x69, 0x70, 0x22, 0x25, 0x0a, 0x0a, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x10, 0x00, 0x12, 0x0b, - 0x0a, 0x07, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x10, 0x01, 0x22, 0xd0, 0x01, 0x0a, 0x05, - 0x53, 0x6c, 0x6f, 0x70, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, - 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, - 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0b, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x6c, - 0x64, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xdc, - 0x01, 0x0a, 0x09, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2f, 0x0a, 0x06, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, - 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, - 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x75, 0x72, - 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x11, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x6c, 0x64, - 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x72, - 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x0b, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xb7, 0x01, - 0x0a, 0x0e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x72, - 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53, - 0x74, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x6c, 0x64, 0x72, - 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x44, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, - 0x75, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, - 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, - 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x22, 0xbc, 0x01, 0x0a, 0x0d, 0x41, 0x75, 0x74, 0x6f, - 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, 0x6f, 0x78, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, - 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, - 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, - 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x6c, 0x64, 0x72, - 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, - 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, - 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, - 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x22, 0x79, 0x0a, 0x17, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x49, 0x64, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x79, 0x6f, 0x75, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x32, 0x0a, - 0x14, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6d, 0x61, 0x69, - 0x6e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x22, 0x90, 0x01, 0x0a, 0x10, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x12, 0x2e, 0x0a, 0x03, 0x6b, 0x6d, 0x41, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, - 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x52, 0x03, 0x6b, 0x6d, 0x41, 0x12, 0x2e, 0x0a, 0x03, 0x6b, 0x6d, 0x42, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, - 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x52, 0x03, 0x6b, 0x6d, 0x42, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x61, 0x6d, 0x65, 0x54, 0x72, - 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x61, 0x6d, 0x65, 0x54, - 0x72, 0x65, 0x6e, 0x64, 0x22, 0xbd, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x12, 0x4e, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x61, - 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, - 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x52, 0x10, - 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x12, 0x42, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, - 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x71, 0x0a, 0x15, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, - 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x66, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0xbe, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, - 0x6f, 0x6c, 0x64, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6f, 0x6c, 0x64, - 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x6c, 0x64, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x6c, 0x64, 0x73, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x65, 0x6e, 0x74, - 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9a, 0x02, 0x0a, 0x05, 0x54, 0x72, 0x61, - 0x69, 0x6e, 0x12, 0x3d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, - 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x61, 0x72, 0x72, 0x69, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x61, 0x72, 0x72, 0x69, - 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x74, - 0x72, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x0d, 0x64, 0x79, 0x6e, - 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x44, - 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x64, 0x79, - 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x28, 0x0a, 0x0a, 0x54, - 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x05, 0x0a, 0x01, 0x41, 0x10, 0x00, - 0x12, 0x05, 0x0a, 0x01, 0x42, 0x10, 0x01, 0x12, 0x05, 0x0a, 0x01, 0x43, 0x10, 0x02, 0x12, 0x05, - 0x0a, 0x01, 0x44, 0x10, 0x03, 0x22, 0x49, 0x0a, 0x09, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x4c, 0x69, - 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6c, 0x64, 0x69, 0x64, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x6c, 0x64, 0x69, 0x64, 0x73, 0x12, 0x10, - 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x03, 0x69, 0x64, 0x73, - 0x2a, 0x1d, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x06, 0x0a, - 0x02, 0x55, 0x50, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x42, - 0x69, 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, 0x13, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, - 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x5a, 0x2b, 0x6a, - 0x6f, 0x79, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x63, 0x6c, 0x75, 0x62, 0x2f, 0x62, 0x6a, 0x2d, 0x72, - 0x74, 0x73, 0x74, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x64, 0x74, 0x6f, 0x2f, - 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x66, 0x6c, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x6c, + 0x64, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x22, 0x79, 0x0a, 0x17, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x49, 0x64, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x79, + 0x6f, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x69, 0x6e, 0x65, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, + 0x32, 0x0a, 0x14, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6d, + 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x22, 0x90, 0x01, 0x0a, 0x10, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x12, 0x2e, 0x0a, 0x03, 0x6b, 0x6d, 0x41, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x52, 0x03, 0x6b, 0x6d, 0x41, 0x12, 0x2e, 0x0a, 0x03, 0x6b, 0x6d, 0x42, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x52, 0x03, 0x6b, 0x6d, 0x42, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x61, 0x6d, 0x65, + 0x54, 0x72, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x61, 0x6d, + 0x65, 0x54, 0x72, 0x65, 0x6e, 0x64, 0x22, 0xbd, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x12, 0x4e, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, + 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, 0x65, + 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x12, 0x42, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, + 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x71, 0x0a, 0x15, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x6c, 0x64, 0x72, + 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x66, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x72, + 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0xbe, 0x01, 0x0a, 0x10, 0x53, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x34, + 0x0a, 0x15, 0x6f, 0x6c, 0x64, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6f, + 0x6c, 0x64, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x6c, 0x64, 0x73, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x6c, 0x64, + 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, + 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x65, + 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9a, 0x02, 0x0a, 0x05, 0x54, + 0x72, 0x61, 0x69, 0x6e, 0x12, 0x3d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, + 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x2e, 0x54, 0x72, 0x61, + 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x61, 0x72, 0x72, 0x69, 0x61, 0x67, 0x65, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x61, 0x72, + 0x72, 0x69, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x0d, 0x64, + 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x61, 0x69, + 0x6e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, + 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x28, 0x0a, + 0x0a, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x05, 0x0a, 0x01, 0x41, + 0x10, 0x00, 0x12, 0x05, 0x0a, 0x01, 0x42, 0x10, 0x01, 0x12, 0x05, 0x0a, 0x01, 0x43, 0x10, 0x02, + 0x12, 0x05, 0x0a, 0x01, 0x44, 0x10, 0x03, 0x22, 0x49, 0x0a, 0x09, 0x4f, 0x74, 0x68, 0x65, 0x72, + 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6c, 0x64, 0x69, + 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x6c, 0x64, 0x69, 0x64, 0x73, + 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x03, 0x69, + 0x64, 0x73, 0x2a, 0x1d, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x06, 0x0a, 0x02, 0x55, 0x50, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x10, + 0x01, 0x42, 0x69, 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, 0x13, 0x4c, 0x61, 0x79, 0x6f, + 0x75, 0x74, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x5a, + 0x2b, 0x6a, 0x6f, 0x79, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x63, 0x6c, 0x75, 0x62, 0x2f, 0x62, 0x6a, + 0x2d, 0x72, 0x74, 0x73, 0x74, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x64, 0x74, + 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/dto/request_proto/request.pb.go b/dto/request_proto/request.pb.go index d9c1acc..033dbc2 100644 --- a/dto/request_proto/request.pb.go +++ b/dto/request_proto/request.pb.go @@ -20,6 +20,104 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type BypassOperationReq_Operation int32 + +const ( + BypassOperationReq_bypass BypassOperationReq_Operation = 0 //旁路 + BypassOperationReq_bypass_reset BypassOperationReq_Operation = 1 // 旁路重置 +) + +// Enum value maps for BypassOperationReq_Operation. +var ( + BypassOperationReq_Operation_name = map[int32]string{ + 0: "bypass", + 1: "bypass_reset", + } + BypassOperationReq_Operation_value = map[string]int32{ + "bypass": 0, + "bypass_reset": 1, + } +) + +func (x BypassOperationReq_Operation) Enum() *BypassOperationReq_Operation { + p := new(BypassOperationReq_Operation) + *p = x + return p +} + +func (x BypassOperationReq_Operation) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BypassOperationReq_Operation) Descriptor() protoreflect.EnumDescriptor { + return file_request_proto_enumTypes[0].Descriptor() +} + +func (BypassOperationReq_Operation) Type() protoreflect.EnumType { + return &file_request_proto_enumTypes[0] +} + +func (x BypassOperationReq_Operation) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BypassOperationReq_Operation.Descriptor instead. +func (BypassOperationReq_Operation) EnumDescriptor() ([]byte, []int) { + return file_request_proto_rawDescGZIP(), []int{0, 0} +} + +type BypassOperationReq_BtnType int32 + +const ( + BypassOperationReq_esb_btn BypassOperationReq_BtnType = 0 + BypassOperationReq_ibp_btn BypassOperationReq_BtnType = 1 + BypassOperationReq_ibp_key BypassOperationReq_BtnType = 2 + BypassOperationReq_pls_btn BypassOperationReq_BtnType = 3 +) + +// Enum value maps for BypassOperationReq_BtnType. +var ( + BypassOperationReq_BtnType_name = map[int32]string{ + 0: "esb_btn", + 1: "ibp_btn", + 2: "ibp_key", + 3: "pls_btn", + } + BypassOperationReq_BtnType_value = map[string]int32{ + "esb_btn": 0, + "ibp_btn": 1, + "ibp_key": 2, + "pls_btn": 3, + } +) + +func (x BypassOperationReq_BtnType) Enum() *BypassOperationReq_BtnType { + p := new(BypassOperationReq_BtnType) + *p = x + return p +} + +func (x BypassOperationReq_BtnType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BypassOperationReq_BtnType) Descriptor() protoreflect.EnumDescriptor { + return file_request_proto_enumTypes[1].Descriptor() +} + +func (BypassOperationReq_BtnType) Type() protoreflect.EnumType { + return &file_request_proto_enumTypes[1] +} + +func (x BypassOperationReq_BtnType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BypassOperationReq_BtnType.Descriptor instead. +func (BypassOperationReq_BtnType) EnumDescriptor() ([]byte, []int) { + return file_request_proto_rawDescGZIP(), []int{0, 1} +} + // 继电器操作 type Relay_Operation int32 @@ -57,11 +155,11 @@ func (x Relay_Operation) String() string { } func (Relay_Operation) Descriptor() protoreflect.EnumDescriptor { - return file_request_proto_enumTypes[0].Descriptor() + return file_request_proto_enumTypes[2].Descriptor() } func (Relay_Operation) Type() protoreflect.EnumType { - return &file_request_proto_enumTypes[0] + return &file_request_proto_enumTypes[2] } func (x Relay_Operation) Number() protoreflect.EnumNumber { @@ -70,7 +168,7 @@ func (x Relay_Operation) Number() protoreflect.EnumNumber { // Deprecated: Use Relay_Operation.Descriptor instead. func (Relay_Operation) EnumDescriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{0, 0} + return file_request_proto_rawDescGZIP(), []int{1, 0} } // 道岔操作 @@ -104,11 +202,11 @@ func (x Points_Operation) String() string { } func (Points_Operation) Descriptor() protoreflect.EnumDescriptor { - return file_request_proto_enumTypes[1].Descriptor() + return file_request_proto_enumTypes[3].Descriptor() } func (Points_Operation) Type() protoreflect.EnumType { - return &file_request_proto_enumTypes[1] + return &file_request_proto_enumTypes[3] } func (x Points_Operation) Number() protoreflect.EnumNumber { @@ -117,7 +215,7 @@ func (x Points_Operation) Number() protoreflect.EnumNumber { // Deprecated: Use Points_Operation.Descriptor instead. func (Points_Operation) EnumDescriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{2, 0} + return file_request_proto_rawDescGZIP(), []int{3, 0} } // 道岔强制 @@ -157,11 +255,11 @@ func (x Points_Force) String() string { } func (Points_Force) Descriptor() protoreflect.EnumDescriptor { - return file_request_proto_enumTypes[2].Descriptor() + return file_request_proto_enumTypes[4].Descriptor() } func (Points_Force) Type() protoreflect.EnumType { - return &file_request_proto_enumTypes[2] + return &file_request_proto_enumTypes[4] } func (x Points_Force) Number() protoreflect.EnumNumber { @@ -170,7 +268,7 @@ func (x Points_Force) Number() protoreflect.EnumNumber { // Deprecated: Use Points_Force.Descriptor instead. func (Points_Force) EnumDescriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{2, 1} + return file_request_proto_rawDescGZIP(), []int{3, 1} } // 信号机操作 @@ -204,11 +302,11 @@ func (x Signal_Operation) String() string { } func (Signal_Operation) Descriptor() protoreflect.EnumDescriptor { - return file_request_proto_enumTypes[3].Descriptor() + return file_request_proto_enumTypes[5].Descriptor() } func (Signal_Operation) Type() protoreflect.EnumType { - return &file_request_proto_enumTypes[3] + return &file_request_proto_enumTypes[5] } func (x Signal_Operation) Number() protoreflect.EnumNumber { @@ -217,7 +315,7 @@ func (x Signal_Operation) Number() protoreflect.EnumNumber { // Deprecated: Use Signal_Operation.Descriptor instead. func (Signal_Operation) EnumDescriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{5, 0} + return file_request_proto_rawDescGZIP(), []int{6, 0} } type Signal_DS int32 @@ -259,11 +357,11 @@ func (x Signal_DS) String() string { } func (Signal_DS) Descriptor() protoreflect.EnumDescriptor { - return file_request_proto_enumTypes[4].Descriptor() + return file_request_proto_enumTypes[6].Descriptor() } func (Signal_DS) Type() protoreflect.EnumType { - return &file_request_proto_enumTypes[4] + return &file_request_proto_enumTypes[6] } func (x Signal_DS) Number() protoreflect.EnumNumber { @@ -272,7 +370,7 @@ func (x Signal_DS) Number() protoreflect.EnumNumber { // Deprecated: Use Signal_DS.Descriptor instead. func (Signal_DS) EnumDescriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{5, 1} + return file_request_proto_rawDescGZIP(), []int{6, 1} } // 信号机强制 @@ -324,11 +422,11 @@ func (x Signal_Force) String() string { } func (Signal_Force) Descriptor() protoreflect.EnumDescriptor { - return file_request_proto_enumTypes[5].Descriptor() + return file_request_proto_enumTypes[7].Descriptor() } func (Signal_Force) Type() protoreflect.EnumType { - return &file_request_proto_enumTypes[5] + return &file_request_proto_enumTypes[7] } func (x Signal_Force) Number() protoreflect.EnumNumber { @@ -337,7 +435,7 @@ func (x Signal_Force) Number() protoreflect.EnumNumber { // Deprecated: Use Signal_Force.Descriptor instead. func (Signal_Force) EnumDescriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{5, 2} + return file_request_proto_rawDescGZIP(), []int{6, 2} } // 区段操作 @@ -378,11 +476,11 @@ func (x Section_Operation) String() string { } func (Section_Operation) Descriptor() protoreflect.EnumDescriptor { - return file_request_proto_enumTypes[6].Descriptor() + return file_request_proto_enumTypes[8].Descriptor() } func (Section_Operation) Type() protoreflect.EnumType { - return &file_request_proto_enumTypes[6] + return &file_request_proto_enumTypes[8] } func (x Section_Operation) Number() protoreflect.EnumNumber { @@ -391,7 +489,7 @@ func (x Section_Operation) Number() protoreflect.EnumNumber { // Deprecated: Use Section_Operation.Descriptor instead. func (Section_Operation) EnumDescriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{8, 0} + return file_request_proto_rawDescGZIP(), []int{9, 0} } type Psd_Operation int32 @@ -424,11 +522,11 @@ func (x Psd_Operation) String() string { } func (Psd_Operation) Descriptor() protoreflect.EnumDescriptor { - return file_request_proto_enumTypes[7].Descriptor() + return file_request_proto_enumTypes[9].Descriptor() } func (Psd_Operation) Type() protoreflect.EnumType { - return &file_request_proto_enumTypes[7] + return &file_request_proto_enumTypes[9] } func (x Psd_Operation) Number() protoreflect.EnumNumber { @@ -437,7 +535,7 @@ func (x Psd_Operation) Number() protoreflect.EnumNumber { // Deprecated: Use Psd_Operation.Descriptor instead. func (Psd_Operation) EnumDescriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{11, 0} + return file_request_proto_rawDescGZIP(), []int{12, 0} } type Psd_Force int32 @@ -473,11 +571,11 @@ func (x Psd_Force) String() string { } func (Psd_Force) Descriptor() protoreflect.EnumDescriptor { - return file_request_proto_enumTypes[8].Descriptor() + return file_request_proto_enumTypes[10].Descriptor() } func (Psd_Force) Type() protoreflect.EnumType { - return &file_request_proto_enumTypes[8] + return &file_request_proto_enumTypes[10] } func (x Psd_Force) Number() protoreflect.EnumNumber { @@ -486,7 +584,7 @@ func (x Psd_Force) Number() protoreflect.EnumNumber { // Deprecated: Use Psd_Force.Descriptor instead. func (Psd_Force) EnumDescriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{11, 1} + return file_request_proto_rawDescGZIP(), []int{12, 1} } type Psd_Fault int32 @@ -519,11 +617,11 @@ func (x Psd_Fault) String() string { } func (Psd_Fault) Descriptor() protoreflect.EnumDescriptor { - return file_request_proto_enumTypes[9].Descriptor() + return file_request_proto_enumTypes[11].Descriptor() } func (Psd_Fault) Type() protoreflect.EnumType { - return &file_request_proto_enumTypes[9] + return &file_request_proto_enumTypes[11] } func (x Psd_Fault) Number() protoreflect.EnumNumber { @@ -532,7 +630,110 @@ func (x Psd_Fault) Number() protoreflect.EnumNumber { // Deprecated: Use Psd_Fault.Descriptor instead. func (Psd_Fault) EnumDescriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{11, 2} + return file_request_proto_rawDescGZIP(), []int{12, 2} +} + +type BypassOperationReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SimulationId string `protobuf:"bytes,1,opt,name=simulationId,proto3" json:"simulationId,omitempty"` // 仿真id + MapId int32 `protobuf:"varint,2,opt,name=mapId,proto3" json:"mapId,omitempty"` // 图id + DeviceId uint32 `protobuf:"varint,3,opt,name=deviceId,proto3" json:"deviceId,omitempty"` // 设备id + DeviceCode string `protobuf:"bytes,5,opt,name=deviceCode,proto3" json:"deviceCode,omitempty"` //设备code + StationId uint32 `protobuf:"varint,6,opt,name=stationId,proto3" json:"stationId,omitempty"` //车站id + GateBoxId uint32 `protobuf:"varint,7,opt,name=gateBoxId,proto3" json:"gateBoxId,omitempty"` + Operation BypassOperationReq_Operation `protobuf:"varint,8,opt,name=operation,proto3,enum=request.BypassOperationReq_Operation" json:"operation,omitempty"` + BtnType BypassOperationReq_BtnType `protobuf:"varint,9,opt,name=btnType,proto3,enum=request.BypassOperationReq_BtnType" json:"btnType,omitempty"` +} + +func (x *BypassOperationReq) Reset() { + *x = BypassOperationReq{} + if protoimpl.UnsafeEnabled { + mi := &file_request_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BypassOperationReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BypassOperationReq) ProtoMessage() {} + +func (x *BypassOperationReq) ProtoReflect() protoreflect.Message { + mi := &file_request_proto_msgTypes[0] + 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 BypassOperationReq.ProtoReflect.Descriptor instead. +func (*BypassOperationReq) Descriptor() ([]byte, []int) { + return file_request_proto_rawDescGZIP(), []int{0} +} + +func (x *BypassOperationReq) GetSimulationId() string { + if x != nil { + return x.SimulationId + } + return "" +} + +func (x *BypassOperationReq) GetMapId() int32 { + if x != nil { + return x.MapId + } + return 0 +} + +func (x *BypassOperationReq) GetDeviceId() uint32 { + if x != nil { + return x.DeviceId + } + return 0 +} + +func (x *BypassOperationReq) GetDeviceCode() string { + if x != nil { + return x.DeviceCode + } + return "" +} + +func (x *BypassOperationReq) GetStationId() uint32 { + if x != nil { + return x.StationId + } + return 0 +} + +func (x *BypassOperationReq) GetGateBoxId() uint32 { + if x != nil { + return x.GateBoxId + } + return 0 +} + +func (x *BypassOperationReq) GetOperation() BypassOperationReq_Operation { + if x != nil { + return x.Operation + } + return BypassOperationReq_bypass +} + +func (x *BypassOperationReq) GetBtnType() BypassOperationReq_BtnType { + if x != nil { + return x.BtnType + } + return BypassOperationReq_esb_btn } // 继电器 @@ -545,7 +746,7 @@ type Relay struct { func (x *Relay) Reset() { *x = Relay{} if protoimpl.UnsafeEnabled { - mi := &file_request_proto_msgTypes[0] + mi := &file_request_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -558,7 +759,7 @@ func (x *Relay) String() string { func (*Relay) ProtoMessage() {} func (x *Relay) ProtoReflect() protoreflect.Message { - mi := &file_request_proto_msgTypes[0] + mi := &file_request_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -571,7 +772,7 @@ func (x *Relay) ProtoReflect() protoreflect.Message { // Deprecated: Use Relay.ProtoReflect.Descriptor instead. func (*Relay) Descriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{0} + return file_request_proto_rawDescGZIP(), []int{1} } // 继电器操作请求 @@ -589,7 +790,7 @@ type RelayOperationReq struct { func (x *RelayOperationReq) Reset() { *x = RelayOperationReq{} if protoimpl.UnsafeEnabled { - mi := &file_request_proto_msgTypes[1] + mi := &file_request_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -602,7 +803,7 @@ func (x *RelayOperationReq) String() string { func (*RelayOperationReq) ProtoMessage() {} func (x *RelayOperationReq) ProtoReflect() protoreflect.Message { - mi := &file_request_proto_msgTypes[1] + mi := &file_request_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -615,7 +816,7 @@ func (x *RelayOperationReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RelayOperationReq.ProtoReflect.Descriptor instead. func (*RelayOperationReq) Descriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{1} + return file_request_proto_rawDescGZIP(), []int{2} } func (x *RelayOperationReq) GetSimulationId() string { @@ -656,7 +857,7 @@ type Points struct { func (x *Points) Reset() { *x = Points{} if protoimpl.UnsafeEnabled { - mi := &file_request_proto_msgTypes[2] + mi := &file_request_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -669,7 +870,7 @@ func (x *Points) String() string { func (*Points) ProtoMessage() {} func (x *Points) ProtoReflect() protoreflect.Message { - mi := &file_request_proto_msgTypes[2] + mi := &file_request_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -682,7 +883,7 @@ func (x *Points) ProtoReflect() protoreflect.Message { // Deprecated: Use Points.ProtoReflect.Descriptor instead. func (*Points) Descriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{2} + return file_request_proto_rawDescGZIP(), []int{3} } // 道岔操作请求 @@ -701,7 +902,7 @@ type PointsOperationReq struct { func (x *PointsOperationReq) Reset() { *x = PointsOperationReq{} if protoimpl.UnsafeEnabled { - mi := &file_request_proto_msgTypes[3] + mi := &file_request_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -714,7 +915,7 @@ func (x *PointsOperationReq) String() string { func (*PointsOperationReq) ProtoMessage() {} func (x *PointsOperationReq) ProtoReflect() protoreflect.Message { - mi := &file_request_proto_msgTypes[3] + mi := &file_request_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -727,7 +928,7 @@ func (x *PointsOperationReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PointsOperationReq.ProtoReflect.Descriptor instead. func (*PointsOperationReq) Descriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{3} + return file_request_proto_rawDescGZIP(), []int{4} } func (x *PointsOperationReq) GetSimulationId() string { @@ -777,7 +978,7 @@ type PointsParam struct { func (x *PointsParam) Reset() { *x = PointsParam{} if protoimpl.UnsafeEnabled { - mi := &file_request_proto_msgTypes[4] + mi := &file_request_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -790,7 +991,7 @@ func (x *PointsParam) String() string { func (*PointsParam) ProtoMessage() {} func (x *PointsParam) ProtoReflect() protoreflect.Message { - mi := &file_request_proto_msgTypes[4] + mi := &file_request_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -803,7 +1004,7 @@ func (x *PointsParam) ProtoReflect() protoreflect.Message { // Deprecated: Use PointsParam.ProtoReflect.Descriptor instead. func (*PointsParam) Descriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{4} + return file_request_proto_rawDescGZIP(), []int{5} } func (x *PointsParam) GetForcePosition() Points_Force { @@ -823,7 +1024,7 @@ type Signal struct { func (x *Signal) Reset() { *x = Signal{} if protoimpl.UnsafeEnabled { - mi := &file_request_proto_msgTypes[5] + mi := &file_request_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -836,7 +1037,7 @@ func (x *Signal) String() string { func (*Signal) ProtoMessage() {} func (x *Signal) ProtoReflect() protoreflect.Message { - mi := &file_request_proto_msgTypes[5] + mi := &file_request_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -849,7 +1050,7 @@ func (x *Signal) ProtoReflect() protoreflect.Message { // Deprecated: Use Signal.ProtoReflect.Descriptor instead. func (*Signal) Descriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{5} + return file_request_proto_rawDescGZIP(), []int{6} } type SignalOperationReq struct { @@ -867,7 +1068,7 @@ type SignalOperationReq struct { func (x *SignalOperationReq) Reset() { *x = SignalOperationReq{} if protoimpl.UnsafeEnabled { - mi := &file_request_proto_msgTypes[6] + mi := &file_request_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -880,7 +1081,7 @@ func (x *SignalOperationReq) String() string { func (*SignalOperationReq) ProtoMessage() {} func (x *SignalOperationReq) ProtoReflect() protoreflect.Message { - mi := &file_request_proto_msgTypes[6] + mi := &file_request_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -893,7 +1094,7 @@ func (x *SignalOperationReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SignalOperationReq.ProtoReflect.Descriptor instead. func (*SignalOperationReq) Descriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{6} + return file_request_proto_rawDescGZIP(), []int{7} } func (x *SignalOperationReq) GetSimulationId() string { @@ -943,7 +1144,7 @@ type SignalParam struct { func (x *SignalParam) Reset() { *x = SignalParam{} if protoimpl.UnsafeEnabled { - mi := &file_request_proto_msgTypes[7] + mi := &file_request_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -956,7 +1157,7 @@ func (x *SignalParam) String() string { func (*SignalParam) ProtoMessage() {} func (x *SignalParam) ProtoReflect() protoreflect.Message { - mi := &file_request_proto_msgTypes[7] + mi := &file_request_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -969,7 +1170,7 @@ func (x *SignalParam) ProtoReflect() protoreflect.Message { // Deprecated: Use SignalParam.ProtoReflect.Descriptor instead. func (*SignalParam) Descriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{7} + return file_request_proto_rawDescGZIP(), []int{8} } func (x *SignalParam) GetForce() Signal_Force { @@ -996,7 +1197,7 @@ type Section struct { func (x *Section) Reset() { *x = Section{} if protoimpl.UnsafeEnabled { - mi := &file_request_proto_msgTypes[8] + mi := &file_request_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1009,7 +1210,7 @@ func (x *Section) String() string { func (*Section) ProtoMessage() {} func (x *Section) ProtoReflect() protoreflect.Message { - mi := &file_request_proto_msgTypes[8] + mi := &file_request_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1022,7 +1223,7 @@ func (x *Section) ProtoReflect() protoreflect.Message { // Deprecated: Use Section.ProtoReflect.Descriptor instead. func (*Section) Descriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{8} + return file_request_proto_rawDescGZIP(), []int{9} } type SectionOperationReq struct { @@ -1040,7 +1241,7 @@ type SectionOperationReq struct { func (x *SectionOperationReq) Reset() { *x = SectionOperationReq{} if protoimpl.UnsafeEnabled { - mi := &file_request_proto_msgTypes[9] + mi := &file_request_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1053,7 +1254,7 @@ func (x *SectionOperationReq) String() string { func (*SectionOperationReq) ProtoMessage() {} func (x *SectionOperationReq) ProtoReflect() protoreflect.Message { - mi := &file_request_proto_msgTypes[9] + mi := &file_request_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1066,7 +1267,7 @@ func (x *SectionOperationReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SectionOperationReq.ProtoReflect.Descriptor instead. func (*SectionOperationReq) Descriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{9} + return file_request_proto_rawDescGZIP(), []int{10} } func (x *SectionOperationReq) GetSimulationId() string { @@ -1117,7 +1318,7 @@ type SectionParam struct { func (x *SectionParam) Reset() { *x = SectionParam{} if protoimpl.UnsafeEnabled { - mi := &file_request_proto_msgTypes[10] + mi := &file_request_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1130,7 +1331,7 @@ func (x *SectionParam) String() string { func (*SectionParam) ProtoMessage() {} func (x *SectionParam) ProtoReflect() protoreflect.Message { - mi := &file_request_proto_msgTypes[10] + mi := &file_request_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1143,7 +1344,7 @@ func (x *SectionParam) ProtoReflect() protoreflect.Message { // Deprecated: Use SectionParam.ProtoReflect.Descriptor instead. func (*SectionParam) Descriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{10} + return file_request_proto_rawDescGZIP(), []int{11} } func (x *SectionParam) GetMockDrst() bool { @@ -1170,7 +1371,7 @@ type Psd struct { func (x *Psd) Reset() { *x = Psd{} if protoimpl.UnsafeEnabled { - mi := &file_request_proto_msgTypes[11] + mi := &file_request_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1183,7 +1384,7 @@ func (x *Psd) String() string { func (*Psd) ProtoMessage() {} func (x *Psd) ProtoReflect() protoreflect.Message { - mi := &file_request_proto_msgTypes[11] + mi := &file_request_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1196,7 +1397,7 @@ func (x *Psd) ProtoReflect() protoreflect.Message { // Deprecated: Use Psd.ProtoReflect.Descriptor instead. func (*Psd) Descriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{11} + return file_request_proto_rawDescGZIP(), []int{12} } // 屏蔽门操作请求 @@ -1215,7 +1416,7 @@ type PsdOperationReq struct { func (x *PsdOperationReq) Reset() { *x = PsdOperationReq{} if protoimpl.UnsafeEnabled { - mi := &file_request_proto_msgTypes[12] + mi := &file_request_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1228,7 +1429,7 @@ func (x *PsdOperationReq) String() string { func (*PsdOperationReq) ProtoMessage() {} func (x *PsdOperationReq) ProtoReflect() protoreflect.Message { - mi := &file_request_proto_msgTypes[12] + mi := &file_request_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1241,7 +1442,7 @@ func (x *PsdOperationReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PsdOperationReq.ProtoReflect.Descriptor instead. func (*PsdOperationReq) Descriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{12} + return file_request_proto_rawDescGZIP(), []int{13} } func (x *PsdOperationReq) GetSimulationId() string { @@ -1292,7 +1493,7 @@ type PsdParam struct { func (x *PsdParam) Reset() { *x = PsdParam{} if protoimpl.UnsafeEnabled { - mi := &file_request_proto_msgTypes[13] + mi := &file_request_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1305,7 +1506,7 @@ func (x *PsdParam) String() string { func (*PsdParam) ProtoMessage() {} func (x *PsdParam) ProtoReflect() protoreflect.Message { - mi := &file_request_proto_msgTypes[13] + mi := &file_request_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1318,7 +1519,7 @@ func (x *PsdParam) ProtoReflect() protoreflect.Message { // Deprecated: Use PsdParam.ProtoReflect.Descriptor instead. func (*PsdParam) Descriptor() ([]byte, []int) { - return file_request_proto_rawDescGZIP(), []int{13} + return file_request_proto_rawDescGZIP(), []int{14} } func (x *PsdParam) GetAsdCodes() []int32 { @@ -1346,30 +1547,88 @@ var File_request_proto protoreflect.FileDescriptor var file_request_proto_rawDesc = []byte{ 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, - 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x05, 0x52, 0x65, 0x6c, 0x61, - 0x79, 0x22, 0x45, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0d, - 0x0a, 0x09, 0x55, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, - 0x07, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x51, 0x77, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x6f, - 0x72, 0x63, 0x65, 0x48, 0x77, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x10, 0x03, 0x22, 0xa1, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x6c, - 0x61, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 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, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6a, 0x0a, 0x06, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x29, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x10, - 0x01, 0x22, 0x35, 0x0a, 0x05, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x50, - 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x50, 0x5f, 0x44, 0x57, - 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x50, 0x5f, 0x46, 0x57, 0x10, 0x02, 0x12, 0x09, 0x0a, - 0x05, 0x46, 0x50, 0x5f, 0x53, 0x42, 0x10, 0x03, 0x22, 0xcf, 0x01, 0x0a, 0x12, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, + 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb4, 0x03, 0x0a, 0x12, 0x42, 0x79, 0x70, + 0x61, 0x73, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 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, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x78, 0x49, 0x64, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x78, 0x49, + 0x64, 0x12, 0x43, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, + 0x79, 0x70, 0x61, 0x73, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x07, 0x62, 0x74, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x42, 0x79, 0x70, 0x61, 0x73, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x2e, 0x42, 0x74, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x62, 0x74, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x0a, 0x0a, 0x06, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 0x10, 0x00, 0x12, 0x10, + 0x0a, 0x0c, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x10, 0x01, + 0x22, 0x3d, 0x0a, 0x07, 0x42, 0x74, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x65, + 0x73, 0x62, 0x5f, 0x62, 0x74, 0x6e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x69, 0x62, 0x70, 0x5f, + 0x62, 0x74, 0x6e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x69, 0x62, 0x70, 0x5f, 0x6b, 0x65, 0x79, + 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x70, 0x6c, 0x73, 0x5f, 0x62, 0x74, 0x6e, 0x10, 0x03, 0x22, + 0x4e, 0x0a, 0x05, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x22, 0x45, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x51, 0x77, 0x10, + 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x48, 0x77, 0x10, 0x02, 0x12, 0x0f, + 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x10, 0x03, 0x22, + 0xa1, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 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, + 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, + 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x6a, 0x0a, 0x06, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x29, 0x0a, + 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x6e, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x65, 0x74, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x10, 0x01, 0x22, 0x35, 0x0a, 0x05, 0x46, 0x6f, 0x72, 0x63, + 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x50, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x46, 0x50, 0x5f, 0x44, 0x57, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x50, 0x5f, + 0x46, 0x57, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x50, 0x5f, 0x53, 0x42, 0x10, 0x03, 0x22, + 0xcf, 0x01, 0x0a, 0x12, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 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, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x09, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x19, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x22, 0x4a, 0x0a, 0x0b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x12, 0x3b, 0x0a, 0x0d, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x52, 0x0d, + 0x66, 0x6f, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc8, 0x01, + 0x0a, 0x06, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x22, 0x29, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x10, 0x01, 0x22, 0x36, 0x0a, 0x02, 0x44, 0x53, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x53, 0x5f, + 0x48, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x53, 0x5f, 0x55, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x44, 0x53, 0x5f, 0x4c, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x53, 0x5f, 0x41, 0x10, + 0x03, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x53, 0x5f, 0x42, 0x10, 0x04, 0x22, 0x5b, 0x0a, 0x05, 0x46, + 0x6f, 0x72, 0x63, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x46, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x46, 0x5f, 0x4d, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, + 0x46, 0x5f, 0x48, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x46, 0x5f, 0x55, 0x10, 0x03, 0x12, + 0x08, 0x0a, 0x04, 0x53, 0x46, 0x5f, 0x4c, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x46, 0x5f, + 0x48, 0x55, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x46, 0x5f, 0x41, 0x10, 0x06, 0x12, 0x08, + 0x0a, 0x04, 0x53, 0x46, 0x5f, 0x42, 0x10, 0x07, 0x22, 0xcf, 0x01, 0x0a, 0x12, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 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, @@ -1377,103 +1636,73 @@ var file_request_proto_rawDesc = []byte{ 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x73, 0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x4a, 0x0a, 0x0b, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x3b, 0x0a, 0x0d, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x15, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, - 0x73, 0x2e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x52, 0x0d, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x50, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc8, 0x01, 0x0a, 0x06, 0x53, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x22, 0x29, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0d, - 0x0a, 0x09, 0x55, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, - 0x09, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x10, 0x01, 0x22, 0x36, 0x0a, 0x02, - 0x44, 0x53, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x53, 0x5f, 0x48, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, - 0x44, 0x53, 0x5f, 0x55, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x53, 0x5f, 0x4c, 0x10, 0x02, - 0x12, 0x08, 0x0a, 0x04, 0x44, 0x53, 0x5f, 0x41, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x53, - 0x5f, 0x42, 0x10, 0x04, 0x22, 0x5b, 0x0a, 0x05, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x0b, 0x0a, - 0x07, 0x53, 0x46, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x46, - 0x5f, 0x4d, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x46, 0x5f, 0x48, 0x10, 0x02, 0x12, 0x08, - 0x0a, 0x04, 0x53, 0x46, 0x5f, 0x55, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x46, 0x5f, 0x4c, - 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x46, 0x5f, 0x48, 0x55, 0x10, 0x05, 0x12, 0x08, 0x0a, - 0x04, 0x53, 0x46, 0x5f, 0x41, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x46, 0x5f, 0x42, 0x10, - 0x07, 0x22, 0xcf, 0x01, 0x0a, 0x12, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 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, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x37, - 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x19, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x05, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x22, 0x66, 0x0a, 0x0b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x12, 0x2b, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x15, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x2e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, - 0x2a, 0x0a, 0x06, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, - 0x12, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, - 0x2e, 0x44, 0x53, 0x52, 0x06, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x07, 0x53, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x10, - 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x4f, 0x63, 0x63, - 0x10, 0x04, 0x22, 0xd2, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 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, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, - 0x12, 0x38, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x05, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x48, 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x63, 0x6b, 0x44, - 0x72, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x6f, 0x63, 0x6b, 0x44, - 0x72, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x6f, 0x63, 0x6b, 0x50, 0x64, 0x72, 0x73, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6d, 0x6f, 0x63, 0x6b, 0x50, 0x64, 0x72, 0x73, - 0x74, 0x22, 0x88, 0x01, 0x0a, 0x03, 0x50, 0x73, 0x64, 0x22, 0x29, 0x0a, 0x09, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x6e, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x10, 0x01, 0x22, 0x2f, 0x0a, 0x05, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x0a, 0x0a, - 0x06, 0x46, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x5f, 0x41, - 0x53, 0x44, 0x5f, 0x4b, 0x4d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x5f, 0x41, 0x53, 0x44, - 0x5f, 0x47, 0x4d, 0x10, 0x02, 0x22, 0x25, 0x0a, 0x05, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x0b, - 0x0a, 0x07, 0x46, 0x41, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x46, - 0x41, 0x5f, 0x4f, 0x62, 0x73, 0x74, 0x61, 0x63, 0x6c, 0x65, 0x10, 0x01, 0x22, 0xc6, 0x01, 0x0a, - 0x0f, 0x50, 0x73, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 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, 0x1a, 0x0a, 0x08, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x50, 0x73, 0x64, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x05, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x73, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x05, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x7a, 0x0a, 0x08, 0x50, 0x73, 0x64, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x73, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x08, 0x61, 0x73, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x28, 0x0a, - 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x73, 0x64, 0x2e, 0x46, 0x6f, 0x72, 0x63, 0x65, - 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x50, 0x73, 0x64, 0x2e, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x42, 0x30, 0x5a, 0x2e, 0x6a, 0x6f, 0x79, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x63, 0x6c, 0x75, - 0x62, 0x2f, 0x62, 0x6a, 0x2d, 0x72, 0x74, 0x73, 0x74, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2f, 0x64, 0x74, 0x6f, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x66, 0x0a, 0x0b, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x2b, 0x0a, 0x05, 0x66, 0x6f, 0x72, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x52, + 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x44, 0x53, 0x52, 0x06, 0x64, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x45, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x0a, + 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x6e, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x65, 0x74, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x46, + 0x61, 0x75, 0x6c, 0x74, 0x4f, 0x63, 0x63, 0x10, 0x04, 0x22, 0xd2, 0x01, 0x0a, 0x13, 0x53, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 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, 0x1a, 0x0a, 0x08, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2b, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x48, + 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1a, + 0x0a, 0x08, 0x6d, 0x6f, 0x63, 0x6b, 0x44, 0x72, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x6d, 0x6f, 0x63, 0x6b, 0x44, 0x72, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x6f, + 0x63, 0x6b, 0x50, 0x64, 0x72, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6d, + 0x6f, 0x63, 0x6b, 0x50, 0x64, 0x72, 0x73, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x03, 0x50, 0x73, 0x64, + 0x22, 0x29, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x0a, + 0x09, 0x55, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, + 0x53, 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x10, 0x01, 0x22, 0x2f, 0x0a, 0x05, 0x46, + 0x6f, 0x72, 0x63, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, + 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x5f, 0x41, 0x53, 0x44, 0x5f, 0x4b, 0x4d, 0x10, 0x01, 0x12, 0x0c, + 0x0a, 0x08, 0x46, 0x5f, 0x41, 0x53, 0x44, 0x5f, 0x47, 0x4d, 0x10, 0x02, 0x22, 0x25, 0x0a, 0x05, + 0x46, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, + 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x41, 0x5f, 0x4f, 0x62, 0x73, 0x74, 0x61, 0x63, 0x6c, + 0x65, 0x10, 0x01, 0x22, 0xc6, 0x01, 0x0a, 0x0f, 0x50, 0x73, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 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, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x34, 0x0a, + 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x16, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x73, 0x64, 0x2e, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x73, 0x64, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x7a, 0x0a, 0x08, + 0x50, 0x73, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x73, 0x64, 0x43, + 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x61, 0x73, 0x64, 0x43, + 0x6f, 0x64, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x73, + 0x64, 0x2e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x28, + 0x0a, 0x05, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x73, 0x64, 0x2e, 0x46, 0x61, 0x75, 0x6c, + 0x74, 0x52, 0x05, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x30, 0x5a, 0x2e, 0x6a, 0x6f, 0x79, 0x6c, + 0x69, 0x6e, 0x6b, 0x2e, 0x63, 0x6c, 0x75, 0x62, 0x2f, 0x62, 0x6a, 0x2d, 0x72, 0x74, 0x73, 0x74, + 0x73, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x64, 0x74, 0x6f, 0x2f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -1488,54 +1717,59 @@ func file_request_proto_rawDescGZIP() []byte { return file_request_proto_rawDescData } -var file_request_proto_enumTypes = make([]protoimpl.EnumInfo, 10) -var file_request_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_request_proto_enumTypes = make([]protoimpl.EnumInfo, 12) +var file_request_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_request_proto_goTypes = []interface{}{ - (Relay_Operation)(0), // 0: request.Relay.Operation - (Points_Operation)(0), // 1: request.Points.Operation - (Points_Force)(0), // 2: request.Points.Force - (Signal_Operation)(0), // 3: request.Signal.Operation - (Signal_DS)(0), // 4: request.Signal.DS - (Signal_Force)(0), // 5: request.Signal.Force - (Section_Operation)(0), // 6: request.Section.Operation - (Psd_Operation)(0), // 7: request.Psd.Operation - (Psd_Force)(0), // 8: request.Psd.Force - (Psd_Fault)(0), // 9: request.Psd.Fault - (*Relay)(nil), // 10: request.Relay - (*RelayOperationReq)(nil), // 11: request.RelayOperationReq - (*Points)(nil), // 12: request.Points - (*PointsOperationReq)(nil), // 13: request.PointsOperationReq - (*PointsParam)(nil), // 14: request.PointsParam - (*Signal)(nil), // 15: request.Signal - (*SignalOperationReq)(nil), // 16: request.SignalOperationReq - (*SignalParam)(nil), // 17: request.SignalParam - (*Section)(nil), // 18: request.Section - (*SectionOperationReq)(nil), // 19: request.SectionOperationReq - (*SectionParam)(nil), // 20: request.SectionParam - (*Psd)(nil), // 21: request.Psd - (*PsdOperationReq)(nil), // 22: request.PsdOperationReq - (*PsdParam)(nil), // 23: request.PsdParam + (BypassOperationReq_Operation)(0), // 0: request.BypassOperationReq.Operation + (BypassOperationReq_BtnType)(0), // 1: request.BypassOperationReq.BtnType + (Relay_Operation)(0), // 2: request.Relay.Operation + (Points_Operation)(0), // 3: request.Points.Operation + (Points_Force)(0), // 4: request.Points.Force + (Signal_Operation)(0), // 5: request.Signal.Operation + (Signal_DS)(0), // 6: request.Signal.DS + (Signal_Force)(0), // 7: request.Signal.Force + (Section_Operation)(0), // 8: request.Section.Operation + (Psd_Operation)(0), // 9: request.Psd.Operation + (Psd_Force)(0), // 10: request.Psd.Force + (Psd_Fault)(0), // 11: request.Psd.Fault + (*BypassOperationReq)(nil), // 12: request.BypassOperationReq + (*Relay)(nil), // 13: request.Relay + (*RelayOperationReq)(nil), // 14: request.RelayOperationReq + (*Points)(nil), // 15: request.Points + (*PointsOperationReq)(nil), // 16: request.PointsOperationReq + (*PointsParam)(nil), // 17: request.PointsParam + (*Signal)(nil), // 18: request.Signal + (*SignalOperationReq)(nil), // 19: request.SignalOperationReq + (*SignalParam)(nil), // 20: request.SignalParam + (*Section)(nil), // 21: request.Section + (*SectionOperationReq)(nil), // 22: request.SectionOperationReq + (*SectionParam)(nil), // 23: request.SectionParam + (*Psd)(nil), // 24: request.Psd + (*PsdOperationReq)(nil), // 25: request.PsdOperationReq + (*PsdParam)(nil), // 26: request.PsdParam } var file_request_proto_depIdxs = []int32{ - 0, // 0: request.RelayOperationReq.operation:type_name -> request.Relay.Operation - 1, // 1: request.PointsOperationReq.operation:type_name -> request.Points.Operation - 14, // 2: request.PointsOperationReq.param:type_name -> request.PointsParam - 2, // 3: request.PointsParam.forcePosition:type_name -> request.Points.Force - 3, // 4: request.SignalOperationReq.operation:type_name -> request.Signal.Operation - 17, // 5: request.SignalOperationReq.param:type_name -> request.SignalParam - 5, // 6: request.SignalParam.force:type_name -> request.Signal.Force - 4, // 7: request.SignalParam.dsList:type_name -> request.Signal.DS - 6, // 8: request.SectionOperationReq.operation:type_name -> request.Section.Operation - 20, // 9: request.SectionOperationReq.param:type_name -> request.SectionParam - 7, // 10: request.PsdOperationReq.operation:type_name -> request.Psd.Operation - 23, // 11: request.PsdOperationReq.param:type_name -> request.PsdParam - 8, // 12: request.PsdParam.force:type_name -> request.Psd.Force - 9, // 13: request.PsdParam.fault:type_name -> request.Psd.Fault - 14, // [14:14] is the sub-list for method output_type - 14, // [14:14] is the sub-list for method input_type - 14, // [14:14] is the sub-list for extension type_name - 14, // [14:14] is the sub-list for extension extendee - 0, // [0:14] is the sub-list for field type_name + 0, // 0: request.BypassOperationReq.operation:type_name -> request.BypassOperationReq.Operation + 1, // 1: request.BypassOperationReq.btnType:type_name -> request.BypassOperationReq.BtnType + 2, // 2: request.RelayOperationReq.operation:type_name -> request.Relay.Operation + 3, // 3: request.PointsOperationReq.operation:type_name -> request.Points.Operation + 17, // 4: request.PointsOperationReq.param:type_name -> request.PointsParam + 4, // 5: request.PointsParam.forcePosition:type_name -> request.Points.Force + 5, // 6: request.SignalOperationReq.operation:type_name -> request.Signal.Operation + 20, // 7: request.SignalOperationReq.param:type_name -> request.SignalParam + 7, // 8: request.SignalParam.force:type_name -> request.Signal.Force + 6, // 9: request.SignalParam.dsList:type_name -> request.Signal.DS + 8, // 10: request.SectionOperationReq.operation:type_name -> request.Section.Operation + 23, // 11: request.SectionOperationReq.param:type_name -> request.SectionParam + 9, // 12: request.PsdOperationReq.operation:type_name -> request.Psd.Operation + 26, // 13: request.PsdOperationReq.param:type_name -> request.PsdParam + 10, // 14: request.PsdParam.force:type_name -> request.Psd.Force + 11, // 15: request.PsdParam.fault:type_name -> request.Psd.Fault + 16, // [16:16] is the sub-list for method output_type + 16, // [16:16] is the sub-list for method input_type + 16, // [16:16] is the sub-list for extension type_name + 16, // [16:16] is the sub-list for extension extendee + 0, // [0:16] is the sub-list for field type_name } func init() { file_request_proto_init() } @@ -1545,7 +1779,7 @@ func file_request_proto_init() { } if !protoimpl.UnsafeEnabled { file_request_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Relay); i { + switch v := v.(*BypassOperationReq); i { case 0: return &v.state case 1: @@ -1557,7 +1791,7 @@ func file_request_proto_init() { } } file_request_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RelayOperationReq); i { + switch v := v.(*Relay); i { case 0: return &v.state case 1: @@ -1569,7 +1803,7 @@ func file_request_proto_init() { } } file_request_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Points); i { + switch v := v.(*RelayOperationReq); i { case 0: return &v.state case 1: @@ -1581,7 +1815,7 @@ func file_request_proto_init() { } } file_request_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PointsOperationReq); i { + switch v := v.(*Points); i { case 0: return &v.state case 1: @@ -1593,7 +1827,7 @@ func file_request_proto_init() { } } file_request_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PointsParam); i { + switch v := v.(*PointsOperationReq); i { case 0: return &v.state case 1: @@ -1605,7 +1839,7 @@ func file_request_proto_init() { } } file_request_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Signal); i { + switch v := v.(*PointsParam); i { case 0: return &v.state case 1: @@ -1617,7 +1851,7 @@ func file_request_proto_init() { } } file_request_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignalOperationReq); i { + switch v := v.(*Signal); i { case 0: return &v.state case 1: @@ -1629,7 +1863,7 @@ func file_request_proto_init() { } } file_request_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignalParam); i { + switch v := v.(*SignalOperationReq); i { case 0: return &v.state case 1: @@ -1641,7 +1875,7 @@ func file_request_proto_init() { } } file_request_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Section); i { + switch v := v.(*SignalParam); i { case 0: return &v.state case 1: @@ -1653,7 +1887,7 @@ func file_request_proto_init() { } } file_request_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SectionOperationReq); i { + switch v := v.(*Section); i { case 0: return &v.state case 1: @@ -1665,7 +1899,7 @@ func file_request_proto_init() { } } file_request_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SectionParam); i { + switch v := v.(*SectionOperationReq); i { case 0: return &v.state case 1: @@ -1677,7 +1911,7 @@ func file_request_proto_init() { } } file_request_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Psd); i { + switch v := v.(*SectionParam); i { case 0: return &v.state case 1: @@ -1689,7 +1923,7 @@ func file_request_proto_init() { } } file_request_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PsdOperationReq); i { + switch v := v.(*Psd); i { case 0: return &v.state case 1: @@ -1701,6 +1935,18 @@ func file_request_proto_init() { } } file_request_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PsdOperationReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_request_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PsdParam); i { case 0: return &v.state @@ -1718,8 +1964,8 @@ func file_request_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_request_proto_rawDesc, - NumEnums: 10, - NumMessages: 14, + NumEnums: 12, + NumMessages: 15, NumExtensions: 0, NumServices: 0, }, diff --git a/dto/simulation.go b/dto/simulation.go index 782c218..aeb4aa9 100644 --- a/dto/simulation.go +++ b/dto/simulation.go @@ -76,8 +76,10 @@ type AddTrainReqDtoNew struct { WheelDiameter int32 `json:"wheelDiameter" from:"wheelDiameter"` // 列车数据配置 ConfigTrain ConfigTrainData `json:"configTrain" from:"mapId"` - TrainEndsA ConfigTrainEnds `json:"trainEndsA"` // 车辆A端 - TrainEndsB ConfigTrainEnds `json:"trainEndsB"` // 车辆B端 + TrainEndsA ConfigTrainEnds `json:"trainEndsA"` // 车辆A端 + TrainEndsB ConfigTrainEnds `json:"trainEndsB"` // 车辆B端 + TrainId int `json:"trainId" from:"trainId"` // 列车id + TrainSpeed float32 `json:"TrainSpeed" from:"TrainSpeed"` // 列车时速 } // 为反正列车修改对应的测试配置 @@ -148,6 +150,14 @@ type AddTrainRspDto struct { MapId int32 `json:"mapId" from:"mapId"` } +// 为仿真添加测试车请求 +type RemoveAllTrainRspDto struct { + //仿真id + SimulationId string `json:"simulationId" form:"simulationId"` + // 场景ID + MapId int32 `json:"mapId" from:"mapId"` +} + ///////////////////////////////////////////////////////////////////////////////// // 仿真移除列车请求 diff --git a/dto/state_proto/device_state.pb.go b/dto/state_proto/device_state.pb.go index ddb7ff6..3249154 100644 --- a/dto/state_proto/device_state.pb.go +++ b/dto/state_proto/device_state.pb.go @@ -2595,6 +2595,7 @@ type ButtonState struct { Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Down bool `protobuf:"varint,2,opt,name=down,proto3" json:"down,omitempty"` Active bool `protobuf:"varint,3,opt,name=active,proto3" json:"active,omitempty"` // 带灯的按钮 + Bypass bool `protobuf:"varint,4,opt,name=bypass,proto3" json:"bypass,omitempty"` //摁钮,钥匙 是否旁路 } func (x *ButtonState) Reset() { @@ -2650,6 +2651,13 @@ func (x *ButtonState) GetActive() bool { return false } +func (x *ButtonState) GetBypass() bool { + if x != nil { + return x.Bypass + } + return false +} + // 警铃状态 type AlarmState struct { state protoimpl.MessageState @@ -2920,8 +2928,9 @@ type KeyState struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - Gear int32 `protobuf:"varint,2,opt,name=gear,proto3" json:"gear,omitempty"` + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Gear int32 `protobuf:"varint,2,opt,name=gear,proto3" json:"gear,omitempty"` + Bypass bool `protobuf:"varint,3,opt,name=bypass,proto3" json:"bypass,omitempty"` //摁钮,钥匙 是否旁路 } func (x *KeyState) Reset() { @@ -2970,6 +2979,13 @@ func (x *KeyState) GetGear() int32 { return 0 } +func (x *KeyState) GetBypass() bool { + if x != nil { + return x.Bypass + } + return false +} + // 战场图门控箱继电器状态 type MkxJState struct { state protoimpl.MessageState @@ -4168,37 +4184,40 @@ var file_device_state_proto_rawDesc = []byte{ 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x78, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x78, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x49, 0x0a, 0x0b, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x61, 0x0a, 0x0b, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 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, - 0x0d, 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, 0x34, 0x0a, - 0x0a, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 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, 0xa0, 0x01, 0x0a, 0x08, 0x50, 0x73, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x2d, 0x0a, 0x09, 0x61, 0x73, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x73, 0x64, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x61, 0x73, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x67, 0x6a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6d, 0x67, - 0x6a, 0x12, 0x27, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x73, 0x64, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x62, - 0x73, 0x74, 0x61, 0x63, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x62, - 0x73, 0x74, 0x61, 0x63, 0x6c, 0x65, 0x22, 0x58, 0x0a, 0x08, 0x41, 0x73, 0x64, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x6d, 0x64, 0x77, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6b, 0x6d, 0x64, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6d, - 0x64, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x67, 0x6d, 0x64, 0x77, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x67, 0x6a, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6d, 0x67, 0x6a, - 0x22, 0x2e, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x67, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x67, 0x65, 0x61, 0x72, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x79, 0x70, 0x61, 0x73, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 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, 0x0d, 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, 0x34, 0x0a, 0x0a, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 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, 0xa0, 0x01, 0x0a, 0x08, + 0x50, 0x73, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x09, 0x61, 0x73, 0x64, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x2e, 0x41, 0x73, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x61, 0x73, + 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x67, 0x6a, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6d, 0x67, 0x6a, 0x12, 0x27, 0x0a, 0x05, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x50, 0x73, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x05, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x62, 0x73, 0x74, 0x61, 0x63, 0x6c, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x62, 0x73, 0x74, 0x61, 0x63, 0x6c, 0x65, 0x22, 0x58, + 0x0a, 0x08, 0x41, 0x73, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x6b, 0x6d, 0x64, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6b, 0x6d, + 0x64, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6d, 0x64, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x04, 0x67, 0x6d, 0x64, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x67, 0x6a, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x03, 0x6d, 0x67, 0x6a, 0x22, 0x46, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x67, 0x65, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x79, 0x70, 0x61, + 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 0x22, 0x52, 0x0a, 0x09, 0x4d, 0x6b, 0x78, 0x4a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x31, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, diff --git a/message_server/ibp_ms.go b/message_server/ibp_ms.go index 0575fbf..234f19c 100644 --- a/message_server/ibp_ms.go +++ b/message_server/ibp_ms.go @@ -87,6 +87,7 @@ func getIBPButtonState(id uint32, entry *ecs.Entry) *state_proto.ButtonState { status := &state_proto.ButtonState{Id: id} bit := component.BitStateType.Get(entry) status.Down = bit.Val + status.Bypass = bit.BypassEnable // 如果按钮包含灯 if entry.HasComponent(component.SingleLightType) { lightComponent := component.SingleLightType.Get(entry) @@ -140,7 +141,8 @@ func collectIBPKeyState(world ecs.World, stationUid string, uidsMap *memory.IBPU continue } if entry.HasComponent(component.KeyTag) { - states = append(states, &state_proto.KeyState{Id: did, Gear: component.GearStateType.Get(entry).Val}) + gearState := component.GearStateType.Get(entry) + states = append(states, &state_proto.KeyState{Bypass: gearState.BypassEnable, Id: did, Gear: gearState.Val}) } } return states, nil diff --git a/message_server/psl_ms.go b/message_server/psl_ms.go index 17eec0a..c0b89f8 100644 --- a/message_server/psl_ms.go +++ b/message_server/psl_ms.go @@ -50,10 +50,12 @@ func collectGateBoxPSLState(world ecs.World, mapId int32, box *data_proto.GatedB if btn == nil { continue } + btnState := component.BitStateType.Get(btn) buttonStateArr = append(buttonStateArr, &state_proto.ButtonState{ Id: btnUidMap[component.UidType.Get(btn).Id], - Down: component.BitStateType.Get(btn).Val, - Active: component.BitStateType.Get(btn).Val, + Down: btnState.Val, + Active: btnState.Val, + Bypass: btnState.BypassEnable, }) } } diff --git a/message_server/sfp_ms.go b/message_server/sfp_ms.go index 111cd71..5b51ed0 100644 --- a/message_server/sfp_ms.go +++ b/message_server/sfp_ms.go @@ -204,7 +204,7 @@ func collectStationButtonStates(world ecs.World, mapId int32) ([]*state_proto.Bu } if entry.HasComponent(component.ButtonTag) { // 按钮 bit := component.BitStateType.Get(entry) - btnStateArr = append(btnStateArr, &state_proto.ButtonState{Id: u.CommonId, Down: bit.Val}) + btnStateArr = append(btnStateArr, &state_proto.ButtonState{Bypass: bit.BypassEnable, Id: u.CommonId, Down: bit.Val}) } } return btnStateArr, nil diff --git a/rtss_simulation b/rtss_simulation index b542243..4adeaed 160000 --- a/rtss_simulation +++ b/rtss_simulation @@ -1 +1 @@ -Subproject commit b54224351f17c7a7a7c328b8750e810c05252054 +Subproject commit 4adeaedd5a24e7e9267a050f30e804df3e791161 diff --git a/third_party/acc/acc_vobc.go b/third_party/acc/acc_vobc.go index 266cdef..0bf3bb3 100644 --- a/third_party/acc/acc_vobc.go +++ b/third_party/acc/acc_vobc.go @@ -34,8 +34,8 @@ const ( func Default() AccVobc { defer initLock.Unlock() + initLock.Lock() if singleObj == nil { - initLock.Lock() singleObj = &accVobcService{} } return singleObj diff --git a/ts/simulation/wayside/memory/wayside_memory_btnandkey_bypass.go b/ts/simulation/wayside/memory/wayside_memory_btnandkey_bypass.go new file mode 100644 index 0000000..41fe05e --- /dev/null +++ b/ts/simulation/wayside/memory/wayside_memory_btnandkey_bypass.go @@ -0,0 +1,51 @@ +package memory + +import ( + "fmt" + "joylink.club/bj-rtsts-server/dto/data_proto" + "joylink.club/bj-rtsts-server/dto/request_proto" + "joylink.club/rtsssimulation/fi" +) + +func ChangeBtnAndkeyBypass(sim *VerifySimulation, req *request_proto.BypassOperationReq) error { + + switch req.BtnType { + case request_proto.BypassOperationReq_esb_btn: + uid := QueryUidByMidAndComId(req.MapId, req.DeviceId, &data_proto.EsbButton{}) + fi.SetBypassBtn(sim.World, uid, req.Operation) + return nil + case request_proto.BypassOperationReq_ibp_btn: + uidMap, err := getIbpUidByMapIdAndStationId(req.MapId, req.StationId) + if err != nil { + return err + } + if uidMap.IbpButtonIds[req.DeviceId] == nil { + return fmt.Errorf("车站【%d】按钮【%d】UID不存在", req.StationId, req.DeviceId) + } + stationUid := QueryUidByMidAndComId(req.MapId, req.StationId, &data_proto.Station{}) + devUid := stationUid + "_" + uidMap.IbpButtonIds[req.DeviceId].Uid + + fi.SetBypassBtn(sim.World, devUid, req.Operation) + return nil + case request_proto.BypassOperationReq_ibp_key: + uidMap, err := getIbpUidByMapIdAndStationId(req.MapId, req.StationId) + if err != nil { + return err + } + if uidMap.IbpKeyIds[req.DeviceId] == nil { + return fmt.Errorf("车站【%d】钥匙【%d】UID不存在", req.StationId, req.DeviceId) + } + stationUid := QueryUidByMidAndComId(req.MapId, req.StationId, &data_proto.Station{}) + devUid := stationUid + "_" + uidMap.IbpKeyIds[req.DeviceId].Uid + fi.SetBypassSwitchKey(sim.World, devUid, req.Operation) + return nil + case request_proto.BypassOperationReq_pls_btn: + uid := QueryUidStructure[*StationUidStructure](req.MapId) + gateBoxUid := uid.GateBoxIds[req.GateBoxId].Uid + devUid := fmt.Sprintf("%v_%v", gateBoxUid, req.DeviceCode) + fi.SetBypassBtn(sim.World, devUid, req.Operation) + return nil + default: + return fmt.Errorf("设置旁路不能确定的类型[%v]", req.BtnType) + } +} diff --git a/ts/simulation/wayside/memory/wayside_memory_train.go b/ts/simulation/wayside/memory/wayside_memory_train.go index d5fa408..4500477 100644 --- a/ts/simulation/wayside/memory/wayside_memory_train.go +++ b/ts/simulation/wayside/memory/wayside_memory_train.go @@ -330,9 +330,38 @@ func UpdateTrainStateByDynamics(vs *VerifySimulation, trainId string, info *mess sta.DynamicState.Displacement = int32(info.Displacement) return sta } +func RemoveAllTrain(vs *VerifySimulation) { + allTrainMap := &vs.Memory.Status.TrainStateMap + if allTrainMap == nil { + slog.Info("当前没有列车不能执行") + return + } + allTrainMap.Range(func(k any, t any) bool { + train := t.(*state_proto.TrainState) + err := removeTrain(vs, train.Id, train) + if err != nil { + slog.Error("列车id:", train.Id, "移除失败,原因:", err.Error()) + } + allTrainMap.Store(train.Id, t) + return true + }) +} + +func removeTrain(vs *VerifySimulation, trainId string, train *state_proto.TrainState) error { + trainIndex, _ := strconv.ParseUint(trainId, 10, 16) + err := dynamics.Default().RequestRemoveTrain(&message.RemoveTrainReq{ + TrainIndex: uint16(trainIndex), + }) + if err != nil { + return err + } + train.Show = false + fi.RemoveTrainFromWorld(vs.World, trainId) + return nil +} // 删除列车状态 -func RemoveTrainState(vs *VerifySimulation, id string) { +/*func RemoveTrainState(vs *VerifySimulation, id string) { allTrainMap := &vs.Memory.Status.TrainStateMap d, ok := allTrainMap.Load(id) if ok { @@ -352,6 +381,20 @@ func RemoveTrainState(vs *VerifySimulation, id string) { } else { panic(fmt.Sprintf("列车【%s】不存在", id)) } +}*/ +func RemoveTrainState(vs *VerifySimulation, id string) { + allTrainMap := &vs.Memory.Status.TrainStateMap + d, ok := allTrainMap.Load(id) + if ok { + t := d.(*state_proto.TrainState) + err := removeTrain(vs, id, t) + if err != nil { + panic(dto.ErrorDto{Code: dto.DynamicsError, Message: err.Error()}) + } + allTrainMap.Store(id, t) + } else { + panic(fmt.Sprintf("列车【%s】不存在", id)) + } } func calcTrailTailOffset(headerOffset, length int64, up bool) (calctailOffset int64) {