Merge branch 'master' of https://git.code.tencent.com/beijing-rtss-test/bj-rtsts-server-go
This commit is contained in:
commit
cd4eb8ce45
@ -475,7 +475,7 @@ func ibpBtnOperation(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
simulation := checkDeviceDataAndReturn(req.SimulationId)
|
simulation := checkDeviceDataAndReturn(req.SimulationId)
|
||||||
slog.Info("传入状态参数", req)
|
slog.Info("传入状态参数", req)
|
||||||
err := memory.ChangeIBPButtonState(simulation, req.MapId, req.StationId, req.ButtonId, req.Down)
|
err := memory.ChangeIBPButtonState(simulation, req.MapId, req.IbpId, req.ButtonId, req.Down)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(sys_error.New(fmt.Sprintf("IBP按钮操作失败,%s", err.Error()), err))
|
panic(sys_error.New(fmt.Sprintf("IBP按钮操作失败,%s", err.Error()), err))
|
||||||
}
|
}
|
||||||
@ -505,7 +505,7 @@ func ibpKeyOperation(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
simulation := checkDeviceDataAndReturn(req.SimulationId)
|
simulation := checkDeviceDataAndReturn(req.SimulationId)
|
||||||
slog.Info("传入状态参数", req)
|
slog.Info("传入状态参数", req)
|
||||||
err := memory.ChangeIBPKeyState(simulation, req.MapId, req.StationId, req.KeyId, req.Gear)
|
err := memory.ChangeIBPKeyState(simulation, req.MapId, req.IbpId, req.KeyId, req.Gear)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(sys_error.New(fmt.Sprintf("IBP开关操作失败,%s", err.Error()), err))
|
panic(sys_error.New(fmt.Sprintf("IBP开关操作失败,%s", err.Error()), err))
|
||||||
}
|
}
|
||||||
@ -535,7 +535,7 @@ func pslBtnOperation(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
simulation := checkDeviceDataAndReturn(req.SimulationId)
|
simulation := checkDeviceDataAndReturn(req.SimulationId)
|
||||||
slog.Info("传入状态参数", req)
|
slog.Info("传入状态参数", req)
|
||||||
memory.ChangePSLButtonState(simulation, req.MapId, req.GateBoxId, req.ButtonCode, req.Down)
|
memory.ChangePSLButtonState(simulation, req.MapId, req.PslId, req.ButtonCode, req.Down)
|
||||||
c.JSON(http.StatusOK, "ok")
|
c.JSON(http.StatusOK, "ok")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 6e8fecb59b22e10c00398820076edb1a84d825ba
|
Subproject commit 8820c9f2abfb1e1761e866761b74cb7aab93a8de
|
File diff suppressed because it is too large
Load Diff
@ -192,7 +192,7 @@ type EsbButtonOperationReqDto struct {
|
|||||||
type IBPButtonOperationReqDto struct {
|
type IBPButtonOperationReqDto struct {
|
||||||
SimulationId string `form:"simulationId" json:"simulationId" binding:"required"`
|
SimulationId string `form:"simulationId" json:"simulationId" binding:"required"`
|
||||||
MapId int32 `json:"mapId" from:"mapId" binding:"required"`
|
MapId int32 `json:"mapId" from:"mapId" binding:"required"`
|
||||||
StationId uint32 `form:"stationId" json:"stationId" binding:"required"`
|
IbpId uint32 `form:"ibpId" json:"ibpId" binding:"required"`
|
||||||
ButtonId uint32 `form:"buttonId" json:"buttonId" binding:"required"`
|
ButtonId uint32 `form:"buttonId" json:"buttonId" binding:"required"`
|
||||||
Down bool `form:"down" json:"down"`
|
Down bool `form:"down" json:"down"`
|
||||||
}
|
}
|
||||||
@ -200,7 +200,7 @@ type IBPButtonOperationReqDto struct {
|
|||||||
type PslOperationReqDto struct {
|
type PslOperationReqDto struct {
|
||||||
SimulationId string `form:"simulationId" json:"simulationId" binding:"required"`
|
SimulationId string `form:"simulationId" json:"simulationId" binding:"required"`
|
||||||
MapId int32 `json:"mapId" from:"mapId" binding:"required"`
|
MapId int32 `json:"mapId" from:"mapId" binding:"required"`
|
||||||
GateBoxId uint32 `form:"gateBoxId" json:"gateBoxId"`
|
PslId uint32 `form:"pslId" json:"pslId"`
|
||||||
ButtonCode string `form:"buttonCode" json:"buttonCode" binding:"required"`
|
ButtonCode string `form:"buttonCode" json:"buttonCode" binding:"required"`
|
||||||
Down bool `form:"down" json:"down"`
|
Down bool `form:"down" json:"down"`
|
||||||
}
|
}
|
||||||
@ -208,7 +208,7 @@ type PslOperationReqDto struct {
|
|||||||
type KeyOperationReqDto struct {
|
type KeyOperationReqDto struct {
|
||||||
SimulationId string `form:"simulationId" json:"simulationId" binding:"required"`
|
SimulationId string `form:"simulationId" json:"simulationId" binding:"required"`
|
||||||
MapId int32 `json:"mapId" from:"mapId" binding:"required"`
|
MapId int32 `json:"mapId" from:"mapId" binding:"required"`
|
||||||
StationId uint32 `form:"stationId" json:"stationId" binding:"required"`
|
IbpId uint32 `form:"ibpId" json:"ibpId" binding:"required"`
|
||||||
KeyId uint32 `form:"keyId" json:"keyId"`
|
KeyId uint32 `form:"keyId" json:"keyId"`
|
||||||
Gear int32 `form:"gear" json:"gear"`
|
Gear int32 `form:"gear" json:"gear"`
|
||||||
}
|
}
|
||||||
|
@ -893,8 +893,10 @@ type TrainState struct {
|
|||||||
TailDeviceId uint32 `protobuf:"varint,20,opt,name=tailDeviceId,proto3" json:"tailDeviceId,omitempty"`
|
TailDeviceId uint32 `protobuf:"varint,20,opt,name=tailDeviceId,proto3" json:"tailDeviceId,omitempty"`
|
||||||
// 列车尾端所在设备偏移量
|
// 列车尾端所在设备偏移量
|
||||||
TailOffset int64 `protobuf:"varint,21,opt,name=tailOffset,proto3" json:"tailOffset,omitempty"`
|
TailOffset int64 `protobuf:"varint,21,opt,name=tailOffset,proto3" json:"tailOffset,omitempty"`
|
||||||
|
// 列车尾端所在设备端口
|
||||||
|
TailDevicePort string `protobuf:"bytes,22,opt,name=tailDevicePort,proto3" json:"tailDevicePort,omitempty"`
|
||||||
// BTM状态
|
// BTM状态
|
||||||
BtmState *BTMState `protobuf:"bytes,22,opt,name=btmState,proto3" json:"btmState,omitempty"`
|
BtmState *BTMState `protobuf:"bytes,23,opt,name=btmState,proto3" json:"btmState,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *TrainState) Reset() {
|
func (x *TrainState) Reset() {
|
||||||
@ -1076,6 +1078,13 @@ func (x *TrainState) GetTailOffset() int64 {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *TrainState) GetTailDevicePort() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.TailDevicePort
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
func (x *TrainState) GetBtmState() *BTMState {
|
func (x *TrainState) GetBtmState() *BTMState {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.BtmState
|
return x.BtmState
|
||||||
@ -1748,8 +1757,10 @@ type TrainMapState struct {
|
|||||||
TailDeviceId uint32 `protobuf:"varint,66,opt,name=tailDeviceId,proto3" json:"tailDeviceId,omitempty"`
|
TailDeviceId uint32 `protobuf:"varint,66,opt,name=tailDeviceId,proto3" json:"tailDeviceId,omitempty"`
|
||||||
// 列车车尾所在设备偏移量
|
// 列车车尾所在设备偏移量
|
||||||
TailOffset int64 `protobuf:"varint,67,opt,name=tailOffset,proto3" json:"tailOffset,omitempty"`
|
TailOffset int64 `protobuf:"varint,67,opt,name=tailOffset,proto3" json:"tailOffset,omitempty"`
|
||||||
|
// 列车车尾所在设备端口
|
||||||
|
TailDevicePort string `protobuf:"bytes,68,opt,name=tailDevicePort,proto3" json:"tailDevicePort,omitempty"`
|
||||||
// BTM状态
|
// BTM状态
|
||||||
BtmState *BTMState `protobuf:"bytes,68,opt,name=btmState,proto3" json:"btmState,omitempty"`
|
BtmState *BTMState `protobuf:"bytes,69,opt,name=btmState,proto3" json:"btmState,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *TrainMapState) Reset() {
|
func (x *TrainMapState) Reset() {
|
||||||
@ -2253,6 +2264,13 @@ func (x *TrainMapState) GetTailOffset() int64 {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *TrainMapState) GetTailDevicePort() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.TailDevicePort
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
func (x *TrainMapState) GetBtmState() *BTMState {
|
func (x *TrainMapState) GetBtmState() *BTMState {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.BtmState
|
return x.BtmState
|
||||||
@ -3926,8 +3944,8 @@ var file_device_state_proto_rawDesc = []byte{
|
|||||||
0x0b, 0x32, 0x10, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x6b, 0x78, 0x4a, 0x53, 0x74,
|
0x0b, 0x32, 0x10, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4d, 0x6b, 0x78, 0x4a, 0x53, 0x74,
|
||||||
0x61, 0x74, 0x65, 0x52, 0x09, 0x6d, 0x6b, 0x78, 0x4a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x1e,
|
0x61, 0x74, 0x65, 0x52, 0x09, 0x6d, 0x6b, 0x78, 0x4a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x1e,
|
||||||
0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e,
|
0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e,
|
||||||
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x22, 0xda,
|
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x22, 0x82,
|
||||||
0x06, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a,
|
0x07, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a,
|
||||||
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x0e, 0x0a,
|
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x0e, 0x0a,
|
||||||
0x02, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x75, 0x70, 0x12, 0x14, 0x0a,
|
0x02, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x75, 0x70, 0x12, 0x14, 0x0a,
|
||||||
0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x70,
|
0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x70,
|
||||||
@ -3977,293 +3995,298 @@ var file_device_state_proto_rawDesc = []byte{
|
|||||||
0x69, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d,
|
0x69, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d,
|
||||||
0x52, 0x0c, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1e,
|
0x52, 0x0c, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1e,
|
||||||
0x0a, 0x0a, 0x74, 0x61, 0x69, 0x6c, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x15, 0x20, 0x01,
|
0x0a, 0x0a, 0x74, 0x61, 0x69, 0x6c, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x15, 0x20, 0x01,
|
||||||
0x28, 0x03, 0x52, 0x0a, 0x74, 0x61, 0x69, 0x6c, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x2b,
|
0x28, 0x03, 0x52, 0x0a, 0x74, 0x61, 0x69, 0x6c, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x26,
|
||||||
0x0a, 0x08, 0x62, 0x74, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b,
|
0x0a, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74,
|
||||||
0x32, 0x0f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x54, 0x4d, 0x53, 0x74, 0x61, 0x74,
|
0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x65, 0x76, 0x69,
|
||||||
0x65, 0x52, 0x08, 0x62, 0x74, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xf1, 0x06, 0x0a, 0x11,
|
0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2b, 0x0a, 0x08, 0x62, 0x74, 0x6d, 0x53, 0x74, 0x61,
|
||||||
0x54, 0x72, 0x61, 0x69, 0x6e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74,
|
0x74, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65,
|
||||||
0x65, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x01,
|
0x2e, 0x42, 0x54, 0x4d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x62, 0x74, 0x6d, 0x53, 0x74,
|
||||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12,
|
0x61, 0x74, 0x65, 0x22, 0xf1, 0x06, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x44, 0x79, 0x6e,
|
||||||
0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x02, 0x20,
|
0x61, 0x6d, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x61,
|
||||||
0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x12,
|
0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x68, 0x65,
|
||||||
0x26, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65,
|
0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x4c,
|
||||||
0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x6e,
|
0x69, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x61,
|
||||||
0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x69, 0x6c, 0x4c,
|
0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x4c,
|
||||||
0x69, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x69,
|
0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||||
0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x4c,
|
0x0e, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12,
|
||||||
0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52,
|
0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x04, 0x20,
|
||||||
0x0e, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12,
|
0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x12,
|
||||||
0x2c, 0x0a, 0x11, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x49,
|
0x26, 0x0a, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65,
|
||||||
0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x63, 0x63, 0x75,
|
0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x6e,
|
||||||
0x70, 0x69, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a,
|
0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x63, 0x63, 0x75, 0x70,
|
||||||
0x05, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c,
|
0x69, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x03,
|
||||||
0x6f, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x70, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x18, 0x08,
|
0x28, 0x09, 0x52, 0x11, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b,
|
||||||
0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x75, 0x70, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x12, 0x1c, 0x0a,
|
0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x18, 0x07,
|
||||||
0x09, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08,
|
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75,
|
||||||
0x52, 0x09, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x12, 0x32, 0x0a, 0x14, 0x72,
|
0x70, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x75, 0x70,
|
||||||
0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
|
0x73, 0x6c, 0x6f, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67,
|
||||||
0x53, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x72, 0x75, 0x6e, 0x6e, 0x69,
|
0x55, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e,
|
||||||
0x6e, 0x67, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x6d, 0x12,
|
0x67, 0x55, 0x70, 0x12, 0x32, 0x0a, 0x14, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65,
|
||||||
0x24, 0x0a, 0x0d, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
|
0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28,
|
||||||
0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x69, 0x73,
|
0x02, 0x52, 0x14, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74,
|
||||||
0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x61, 0x6d, 0x70, 0x52, 0x65, 0x73,
|
0x61, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x69, 0x72, 0x52, 0x65,
|
||||||
0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72,
|
0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d,
|
||||||
0x61, 0x6d, 0x70, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a,
|
0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x26, 0x0a,
|
||||||
0x0f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
|
0x0e, 0x72, 0x61, 0x6d, 0x70, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18,
|
||||||
0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73,
|
0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x61, 0x6d, 0x70, 0x52, 0x65, 0x73, 0x69, 0x73,
|
||||||
0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64,
|
0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65,
|
||||||
0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x2a, 0x0a,
|
0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f,
|
||||||
|
0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12,
|
||||||
|
0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
|
||||||
|
0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65, 0x6e,
|
||||||
|
0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x31, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||||
0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64,
|
0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64,
|
||||||
0x31, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65, 0x6e,
|
0x31, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53,
|
||||||
0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x31, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x65, 0x61,
|
0x70, 0x65, 0x65, 0x64, 0x32, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x68, 0x65, 0x61,
|
||||||
0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x18, 0x10, 0x20,
|
0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x12, 0x2a, 0x0a,
|
||||||
0x01, 0x28, 0x05, 0x52, 0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53,
|
|
||||||
0x70, 0x65, 0x65, 0x64, 0x32, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e,
|
|
||||||
0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x31, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52,
|
|
||||||
0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64,
|
0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64,
|
||||||
0x31, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53,
|
0x31, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e,
|
||||||
0x70, 0x65, 0x65, 0x64, 0x32, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x74, 0x61, 0x69,
|
0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x31, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x61, 0x69,
|
||||||
0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x12, 0x26, 0x0a,
|
0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x18, 0x12, 0x20,
|
||||||
0x0e, 0x68, 0x65, 0x61, 0x64, 0x52, 0x61, 0x64, 0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18,
|
0x01, 0x28, 0x05, 0x52, 0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53,
|
||||||
0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x52, 0x61, 0x64, 0x61, 0x72,
|
0x70, 0x65, 0x65, 0x64, 0x32, 0x12, 0x26, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x52, 0x61, 0x64,
|
||||||
0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x61, 0x64,
|
0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x68,
|
||||||
0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74,
|
0x65, 0x61, 0x64, 0x52, 0x61, 0x64, 0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x26, 0x0a,
|
||||||
0x61, 0x69, 0x6c, 0x52, 0x61, 0x64, 0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x28, 0x0a,
|
0x0e, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x61, 0x64, 0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18,
|
||||||
0x0f, 0x75, 0x64, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e,
|
0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x61, 0x64, 0x61, 0x72,
|
||||||
0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x64, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72,
|
0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x64, 0x70, 0x49, 0x6e, 0x74, 0x65,
|
||||||
0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6c,
|
0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f,
|
||||||
0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x61,
|
0x75, 0x64, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,
|
||||||
0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x44,
|
0x22, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
|
||||||
0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28,
|
0x16, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74,
|
||||||
0x05, 0x52, 0x0c, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22,
|
0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d,
|
||||||
0x84, 0x08, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x56, 0x6f, 0x62, 0x63, 0x53, 0x74, 0x61,
|
0x65, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x69, 0x73, 0x70, 0x6c,
|
||||||
0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x69, 0x66, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c,
|
0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x84, 0x08, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x69,
|
||||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x69, 0x66, 0x65, 0x53, 0x69, 0x67, 0x6e,
|
0x6e, 0x56, 0x6f, 0x62, 0x63, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x69,
|
||||||
0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x63, 0x31, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18,
|
0x66, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
|
||||||
0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x74, 0x63, 0x31, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65,
|
0x6c, 0x69, 0x66, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x63,
|
||||||
0x12, 0x1c, 0x0a, 0x09, 0x74, 0x63, 0x32, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20,
|
0x31, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x74,
|
||||||
0x01, 0x28, 0x08, 0x52, 0x09, 0x74, 0x63, 0x32, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x2a,
|
0x63, 0x31, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x63, 0x32, 0x41,
|
||||||
0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x77, 0x61,
|
0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x74, 0x63, 0x32,
|
||||||
0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
|
0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
|
||||||
0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x69,
|
0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08,
|
||||||
0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x63, 0x6b, 0x77, 0x61, 0x72, 0x64, 0x18,
|
0x52, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x77, 0x61,
|
||||||
0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
|
0x72, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42,
|
||||||
0x42, 0x61, 0x63, 0x6b, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x63,
|
0x61, 0x63, 0x6b, 0x77, 0x61, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x64,
|
||||||
0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08,
|
0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x63, 0x6b, 0x77, 0x61, 0x72, 0x64,
|
||||||
0x52, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
|
0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74,
|
||||||
0x12, 0x24, 0x0a, 0x0d, 0x62, 0x72, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75,
|
0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69,
|
||||||
0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x62, 0x72, 0x61, 0x6b, 0x69, 0x6e, 0x67,
|
0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x72, 0x61, 0x6b,
|
||||||
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65,
|
0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52,
|
||||||
0x6e, 0x63, 0x79, 0x42, 0x72, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
|
0x0d, 0x62, 0x72, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x36,
|
||||||
0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63,
|
0x0a, 0x16, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x72, 0x61, 0x6b, 0x69,
|
||||||
0x79, 0x42, 0x72, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26,
|
0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16,
|
||||||
0x0a, 0x0e, 0x74, 0x75, 0x72, 0x6e, 0x62, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
|
0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x72, 0x61, 0x6b, 0x69, 0x6e, 0x67,
|
||||||
0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x74, 0x75, 0x72, 0x6e, 0x62, 0x61, 0x63, 0x6b,
|
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x75, 0x72, 0x6e, 0x62, 0x61,
|
||||||
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x75, 0x6d, 0x70, 0x53, 0x74,
|
0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e,
|
||||||
0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6a, 0x75, 0x6d, 0x70,
|
0x74, 0x75, 0x72, 0x6e, 0x62, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e,
|
||||||
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x74, 0x6f, 0x18, 0x0b, 0x20,
|
0x0a, 0x0a, 0x6a, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01,
|
||||||
0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x74, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x61, 0x6d, 0x18,
|
0x28, 0x08, 0x52, 0x0a, 0x6a, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10,
|
||||||
0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x66, 0x61, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x61,
|
0x0a, 0x03, 0x61, 0x74, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x74, 0x6f,
|
||||||
0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x63, 0x61, 0x6d, 0x12, 0x34, 0x0a, 0x15,
|
0x12, 0x10, 0x0a, 0x03, 0x66, 0x61, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x66,
|
||||||
0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x43, 0x69,
|
0x61, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x61, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52,
|
||||||
0x72, 0x63, 0x75, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x74, 0x72, 0x61,
|
0x03, 0x63, 0x61, 0x6d, 0x12, 0x34, 0x0a, 0x15, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
|
||||||
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x43, 0x69, 0x72, 0x63, 0x75,
|
0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x18, 0x0e, 0x20,
|
||||||
0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x72, 0x61,
|
0x01, 0x28, 0x08, 0x52, 0x15, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x61, 0x66,
|
||||||
0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12,
|
0x65, 0x74, 0x79, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x70, 0x61,
|
||||||
0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74,
|
0x72, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
|
||||||
0x75, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x42, 0x72,
|
0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x42,
|
||||||
0x61, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52,
|
0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x6d, 0x61,
|
||||||
0x13, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74,
|
0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75,
|
||||||
0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
|
0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69,
|
||||||
0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61,
|
0x6e, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d,
|
||||||
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72,
|
0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x11, 0x20,
|
||||||
0x61, 0x6b, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a,
|
0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72,
|
||||||
0x62, 0x72, 0x61, 0x6b, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72,
|
0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x61, 0x6b, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65,
|
||||||
0x61, 0x69, 0x6e, 0x4c, 0x6f, 0x61, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74,
|
0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x72, 0x61, 0x6b, 0x65, 0x46, 0x6f, 0x72,
|
||||||
0x72, 0x61, 0x69, 0x6e, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x6c, 0x65, 0x66, 0x74,
|
0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4c, 0x6f, 0x61, 0x64, 0x18,
|
||||||
0x44, 0x6f, 0x6f, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18,
|
0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4c, 0x6f, 0x61, 0x64,
|
||||||
0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6c, 0x65, 0x66, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x4f,
|
0x12, 0x30, 0x0a, 0x13, 0x6c, 0x65, 0x66, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x4f, 0x70, 0x65, 0x6e,
|
||||||
0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x72, 0x69,
|
0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6c,
|
||||||
0x67, 0x68, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61,
|
0x65, 0x66, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61,
|
||||||
0x6e, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x72, 0x69, 0x67, 0x68, 0x74, 0x44,
|
0x6e, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x72, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x4f,
|
||||||
0x6f, 0x6f, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x32,
|
0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08,
|
||||||
0x0a, 0x14, 0x6c, 0x65, 0x66, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43,
|
0x52, 0x14, 0x72, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x43,
|
||||||
0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x6c, 0x65,
|
0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x6c, 0x65, 0x66, 0x74, 0x44, 0x6f,
|
||||||
0x66, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61,
|
0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x16,
|
||||||
0x6e, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x72, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x43,
|
0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x6c, 0x65, 0x66, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c,
|
||||||
0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28,
|
0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x72, 0x69,
|
||||||
0x08, 0x52, 0x15, 0x72, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73,
|
0x67, 0x68, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d,
|
||||||
0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x44,
|
0x61, 0x6e, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x72, 0x69, 0x67, 0x68, 0x74,
|
||||||
0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c,
|
|
||||||
0x61, 0x6c, 0x6c, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0f,
|
|
||||||
0x75, 0x64, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18,
|
|
||||||
0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x64, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72,
|
|
||||||
0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
|
|
||||||
0x54, 0x69, 0x6d, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61,
|
|
||||||
0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd3, 0x14, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x69, 0x6e,
|
|
||||||
0x4d, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
|
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x02,
|
|
||||||
0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x75, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74,
|
|
||||||
0x69, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c,
|
|
||||||
0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b,
|
|
||||||
0x74, 0x72, 0x61, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28,
|
|
||||||
0x03, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x12,
|
|
||||||
0x0a, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x68,
|
|
||||||
0x6f, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
|
||||||
0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x44, 0x65,
|
|
||||||
0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x4f, 0x66,
|
|
||||||
0x66, 0x73, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64,
|
|
||||||
0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
|
|
||||||
0x50, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69,
|
|
||||||
0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x54,
|
|
||||||
0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f,
|
|
||||||
0x12, 0x22, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
|
|
||||||
0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63,
|
|
||||||
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x44, 0x69, 0x72, 0x65,
|
|
||||||
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x65, 0x61,
|
|
||||||
0x64, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72,
|
|
||||||
0x61, 0x69, 0x6e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01,
|
|
||||||
0x28, 0x03, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74,
|
|
||||||
0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x44, 0x65, 0x6c,
|
|
||||||
0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f,
|
|
||||||
0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24,
|
|
||||||
0x0a, 0x0d, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x44, 0x69, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18,
|
|
||||||
0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x44, 0x69, 0x61, 0x6d,
|
|
||||||
0x65, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x48,
|
|
||||||
0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10,
|
|
||||||
0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74,
|
|
||||||
0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x10,
|
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64,
|
|
||||||
0x12, 0x26, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73,
|
|
||||||
0x65, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69,
|
|
||||||
0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x69, 0x6c,
|
|
||||||
0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61,
|
|
||||||
0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x61, 0x69, 0x6c,
|
|
||||||
0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03,
|
|
||||||
0x52, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74,
|
|
||||||
0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b,
|
|
||||||
0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x63, 0x63,
|
|
||||||
0x75, 0x70, 0x69, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14,
|
|
||||||
0x0a, 0x05, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73,
|
|
||||||
0x6c, 0x6f, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x70, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x18,
|
|
||||||
0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x75, 0x70, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x12, 0x1c,
|
|
||||||
0x0a, 0x09, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28,
|
|
||||||
0x08, 0x52, 0x09, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x12, 0x32, 0x0a, 0x14,
|
|
||||||
0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63,
|
|
||||||
0x65, 0x53, 0x75, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x72, 0x75, 0x6e, 0x6e,
|
|
||||||
0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x6d,
|
|
||||||
0x12, 0x24, 0x0a, 0x0d, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63,
|
|
||||||
0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x69,
|
|
||||||
0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x61, 0x6d, 0x70, 0x52, 0x65,
|
|
||||||
0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e,
|
|
||||||
0x72, 0x61, 0x6d, 0x70, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28,
|
|
||||||
0x0a, 0x0f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63,
|
|
||||||
0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65,
|
|
||||||
0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65,
|
|
||||||
0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x2a,
|
|
||||||
0x0a, 0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65,
|
|
||||||
0x64, 0x31, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65,
|
|
||||||
0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x31, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x65,
|
|
||||||
0x61, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x18, 0x1e,
|
|
||||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72,
|
|
||||||
0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65,
|
|
||||||
0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x31, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05,
|
|
||||||
0x52, 0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65,
|
|
||||||
0x64, 0x31, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72,
|
|
||||||
0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x74, 0x61,
|
|
||||||
0x69, 0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x12, 0x26,
|
|
||||||
0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x52, 0x61, 0x64, 0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64,
|
|
||||||
0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x52, 0x61, 0x64, 0x61,
|
|
||||||
0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x61,
|
|
||||||
0x64, 0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x22, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e,
|
|
||||||
0x74, 0x61, 0x69, 0x6c, 0x52, 0x61, 0x64, 0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x30,
|
|
||||||
0x0a, 0x13, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75,
|
|
||||||
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x23, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x79, 0x6e,
|
|
||||||
0x61, 0x6d, 0x69, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e,
|
|
||||||
0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
|
||||||
0x18, 0x24, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61,
|
|
||||||
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x76, 0x6f, 0x62, 0x63, 0x4c, 0x69, 0x66, 0x65,
|
|
||||||
0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x76, 0x6f,
|
|
||||||
0x62, 0x63, 0x4c, 0x69, 0x66, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09,
|
|
||||||
0x74, 0x63, 0x31, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x52,
|
|
||||||
0x09, 0x74, 0x63, 0x31, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x63,
|
|
||||||
0x32, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x74,
|
|
||||||
0x63, 0x32, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65,
|
|
||||||
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x28, 0x20, 0x01,
|
|
||||||
0x28, 0x08, 0x52, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72,
|
|
||||||
0x77, 0x61, 0x72, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f,
|
|
||||||
0x6e, 0x42, 0x61, 0x63, 0x6b, 0x77, 0x61, 0x72, 0x64, 0x18, 0x29, 0x20, 0x01, 0x28, 0x08, 0x52,
|
|
||||||
0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x63, 0x6b, 0x77, 0x61,
|
|
||||||
0x72, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
|
|
||||||
0x61, 0x74, 0x75, 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x63,
|
|
||||||
0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x72,
|
|
||||||
0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2b, 0x20, 0x01, 0x28,
|
|
||||||
0x08, 0x52, 0x0d, 0x62, 0x72, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
|
|
||||||
0x12, 0x36, 0x0a, 0x16, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x72, 0x61,
|
|
||||||
0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x08,
|
|
||||||
0x52, 0x16, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x72, 0x61, 0x6b, 0x69,
|
|
||||||
0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x75, 0x72, 0x6e,
|
|
||||||
0x62, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x08,
|
|
||||||
0x52, 0x0e, 0x74, 0x75, 0x72, 0x6e, 0x62, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
|
|
||||||
0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2e,
|
|
||||||
0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6a, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
|
|
||||||
0x12, 0x10, 0x0a, 0x03, 0x61, 0x74, 0x6f, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61,
|
|
||||||
0x74, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x61, 0x6d, 0x18, 0x30, 0x20, 0x01, 0x28, 0x08, 0x52,
|
|
||||||
0x03, 0x66, 0x61, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x61, 0x6d, 0x18, 0x31, 0x20, 0x01, 0x28,
|
|
||||||
0x08, 0x52, 0x03, 0x63, 0x61, 0x6d, 0x12, 0x34, 0x0a, 0x15, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69,
|
|
||||||
0x6f, 0x6e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x18,
|
|
||||||
0x32, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53,
|
|
||||||
0x61, 0x66, 0x65, 0x74, 0x79, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12,
|
|
||||||
0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74,
|
|
||||||
0x75, 0x73, 0x18, 0x33, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e,
|
|
||||||
0x67, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x13,
|
|
||||||
0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, 0x61,
|
|
||||||
0x74, 0x75, 0x73, 0x18, 0x34, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6d, 0x61, 0x69, 0x6e, 0x74,
|
|
||||||
0x61, 0x69, 0x6e, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24,
|
|
||||||
0x0a, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18,
|
|
||||||
0x35, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46,
|
|
||||||
0x6f, 0x72, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x61, 0x6b, 0x65, 0x46, 0x6f, 0x72,
|
|
||||||
0x63, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x72, 0x61, 0x6b, 0x65, 0x46,
|
|
||||||
0x6f, 0x72, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4c, 0x6f, 0x61,
|
|
||||||
0x64, 0x18, 0x37, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4c, 0x6f,
|
|
||||||
0x61, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x6c, 0x65, 0x66, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x4f, 0x70,
|
|
||||||
0x65, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x38, 0x20, 0x01, 0x28, 0x08, 0x52,
|
|
||||||
0x13, 0x6c, 0x65, 0x66, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6d,
|
|
||||||
0x6d, 0x61, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x72, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x6f,
|
|
||||||
0x72, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x39, 0x20, 0x01,
|
|
||||||
0x28, 0x08, 0x52, 0x14, 0x72, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x4f, 0x70, 0x65,
|
|
||||||
0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x6c, 0x65, 0x66, 0x74,
|
|
||||||
0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
|
0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
|
||||||
0x18, 0x3a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x6c, 0x65, 0x66, 0x74, 0x44, 0x6f, 0x6f, 0x72,
|
0x12, 0x22, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65,
|
||||||
0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x34, 0x0a, 0x15,
|
0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x44, 0x6f, 0x6f, 0x72, 0x43,
|
||||||
0x72, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f,
|
0x6c, 0x6f, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x64, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72,
|
||||||
0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x72, 0x69, 0x67,
|
0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75,
|
||||||
0x68, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61,
|
0x64, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e,
|
||||||
0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f,
|
0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x1a, 0x20, 0x01,
|
||||||
0x73, 0x65, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x44, 0x6f, 0x6f,
|
0x28, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xfb,
|
||||||
0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x6f, 0x62, 0x63, 0x49, 0x6e,
|
0x14, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65,
|
||||||
0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x08,
|
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
|
||||||
0x52, 0x10, 0x76, 0x6f, 0x62, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69,
|
0x12, 0x0e, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x75, 0x70,
|
||||||
0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x44, 0x79, 0x6e, 0x61, 0x6d,
|
0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x65, 0x64,
|
||||||
0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
|
0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53,
|
||||||
0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x44, 0x79, 0x6e, 0x61,
|
0x70, 0x65, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4c, 0x65, 0x6e,
|
||||||
0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x71, 0x74, 0x74, 0x52, 0x12, 0x74,
|
0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x69, 0x6e,
|
||||||
|
0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x18, 0x05,
|
||||||
|
0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x65,
|
||||||
|
0x61, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d,
|
||||||
|
0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1e,
|
||||||
|
0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01,
|
||||||
|
0x28, 0x03, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1e,
|
||||||
|
0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01,
|
||||||
|
0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x18,
|
||||||
|
0x0a, 0x07, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52,
|
||||||
|
0x07, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x44,
|
||||||
|
0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c,
|
||||||
|
0x72, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d,
|
||||||
|
0x68, 0x65, 0x61, 0x64, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20,
|
||||||
|
0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69,
|
||||||
|
0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d,
|
||||||
|
0x65, 0x74, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x69,
|
||||||
|
0x6e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f,
|
||||||
|
0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d,
|
||||||
|
0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x44, 0x65, 0x6c,
|
||||||
|
0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x44,
|
||||||
|
0x69, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x77,
|
||||||
|
0x68, 0x65, 0x65, 0x6c, 0x44, 0x69, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10,
|
||||||
|
0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74,
|
||||||
|
0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x48,
|
||||||
|
0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64,
|
||||||
|
0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65,
|
||||||
|
0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64,
|
||||||
|
0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03,
|
||||||
|
0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74,
|
||||||
|
0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x12,
|
||||||
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x64,
|
||||||
|
0x12, 0x26, 0x0a, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73,
|
||||||
|
0x65, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69,
|
||||||
|
0x6e, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x63, 0x63, 0x75,
|
||||||
|
0x70, 0x69, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x14, 0x20,
|
||||||
|
0x03, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x4c, 0x69, 0x6e,
|
||||||
|
0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x18,
|
||||||
|
0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07,
|
||||||
|
0x75, 0x70, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x75,
|
||||||
|
0x70, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e,
|
||||||
|
0x67, 0x55, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x75, 0x6e, 0x6e, 0x69,
|
||||||
|
0x6e, 0x67, 0x55, 0x70, 0x12, 0x32, 0x0a, 0x14, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52,
|
||||||
|
0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x6d, 0x18, 0x18, 0x20, 0x01,
|
||||||
|
0x28, 0x02, 0x52, 0x14, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x69, 0x73,
|
||||||
|
0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x69, 0x72, 0x52,
|
||||||
|
0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52,
|
||||||
|
0x0d, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x26,
|
||||||
|
0x0a, 0x0e, 0x72, 0x61, 0x6d, 0x70, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
|
||||||
|
0x18, 0x1a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x61, 0x6d, 0x70, 0x52, 0x65, 0x73, 0x69,
|
||||||
|
0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52,
|
||||||
|
0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x02, 0x52,
|
||||||
|
0x0f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
|
||||||
|
0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||||
|
0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65,
|
||||||
|
0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x31, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05,
|
||||||
|
0x52, 0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65,
|
||||||
|
0x64, 0x31, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x65, 0x61, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72,
|
||||||
|
0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x68, 0x65,
|
||||||
|
0x61, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x12, 0x2a,
|
||||||
|
0x0a, 0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65,
|
||||||
|
0x64, 0x31, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65,
|
||||||
|
0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x31, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x61,
|
||||||
|
0x69, 0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x18, 0x20,
|
||||||
|
0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72,
|
||||||
|
0x53, 0x70, 0x65, 0x65, 0x64, 0x32, 0x12, 0x26, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x52, 0x61,
|
||||||
|
0x64, 0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e,
|
||||||
|
0x68, 0x65, 0x61, 0x64, 0x52, 0x61, 0x64, 0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x26,
|
||||||
|
0x0a, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x61, 0x64, 0x61, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64,
|
||||||
|
0x18, 0x22, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x61, 0x64, 0x61,
|
||||||
|
0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69,
|
||||||
|
0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x23, 0x20,
|
||||||
|
0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x49, 0x6e, 0x74, 0x65,
|
||||||
|
0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65,
|
||||||
|
0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x24, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c,
|
||||||
|
0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e,
|
||||||
|
0x76, 0x6f, 0x62, 0x63, 0x4c, 0x69, 0x66, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x25,
|
||||||
|
0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x76, 0x6f, 0x62, 0x63, 0x4c, 0x69, 0x66, 0x65, 0x53, 0x69,
|
||||||
|
0x67, 0x6e, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x63, 0x31, 0x41, 0x63, 0x74, 0x69, 0x76,
|
||||||
|
0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x74, 0x63, 0x31, 0x41, 0x63, 0x74, 0x69,
|
||||||
|
0x76, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x63, 0x32, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18,
|
||||||
|
0x27, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x74, 0x63, 0x32, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65,
|
||||||
|
0x12, 0x2a, 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72,
|
||||||
|
0x77, 0x61, 0x72, 0x64, 0x18, 0x28, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x64, 0x69, 0x72, 0x65,
|
||||||
|
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x2c, 0x0a, 0x11,
|
||||||
|
0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x63, 0x6b, 0x77, 0x61, 0x72,
|
||||||
|
0x64, 0x18, 0x29, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69,
|
||||||
|
0x6f, 0x6e, 0x42, 0x61, 0x63, 0x6b, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72,
|
||||||
|
0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2a, 0x20, 0x01,
|
||||||
|
0x28, 0x08, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74,
|
||||||
|
0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x72, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61,
|
||||||
|
0x74, 0x75, 0x73, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x62, 0x72, 0x61, 0x6b, 0x69,
|
||||||
|
0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x65, 0x6d, 0x65, 0x72,
|
||||||
|
0x67, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x72, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74,
|
||||||
|
0x75, 0x73, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65,
|
||||||
|
0x6e, 0x63, 0x79, 0x42, 0x72, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
|
||||||
|
0x12, 0x26, 0x0a, 0x0e, 0x74, 0x75, 0x72, 0x6e, 0x62, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74,
|
||||||
|
0x75, 0x73, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x74, 0x75, 0x72, 0x6e, 0x62, 0x61,
|
||||||
|
0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x75, 0x6d, 0x70,
|
||||||
|
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6a, 0x75,
|
||||||
|
0x6d, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x74, 0x6f, 0x18,
|
||||||
|
0x2f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x74, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x61,
|
||||||
|
0x6d, 0x18, 0x30, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x66, 0x61, 0x6d, 0x12, 0x10, 0x0a, 0x03,
|
||||||
|
0x63, 0x61, 0x6d, 0x18, 0x31, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x63, 0x61, 0x6d, 0x12, 0x34,
|
||||||
|
0x0a, 0x15, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79,
|
||||||
|
0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x18, 0x32, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x74,
|
||||||
|
0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x43, 0x69, 0x72,
|
||||||
|
0x63, 0x75, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x42,
|
||||||
|
0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x33, 0x20, 0x01, 0x28, 0x08,
|
||||||
|
0x52, 0x12, 0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74,
|
||||||
|
0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e,
|
||||||
|
0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x34, 0x20, 0x01, 0x28,
|
||||||
|
0x08, 0x52, 0x13, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x42, 0x72, 0x61, 0x6b, 0x65,
|
||||||
|
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69,
|
||||||
|
0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74,
|
||||||
|
0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a,
|
||||||
|
0x62, 0x72, 0x61, 0x6b, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x03,
|
||||||
|
0x52, 0x0a, 0x62, 0x72, 0x61, 0x6b, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09,
|
||||||
|
0x74, 0x72, 0x61, 0x69, 0x6e, 0x4c, 0x6f, 0x61, 0x64, 0x18, 0x37, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||||
|
0x09, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x6c, 0x65,
|
||||||
|
0x66, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
|
||||||
|
0x64, 0x18, 0x38, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6c, 0x65, 0x66, 0x74, 0x44, 0x6f, 0x6f,
|
||||||
|
0x72, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x14,
|
||||||
|
0x72, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6d,
|
||||||
|
0x6d, 0x61, 0x6e, 0x64, 0x18, 0x39, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x72, 0x69, 0x67, 0x68,
|
||||||
|
0x74, 0x44, 0x6f, 0x6f, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
|
||||||
|
0x12, 0x32, 0x0a, 0x14, 0x6c, 0x65, 0x66, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73,
|
||||||
|
0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14,
|
||||||
|
0x6c, 0x65, 0x66, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d,
|
||||||
|
0x6d, 0x61, 0x6e, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x72, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x6f,
|
||||||
|
0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x3b, 0x20,
|
||||||
|
0x01, 0x28, 0x08, 0x52, 0x15, 0x72, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c,
|
||||||
|
0x6f, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x6c,
|
||||||
|
0x6c, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x08,
|
||||||
|
0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x2a,
|
||||||
|
0x0a, 0x10, 0x76, 0x6f, 0x62, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69,
|
||||||
|
0x6f, 0x6e, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x76, 0x6f, 0x62, 0x63, 0x49, 0x6e,
|
||||||
|
0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x12, 0x74, 0x72,
|
||||||
|
0x61, 0x69, 0x6e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
|
||||||
|
0x18, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x54,
|
||||||
0x72, 0x61, 0x69, 0x6e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69,
|
0x72, 0x61, 0x69, 0x6e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69,
|
||||||
0x67, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x41, 0x18,
|
0x67, 0x4d, 0x71, 0x74, 0x74, 0x52, 0x12, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x44, 0x79, 0x6e, 0x61,
|
||||||
0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x72,
|
0x6d, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x72, 0x61,
|
||||||
0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x71, 0x74, 0x74,
|
0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x41, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
|
||||||
0x52, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x41, 0x12, 0x39, 0x0a, 0x0a,
|
0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x53,
|
||||||
0x74, 0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x42, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b,
|
0x74, 0x61, 0x74, 0x65, 0x4d, 0x71, 0x74, 0x74, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x45,
|
||||||
0x32, 0x19, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e,
|
0x6e, 0x64, 0x73, 0x41, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64,
|
||||||
0x64, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x71, 0x74, 0x74, 0x52, 0x0a, 0x74, 0x72, 0x61,
|
0x73, 0x42, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65,
|
||||||
0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x42, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x70, 0x6c,
|
0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d,
|
||||||
0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x41, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44,
|
0x71, 0x74, 0x74, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x42, 0x12,
|
||||||
0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x74,
|
0x22, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18,
|
||||||
0x61, 0x69, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x42, 0x20, 0x01, 0x28,
|
0x41, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d,
|
||||||
0x0d, 0x52, 0x0c, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12,
|
0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63,
|
||||||
0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x69, 0x6c, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x43, 0x20,
|
0x65, 0x49, 0x64, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x61, 0x69, 0x6c, 0x44,
|
||||||
0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x61, 0x69, 0x6c, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12,
|
0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x69, 0x6c, 0x4f,
|
||||||
0x2b, 0x0a, 0x08, 0x62, 0x74, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x44, 0x20, 0x01, 0x28,
|
0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x43, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x61, 0x69,
|
||||||
|
0x6c, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x61, 0x69, 0x6c, 0x44,
|
||||||
|
0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x44, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
|
0x0e, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12,
|
||||||
|
0x2b, 0x0a, 0x08, 0x62, 0x74, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x45, 0x20, 0x01, 0x28,
|
||||||
0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x54, 0x4d, 0x53, 0x74, 0x61,
|
0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x54, 0x4d, 0x53, 0x74, 0x61,
|
||||||
0x74, 0x65, 0x52, 0x08, 0x62, 0x74, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x9c, 0x01, 0x0a,
|
0x74, 0x65, 0x52, 0x08, 0x62, 0x74, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x9c, 0x01, 0x0a,
|
||||||
0x08, 0x42, 0x54, 0x4d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x61, 0x74,
|
0x08, 0x42, 0x54, 0x4d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x61, 0x74,
|
||||||
|
@ -3,6 +3,7 @@ package message_server
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"joylink.club/bj-rtsts-server/dto/data_proto"
|
"joylink.club/bj-rtsts-server/dto/data_proto"
|
||||||
|
"joylink.club/bj-rtsts-server/sys_error"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"joylink.club/bj-rtsts-server/dto/state_proto"
|
"joylink.club/bj-rtsts-server/dto/state_proto"
|
||||||
@ -18,39 +19,34 @@ import (
|
|||||||
func NewIBPMs(vs *memory.VerifySimulation, mapId int32) ms_api.MsgTask {
|
func NewIBPMs(vs *memory.VerifySimulation, mapId int32) ms_api.MsgTask {
|
||||||
mapData := memory.QueryGiData[*data_proto.RtssGraphicStorage](mapId)
|
mapData := memory.QueryGiData[*data_proto.RtssGraphicStorage](mapId)
|
||||||
return ms_api.NewScheduleTask(fmt.Sprintf("地图[%d]综合后备盘IBP", mapId), func() error {
|
return ms_api.NewScheduleTask(fmt.Sprintf("地图[%d]综合后备盘IBP", mapId), func() error {
|
||||||
for _, station := range mapData.Stations {
|
for _, ibpBox := range mapData.IbpBoxs {
|
||||||
sid := memory.GetMapElementId(station.Common)
|
ibpState, err := collectIbpState(mapId, vs.World, ibpBox)
|
||||||
stationIbpState, err := collectStationIbpState(mapId, vs.World, station)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return sys_error.New("IBP状态发送异常", err)
|
||||||
}
|
}
|
||||||
mqtt.GetMsgClient().PubIBPState(vs.SimulationId, mapId, sid, stationIbpState)
|
mqtt.GetMsgClient().PubIBPState(vs.SimulationId, mapId, ibpBox.Common.Id, ibpState)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}, 200*time.Millisecond)
|
}, 200*time.Millisecond)
|
||||||
}
|
}
|
||||||
|
|
||||||
func collectStationIbpState(mapId int32, world ecs.World, station *data_proto.Station) (*state_proto.PushedDevicesStatus, error) {
|
func collectIbpState(mapId int32, world ecs.World, ibpBox *data_proto.IbpBox) (*state_proto.PushedDevicesStatus, error) {
|
||||||
if station.RefIbpMapCode == "" {
|
ibpBoxUid := memory.QueryUidByMidAndComId(mapId, ibpBox.Common.Id, &data_proto.IbpBox{})
|
||||||
return nil, nil
|
ibpMapId, ibpStorage := memory.QueryGiDataByName[*data_proto.IBPGraphicStorage](ibpBox.RefIbpMapCode)
|
||||||
}
|
|
||||||
sid := memory.GetMapElementId(station.Common)
|
|
||||||
stationUid := memory.QueryUidByMidAndComId(mapId, sid, &data_proto.Station{})
|
|
||||||
ibpMapId, ibpStorage := memory.QueryGiDataByName[*data_proto.IBPGraphicStorage](station.RefIbpMapCode)
|
|
||||||
ibpUidsMap := memory.QueryUidStructure[*memory.IBPUidStructure](ibpMapId)
|
ibpUidsMap := memory.QueryUidStructure[*memory.IBPUidStructure](ibpMapId)
|
||||||
buttonStates, err := collectIBPButtonState(world, stationUid, ibpUidsMap, ibpStorage.IbpButtons)
|
buttonStates, err := collectIBPButtonState(world, ibpBoxUid, ibpUidsMap, ibpStorage.IbpButtons)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
alarmStates, err := collectIBPAlarmState(world, stationUid, ibpUidsMap, ibpStorage.IbpAlarms)
|
alarmStates, err := collectIBPAlarmState(world, ibpBoxUid, ibpUidsMap, ibpStorage.IbpAlarms)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
lightStates, err := collectIBPLightState(world, stationUid, ibpUidsMap, ibpStorage.IbpLights)
|
lightStates, err := collectIBPLightState(world, ibpBoxUid, ibpUidsMap, ibpStorage.IbpLights)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
keyStates, err := collectIBPKeyState(world, stationUid, ibpUidsMap, ibpStorage.IbpKeys)
|
keyStates, err := collectIBPKeyState(world, ibpBoxUid, ibpUidsMap, ibpStorage.IbpKeys)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -66,11 +62,11 @@ func collectStationIbpState(mapId int32, world ecs.World, station *data_proto.St
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 收集IBP按钮状态
|
// 收集IBP按钮状态
|
||||||
func collectIBPButtonState(world ecs.World, stationUid string, uidsMap *memory.IBPUidStructure, ibpButtons []*data_proto.IBPButton) ([]*state_proto.ButtonState, error) {
|
func collectIBPButtonState(world ecs.World, ibpBoxUid string, uidsMap *memory.IBPUidStructure, ibpButtons []*data_proto.IBPButton) ([]*state_proto.ButtonState, error) {
|
||||||
var states []*state_proto.ButtonState
|
var states []*state_proto.ButtonState
|
||||||
for _, data := range ibpButtons { // 按钮
|
for _, data := range ibpButtons { // 按钮
|
||||||
did := memory.GetMapElementId(data.Common)
|
did := memory.GetMapElementId(data.Common)
|
||||||
uid := stationUid + "_" + uidsMap.IbpButtonIds[did].Uid
|
uid := ibpBoxUid + "_" + uidsMap.IbpButtonIds[did].Uid
|
||||||
entry, ok := entity.GetEntityByUid(world, uid)
|
entry, ok := entity.GetEntityByUid(world, uid)
|
||||||
if !ok {
|
if !ok {
|
||||||
continue
|
continue
|
||||||
@ -97,11 +93,11 @@ func getIBPButtonState(id uint32, entry *ecs.Entry) *state_proto.ButtonState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 收集报警器状态
|
// 收集报警器状态
|
||||||
func collectIBPAlarmState(world ecs.World, stationUid string, uidsMap *memory.IBPUidStructure, ibpAlarms []*data_proto.IbpAlarm) ([]*state_proto.AlarmState, error) {
|
func collectIBPAlarmState(world ecs.World, ibpBoxUid string, uidsMap *memory.IBPUidStructure, ibpAlarms []*data_proto.IbpAlarm) ([]*state_proto.AlarmState, error) {
|
||||||
var states []*state_proto.AlarmState
|
var states []*state_proto.AlarmState
|
||||||
for _, data := range ibpAlarms { // 报警器
|
for _, data := range ibpAlarms { // 报警器
|
||||||
did := memory.GetMapElementId(data.Common)
|
did := memory.GetMapElementId(data.Common)
|
||||||
uid := stationUid + "_" + uidsMap.IbpAlarmIds[did].Uid
|
uid := ibpBoxUid + "_" + uidsMap.IbpAlarmIds[did].Uid
|
||||||
entry, ok := entity.GetEntityByUid(world, uid)
|
entry, ok := entity.GetEntityByUid(world, uid)
|
||||||
if !ok {
|
if !ok {
|
||||||
continue
|
continue
|
||||||
@ -114,11 +110,11 @@ func collectIBPAlarmState(world ecs.World, stationUid string, uidsMap *memory.IB
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 收集灯状态信息
|
// 收集灯状态信息
|
||||||
func collectIBPLightState(world ecs.World, stationUid string, uidsMap *memory.IBPUidStructure, ibpLights []*data_proto.IbpLight) ([]*state_proto.LightState, error) {
|
func collectIBPLightState(world ecs.World, ibpBoxUid string, uidsMap *memory.IBPUidStructure, ibpLights []*data_proto.IbpLight) ([]*state_proto.LightState, error) {
|
||||||
var states []*state_proto.LightState
|
var states []*state_proto.LightState
|
||||||
for _, data := range ibpLights { // 指示灯
|
for _, data := range ibpLights { // 指示灯
|
||||||
did := memory.GetMapElementId(data.Common)
|
did := memory.GetMapElementId(data.Common)
|
||||||
uid := stationUid + "_" + uidsMap.IbpLightIds[did].Uid
|
uid := ibpBoxUid + "_" + uidsMap.IbpLightIds[did].Uid
|
||||||
entry, ok := entity.GetEntityByUid(world, uid)
|
entry, ok := entity.GetEntityByUid(world, uid)
|
||||||
if !ok {
|
if !ok {
|
||||||
continue
|
continue
|
||||||
@ -131,11 +127,11 @@ func collectIBPLightState(world ecs.World, stationUid string, uidsMap *memory.IB
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 收集钥匙状态
|
// 收集钥匙状态
|
||||||
func collectIBPKeyState(world ecs.World, stationUid string, uidsMap *memory.IBPUidStructure, ibpKeys []*data_proto.IbpKey) ([]*state_proto.KeyState, error) {
|
func collectIBPKeyState(world ecs.World, ibpBoxUid string, uidsMap *memory.IBPUidStructure, ibpKeys []*data_proto.IbpKey) ([]*state_proto.KeyState, error) {
|
||||||
var states []*state_proto.KeyState
|
var states []*state_proto.KeyState
|
||||||
for _, data := range ibpKeys { // 钥匙
|
for _, data := range ibpKeys { // 钥匙
|
||||||
did := memory.GetMapElementId(data.Common)
|
did := memory.GetMapElementId(data.Common)
|
||||||
uid := stationUid + "_" + uidsMap.IbpKeyIds[did].Uid
|
uid := ibpBoxUid + "_" + uidsMap.IbpKeyIds[did].Uid
|
||||||
entry, ok := entity.GetEntityByUid(world, uid)
|
entry, ok := entity.GetEntityByUid(world, uid)
|
||||||
if !ok {
|
if !ok {
|
||||||
continue
|
continue
|
||||||
|
@ -32,7 +32,7 @@ func NewPSLMs(vs *memory.VerifySimulation, mapId int32) ms_api.MsgTask {
|
|||||||
func collectGateBoxPSLState(world ecs.World, mapId int32, box *data_proto.GatedBox) (*state_proto.PushedDevicesStatus, error) {
|
func collectGateBoxPSLState(world ecs.World, mapId int32, box *data_proto.GatedBox) (*state_proto.PushedDevicesStatus, error) {
|
||||||
did := memory.GetMapElementId(box.Common)
|
did := memory.GetMapElementId(box.Common)
|
||||||
uidStructure := memory.QueryUidStructure[*memory.StationUidStructure](mapId)
|
uidStructure := memory.QueryUidStructure[*memory.StationUidStructure](mapId)
|
||||||
boxUid := uidStructure.GateBoxIds[did].Uid
|
boxUid := uidStructure.PslIds[did].Uid
|
||||||
mkxEntry, ok := entity.GetEntityByUid(world, boxUid)
|
mkxEntry, ok := entity.GetEntityByUid(world, boxUid)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, fmt.Errorf("[id:%s]的门控箱实体找不到", boxUid)
|
return nil, fmt.Errorf("[id:%s]的门控箱实体找不到", boxUid)
|
||||||
|
@ -407,6 +407,7 @@ func convertTrainState(v *state_proto.TrainState) *state_proto.TrainMapState {
|
|||||||
TrainDynamicConfig: &state_proto.TrainDynamicConfigMqtt{},
|
TrainDynamicConfig: &state_proto.TrainDynamicConfigMqtt{},
|
||||||
TailDeviceId: v.TailDeviceId,
|
TailDeviceId: v.TailDeviceId,
|
||||||
TailOffset: v.TailOffset,
|
TailOffset: v.TailOffset,
|
||||||
|
TailDevicePort: v.TailDevicePort,
|
||||||
BtmState: v.BtmState,
|
BtmState: v.BtmState,
|
||||||
}
|
}
|
||||||
convertDynamicConfig(v.TrainDynamicConfig, t.TrainDynamicConfig)
|
convertDynamicConfig(v.TrainDynamicConfig, t.TrainDynamicConfig)
|
||||||
|
@ -100,8 +100,8 @@ func (c *MqttClient) PubTpapiServiceState(simulationId string, msg *state_proto.
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 发送IBP状态数据
|
// 发送IBP状态数据
|
||||||
func (client *MqttClient) PubIBPState(simulationId string, mapId int32, stationId uint32, msg *state_proto.PushedDevicesStatus) error {
|
func (client *MqttClient) PubIBPState(simulationId string, mapId int32, ibpId uint32, msg *state_proto.PushedDevicesStatus) error {
|
||||||
return client.pub(GetIbpTopic(simulationId, mapId, stationId), msg)
|
return client.pub(GetIbpTopic(simulationId, mapId, ibpId), msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 发送PSL状态数据
|
// 发送PSL状态数据
|
||||||
|
@ -13,8 +13,8 @@ const (
|
|||||||
tpapiServiceTopic = topicPrefix + "tpis" // 第三方API服务状态topic
|
tpapiServiceTopic = topicPrefix + "tpis" // 第三方API服务状态topic
|
||||||
sfpTopic = topicPrefix + "sfp/%d" // 平面布置图设备状态topic 地图ID
|
sfpTopic = topicPrefix + "sfp/%d" // 平面布置图设备状态topic 地图ID
|
||||||
rccTopic = topicPrefix + "rcc/%d" // 继电器柜继电器状态topic 地图ID
|
rccTopic = topicPrefix + "rcc/%d" // 继电器柜继电器状态topic 地图ID
|
||||||
pslTopic = topicPrefix + "psl/%d/%d" // psl状态topic 地图ID/门控箱ID
|
pslTopic = topicPrefix + "psl/%d/%d" // psl状态topic 地图ID/PSL盘ID
|
||||||
ibpTopic = topicPrefix + "ibp/%d/%d" // ibp盘状态topic 地图ID/车站ID
|
ibpTopic = topicPrefix + "ibp/%d/%d" // ibp盘状态topic 地图ID/IBP盘ID
|
||||||
)
|
)
|
||||||
|
|
||||||
var topicMap = map[string]string{
|
var topicMap = map[string]string{
|
||||||
@ -76,6 +76,6 @@ func GetPslTopic(simulationId string, mapId int32, boxId uint32) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// IBP设备状态消息topic
|
// IBP设备状态消息topic
|
||||||
func GetIbpTopic(simulationId string, mapId int32, stationId uint32) string {
|
func GetIbpTopic(simulationId string, mapId int32, ibpId uint32) string {
|
||||||
return fmt.Sprintf(ibpTopic, simulationId, mapId, stationId)
|
return fmt.Sprintf(ibpTopic, simulationId, mapId, ibpId)
|
||||||
}
|
}
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit b624eeb3d807dd23bb537a31fc091e3b31dc6c84
|
Subproject commit 7694e092231530cbfa1d838902d802ca8c1de336
|
2
third_party/can_btm/balise_btm.go
vendored
2
third_party/can_btm/balise_btm.go
vendored
@ -59,7 +59,7 @@ func (s *btmCanetClient) GetState() state_proto.BTMState {
|
|||||||
detector := s.baliseDetector
|
detector := s.baliseDetector
|
||||||
var telegram string
|
var telegram string
|
||||||
info := detector.eq[len(detector.eq)-1]
|
info := detector.eq[len(detector.eq)-1]
|
||||||
if detector.aboveBalise && info != nil {
|
if /*detector.aboveBalise &&*/ info != nil && len(info.telegram) != 0 {
|
||||||
telegram = fmt.Sprintf("%X", info.telegram)
|
telegram = fmt.Sprintf("%X", info.telegram)
|
||||||
} else {
|
} else {
|
||||||
telegram = strings.Repeat("00", balise_const.UserTelegramByteLen)
|
telegram = strings.Repeat("00", balise_const.UserTelegramByteLen)
|
||||||
|
9
third_party/can_btm/balise_detection.go
vendored
9
third_party/can_btm/balise_detection.go
vendored
@ -73,9 +73,9 @@ func (t *BaliseDetector) tryRebind(th *TrainHeadPositionInfo) {
|
|||||||
|
|
||||||
func (t *BaliseDetector) detect(wd *component.WorldData, repo *repository.Repository, th *TrainHeadPositionInfo) {
|
func (t *BaliseDetector) detect(wd *component.WorldData, repo *repository.Repository, th *TrainHeadPositionInfo) {
|
||||||
t.tryRebind(th)
|
t.tryRebind(th)
|
||||||
if !t.powerAmplifierSwitch { //天线功率放大器未开启,不进行探测
|
//if !t.powerAmplifierSwitch { //天线功率放大器未开启,不进行探测
|
||||||
return
|
// return
|
||||||
}
|
//}
|
||||||
curTime := time.Now()
|
curTime := time.Now()
|
||||||
//BTM天线中心点运行信息
|
//BTM天线中心点运行信息
|
||||||
curAntennaRi := t.createBtmAntennaRunningInfo(wd, repo, th)
|
curAntennaRi := t.createBtmAntennaRunningInfo(wd, repo, th)
|
||||||
@ -139,7 +139,8 @@ func (t *BaliseDetector) addExpectedBalise(curExpect *BtmAntennaScanningBaliseIn
|
|||||||
// }
|
// }
|
||||||
//}
|
//}
|
||||||
//检查是否已经记录过
|
//检查是否已经记录过
|
||||||
if t.eq[len(t.eq)-1].BaliseId == curExpect.BaliseId {
|
eq := t.eq[len(t.eq)-1]
|
||||||
|
if eq != nil && eq.BaliseId == curExpect.BaliseId {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
//左移
|
//左移
|
||||||
|
@ -2,58 +2,81 @@ package memory
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"joylink.club/bj-rtsts-server/sys_error"
|
||||||
|
|
||||||
"joylink.club/bj-rtsts-server/dto/data_proto"
|
"joylink.club/bj-rtsts-server/dto/data_proto"
|
||||||
"joylink.club/rtsssimulation/fi"
|
"joylink.club/rtsssimulation/fi"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 操作IBP按钮
|
// 操作IBP按钮
|
||||||
func ChangeIBPButtonState(sim *VerifySimulation, mapId int32, stationId, btnId uint32, pressDown bool) error {
|
func ChangeIBPButtonState(sim *VerifySimulation, mapId int32, ibpId, btnId uint32, pressDown bool) error {
|
||||||
uidMap, err := getIbpUidByMapIdAndStationId(mapId, stationId)
|
storage := QueryGiData[*data_proto.RtssGraphicStorage](mapId)
|
||||||
if err != nil {
|
var ibp *data_proto.IbpBox
|
||||||
return err
|
for _, box := range storage.IbpBoxs {
|
||||||
|
if box.Common.Id == ibpId {
|
||||||
|
ibp = box
|
||||||
}
|
}
|
||||||
if uidMap.IbpButtonIds[btnId] == nil {
|
|
||||||
return fmt.Errorf("车站【%d】按钮【%d】UID不存在", stationId, btnId)
|
|
||||||
}
|
}
|
||||||
stationUid := QueryUidByMidAndComId(mapId, stationId, &data_proto.Station{})
|
if ibp == nil {
|
||||||
|
return sys_error.New(fmt.Sprintf("没有找到[id:%d]IBP元素", ibpId))
|
||||||
|
}
|
||||||
|
ibpMapId, _ := QueryGiDataByName[*data_proto.IBPGraphicStorage](ibp.RefIbpMapCode)
|
||||||
|
ibpUidMap := QueryUidStructure[*IBPUidStructure](ibpMapId)
|
||||||
|
if ibpUidMap == nil {
|
||||||
|
return fmt.Errorf("没有找到IBP对应的数据")
|
||||||
|
}
|
||||||
|
if ibpUidMap.IbpButtonIds[btnId] == nil {
|
||||||
|
return fmt.Errorf("ibp【%d】按钮【%d】UID不存在", ibpId, btnId)
|
||||||
|
}
|
||||||
|
ibpUid := QueryUidByMidAndComId(mapId, ibp.Common.Id, &data_proto.IbpBox{})
|
||||||
if pressDown {
|
if pressDown {
|
||||||
return fi.PressDownButton(sim.World, stationUid+"_"+uidMap.IbpButtonIds[btnId].Uid)
|
return fi.PressDownButton(sim.World, ibpUid+"_"+ibpUidMap.IbpButtonIds[btnId].Uid)
|
||||||
} else {
|
} else {
|
||||||
return fi.PressUpButton(sim.World, stationUid+"_"+uidMap.IbpButtonIds[btnId].Uid)
|
return fi.PressUpButton(sim.World, ibpUid+"_"+ibpUidMap.IbpButtonIds[btnId].Uid)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 操作IBP按钮
|
// 操作IBP按钮
|
||||||
func ChangeIBPKeyState(sim *VerifySimulation, mapId int32, stationId, keyId uint32, gear int32) error {
|
func ChangeIBPKeyState(sim *VerifySimulation, mapId int32, ibpId, keyId uint32, gear int32) error {
|
||||||
uidMap, err := getIbpUidByMapIdAndStationId(mapId, stationId)
|
storage := QueryGiData[*data_proto.RtssGraphicStorage](mapId)
|
||||||
if err != nil {
|
var ibpBox *data_proto.IbpBox
|
||||||
return err
|
for _, box := range storage.IbpBoxs {
|
||||||
|
if box.Common.Id == ibpId {
|
||||||
|
ibpBox = box
|
||||||
}
|
}
|
||||||
if uidMap.IbpKeyIds[keyId] == nil {
|
|
||||||
return fmt.Errorf("车站【%d】钥匙【%d】UID不存在", stationId, keyId)
|
|
||||||
}
|
}
|
||||||
stationUid := QueryUidByMidAndComId(mapId, stationId, &data_proto.Station{})
|
if ibpBox == nil {
|
||||||
return fi.SwitchKeyGear(sim.World, stationUid+"_"+uidMap.IbpKeyIds[keyId].Uid, gear)
|
return sys_error.New(fmt.Sprintf("没有找到[id:%d]IBP元素", ibpId))
|
||||||
|
}
|
||||||
|
ibpMapId, _ := QueryGiDataByName[*data_proto.IBPGraphicStorage](ibpBox.RefIbpMapCode)
|
||||||
|
ibpUidMap := QueryUidStructure[*IBPUidStructure](ibpMapId)
|
||||||
|
if ibpUidMap == nil {
|
||||||
|
return fmt.Errorf("没有找到IBP对应的数据")
|
||||||
|
}
|
||||||
|
if ibpUidMap.IbpKeyIds[keyId] == nil {
|
||||||
|
return fmt.Errorf("车站【%d】钥匙【%d】UID不存在", ibpId, keyId)
|
||||||
|
}
|
||||||
|
ibpUid := QueryUidByMidAndComId(mapId, ibpBox.Common.Id, &data_proto.IbpBox{})
|
||||||
|
return fi.SwitchKeyGear(sim.World, ibpUid+"_"+ibpUidMap.IbpKeyIds[keyId].Uid, gear)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 根据平面布置图ID、列车ID获取IbpUid信息
|
//// 根据平面布置图ID、列车ID获取IbpUid信息
|
||||||
func getIbpUidByMapIdAndStationId(mapId int32, stationId uint32) (*IBPUidStructure, error) {
|
//func getIbpUidByMapIdAndIbpId(mapId int32, ibpId uint32) (*IBPUidStructure, error) {
|
||||||
giData := QueryGiData[*data_proto.RtssGraphicStorage](mapId)
|
// giData := QueryGiData[*data_proto.RtssGraphicStorage](mapId)
|
||||||
var station *data_proto.Station
|
// var station *data_proto.Station
|
||||||
for _, s := range giData.Stations {
|
// for _, s := range giData.Stations {
|
||||||
if GetMapElementId(s.Common) == stationId {
|
// if GetMapElementId(s.Common) == ibpId {
|
||||||
station = s
|
// station = s
|
||||||
break
|
// break
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
if station == nil {
|
// if station == nil {
|
||||||
return nil, fmt.Errorf("地图【%d】车站【%d】不存在", mapId, stationId)
|
// return nil, fmt.Errorf("地图【%d】车站【%d】不存在", mapId, ibpId)
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if station.RefIbpMapCode == "" {
|
// if station.RefIbpMapCode == "" {
|
||||||
return nil, fmt.Errorf("车站【%s】未关联IBP地图", station.StationName)
|
// return nil, fmt.Errorf("车站【%s】未关联IBP地图", station.StationName)
|
||||||
}
|
// }
|
||||||
ibpMapId, _ := QueryGiDataByName[*data_proto.IBPGraphicStorage](station.RefIbpMapCode)
|
// ibpMapId, _ := QueryGiDataByName[*data_proto.IBPGraphicStorage](station.RefIbpMapCode)
|
||||||
return QueryUidStructure[*IBPUidStructure](ibpMapId), nil
|
// return QueryUidStructure[*IBPUidStructure](ibpMapId), nil
|
||||||
}
|
//}
|
||||||
|
@ -34,8 +34,9 @@ type StationUidStructure struct {
|
|||||||
StationIds map[uint32]*elementIdStructure
|
StationIds map[uint32]*elementIdStructure
|
||||||
PlatformIds map[uint32]*elementIdStructure
|
PlatformIds map[uint32]*elementIdStructure
|
||||||
PsdIds map[uint32]*elementIdStructure
|
PsdIds map[uint32]*elementIdStructure
|
||||||
GateBoxIds map[uint32]*elementIdStructure
|
PslIds map[uint32]*elementIdStructure
|
||||||
SpksSwitchIds map[uint32]*elementIdStructure
|
SpksSwitchIds map[uint32]*elementIdStructure
|
||||||
|
IbpIds map[uint32]*elementIdStructure
|
||||||
}
|
}
|
||||||
|
|
||||||
type RelayUidStructure struct {
|
type RelayUidStructure struct {
|
||||||
@ -245,8 +246,9 @@ func initStationUid(data *data_proto.RtssGraphicStorage) *StationUidStructure {
|
|||||||
StationIds: make(map[uint32]*elementIdStructure, len(data.Stations)),
|
StationIds: make(map[uint32]*elementIdStructure, len(data.Stations)),
|
||||||
PlatformIds: make(map[uint32]*elementIdStructure, len(data.Platforms)),
|
PlatformIds: make(map[uint32]*elementIdStructure, len(data.Platforms)),
|
||||||
PsdIds: make(map[uint32]*elementIdStructure, len(data.ScreenDoors)),
|
PsdIds: make(map[uint32]*elementIdStructure, len(data.ScreenDoors)),
|
||||||
GateBoxIds: make(map[uint32]*elementIdStructure, len(data.GateBoxs)),
|
PslIds: make(map[uint32]*elementIdStructure, len(data.GateBoxs)),
|
||||||
SpksSwitchIds: make(map[uint32]*elementIdStructure, len(data.SpksSwitchs)),
|
//SpksSwitchIds: make(map[uint32]*elementIdStructure, len(data.SpksSwitchs)),
|
||||||
|
IbpIds: make(map[uint32]*elementIdStructure, len(data.IbpBoxs)),
|
||||||
}
|
}
|
||||||
city, lineId, _ := getUIdPrefix(data.UniqueIdPrefix)
|
city, lineId, _ := getUIdPrefix(data.UniqueIdPrefix)
|
||||||
// 处理车站信息
|
// 处理车站信息
|
||||||
@ -368,50 +370,58 @@ func initStationUid(data *data_proto.RtssGraphicStorage) *StationUidStructure {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 屏蔽门
|
// 屏蔽门
|
||||||
psd_station_map := make(map[uint32]string)
|
|
||||||
for _, door := range data.ScreenDoors {
|
for _, door := range data.ScreenDoors {
|
||||||
station := stationMap[platformMap[door.RefPlatformId].GetRefStationId()]
|
station := stationMap[platformMap[door.RefPlatformId].GetRefStationId()]
|
||||||
if station == nil { //线路数据有问题
|
if station == nil { //线路数据有问题
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
eid := GetMapElementId(door.Common)
|
eid := GetMapElementId(door.Common)
|
||||||
psd_station_map[eid] = station.StationName
|
|
||||||
gus.PsdIds[eid] = &elementIdStructure{
|
gus.PsdIds[eid] = &elementIdStructure{
|
||||||
CommonId: eid,
|
CommonId: eid,
|
||||||
Code: door.Code,
|
Code: door.Code,
|
||||||
Uid: GenerateElementUid(city, lineId, []string{station.StationName}, door.Code),
|
Uid: GenerateElementUid(city, lineId, []string{station.StationName}, door.Code),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 门控箱
|
// PSL
|
||||||
for _, box := range data.GateBoxs {
|
for _, box := range data.PslBoxs {
|
||||||
stationName := psd_station_map[box.RefScreenDoor]
|
stationName := stationMap[platformMap[box.RefPlatformId].RefStationId].StationName
|
||||||
eid := GetMapElementId(box.Common)
|
eid := GetMapElementId(box.Common)
|
||||||
gus.GateBoxIds[eid] = &elementIdStructure{
|
gus.PslIds[eid] = &elementIdStructure{
|
||||||
CommonId: eid,
|
CommonId: eid,
|
||||||
Code: box.Code,
|
Code: box.Code,
|
||||||
Uid: GenerateElementUid(city, lineId, []string{stationName}, box.Code),
|
Uid: GenerateElementUid(city, lineId, []string{stationName}, box.Code),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// SPKS人员防护
|
// IBP
|
||||||
for _, spk := range data.SpksSwitchs {
|
for _, box := range data.IbpBoxs {
|
||||||
if spk.RefStand == 0 {
|
stationName := stationMap[box.RefStationId].StationName
|
||||||
continue
|
eid := GetMapElementId(box.Common)
|
||||||
}
|
gus.IbpIds[eid] = &elementIdStructure{
|
||||||
platform := platformMap[spk.RefStand]
|
|
||||||
if platform == nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
station := gus.StationIds[platform.RefStationId]
|
|
||||||
if station == nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
eid := GetMapElementId(spk.Common)
|
|
||||||
gus.SpksSwitchIds[eid] = &elementIdStructure{
|
|
||||||
CommonId: eid,
|
CommonId: eid,
|
||||||
Code: spk.Code,
|
Code: box.Code,
|
||||||
Uid: station.Uid + "_key_SPKS_" + spk.Code,
|
Uid: GenerateElementUid(city, lineId, []string{stationName}, box.Code),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//// SPKS人员防护
|
||||||
|
//for _, spk := range data.SpksSwitchs {
|
||||||
|
// if spk.RefStand == 0 {
|
||||||
|
// continue
|
||||||
|
// }
|
||||||
|
// platform := platformMap[spk.RefStand]
|
||||||
|
// if platform == nil {
|
||||||
|
// continue
|
||||||
|
// }
|
||||||
|
// station := gus.StationIds[platform.RefStationId]
|
||||||
|
// if station == nil {
|
||||||
|
// continue
|
||||||
|
// }
|
||||||
|
// eid := GetMapElementId(spk.Common)
|
||||||
|
// gus.SpksSwitchIds[eid] = &elementIdStructure{
|
||||||
|
// CommonId: eid,
|
||||||
|
// Code: spk.Code,
|
||||||
|
// Uid: station.Uid + "_key_SPKS_" + spk.Code,
|
||||||
|
// }
|
||||||
|
//}
|
||||||
return gus
|
return gus
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -605,6 +615,10 @@ func getUidMapByType(uidData any, m interface{}) map[uint32]*elementIdStructure
|
|||||||
return (uidData.(*StationUidStructure)).SpksSwitchIds
|
return (uidData.(*StationUidStructure)).SpksSwitchIds
|
||||||
case *data_proto.ScreenDoor:
|
case *data_proto.ScreenDoor:
|
||||||
return (uidData.(*StationUidStructure)).PsdIds
|
return (uidData.(*StationUidStructure)).PsdIds
|
||||||
|
case *data_proto.PslBox:
|
||||||
|
return (uidData.(*StationUidStructure)).PslIds
|
||||||
|
case *data_proto.IbpBox:
|
||||||
|
return (uidData.(*StationUidStructure)).IbpIds
|
||||||
default:
|
default:
|
||||||
panic(&dto.ErrorDto{Code: dto.ArgumentParseError, Message: "类型未映射字段"})
|
panic(&dto.ErrorDto{Code: dto.ArgumentParseError, Message: "类型未映射字段"})
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ import (
|
|||||||
// 操作PSL按钮
|
// 操作PSL按钮
|
||||||
func ChangePSLButtonState(sim *VerifySimulation, mapId int32, gateBoxId uint32, btnCode string, pressDown bool) {
|
func ChangePSLButtonState(sim *VerifySimulation, mapId int32, gateBoxId uint32, btnCode string, pressDown bool) {
|
||||||
uid := QueryUidStructure[*StationUidStructure](mapId)
|
uid := QueryUidStructure[*StationUidStructure](mapId)
|
||||||
gateBoxUid := uid.GateBoxIds[gateBoxId].Uid
|
gateBoxUid := uid.PslIds[gateBoxId].Uid
|
||||||
if pressDown {
|
if pressDown {
|
||||||
fi.PressDownButton(sim.World, gateBoxUid+"_"+btnCode)
|
fi.PressDownButton(sim.World, gateBoxUid+"_"+btnCode)
|
||||||
} else {
|
} else {
|
||||||
|
@ -62,7 +62,7 @@ func AddTrainStateNew(vs *VerifySimulation, status *state_proto.TrainState, conf
|
|||||||
// 车尾相对车头link的偏移量
|
// 车尾相对车头link的偏移量
|
||||||
calctailOffset := calcTrailTailOffset(loffset, status.TrainLength, up)
|
calctailOffset := calcTrailTailOffset(loffset, status.TrainLength, up)
|
||||||
// 车尾位置
|
// 车尾位置
|
||||||
tailLink, _, _, tailLOffset, _, _, e1 := CalcInitializeLink(vs, linkId, calctailOffset, up)
|
tailLink, tailDeviceId, tailDevicePort, tailLOffset, tailDeviceOffset, _, e1 := CalcInitializeLink(vs, linkId, calctailOffset, up)
|
||||||
if e1 != nil {
|
if e1 != nil {
|
||||||
panic(sys_error.New("添加列车失败,列车车尾占用位置计算出错", e1))
|
panic(sys_error.New("添加列车失败,列车车尾占用位置计算出错", e1))
|
||||||
}
|
}
|
||||||
@ -76,6 +76,9 @@ func AddTrainStateNew(vs *VerifySimulation, status *state_proto.TrainState, conf
|
|||||||
TailLinkOffset: tailLOffset,
|
TailLinkOffset: tailLOffset,
|
||||||
RunningUp: up,
|
RunningUp: up,
|
||||||
}
|
}
|
||||||
|
status.TailDeviceId = vs.GetComIdByUid(tailDeviceId)
|
||||||
|
status.TailOffset = tailDeviceOffset
|
||||||
|
status.TailDevicePort = tailDevicePort
|
||||||
//初始化列车参数状态
|
//初始化列车参数状态
|
||||||
createOrUpdateStateDynamicConfig(status, configTrainData, trainEndsA, trainEndsB)
|
createOrUpdateStateDynamicConfig(status, configTrainData, trainEndsA, trainEndsB)
|
||||||
status.VobcState = &state_proto.TrainVobcState{}
|
status.VobcState = &state_proto.TrainVobcState{}
|
||||||
@ -264,7 +267,7 @@ func UpdateTrainStateByDynamics(vs *VerifySimulation, trainId string, info *mess
|
|||||||
//slog.Debug("处理动力学转换后的消息", "number", info.Number, "车头位置", id, "偏移", offset, "是否上行", runDirection, "是否ab", pointTo)
|
//slog.Debug("处理动力学转换后的消息", "number", info.Number, "车头位置", id, "偏移", offset, "是否上行", runDirection, "是否ab", pointTo)
|
||||||
// 车尾相对车头link的偏移量
|
// 车尾相对车头link的偏移量
|
||||||
calctailOffset := calcTrailTailOffset(outLinkOffset, int64(info.Len), info.Up)
|
calctailOffset := calcTrailTailOffset(outLinkOffset, int64(info.Len), info.Up)
|
||||||
tailLinkId, tailDeviceId, _, tailLinkOffset, tailOffset, _, e2 := CalcInitializeLink(vs, outLinkId, calctailOffset, info.Up)
|
tailLinkId, tailDeviceId, tailDevicePort, tailLinkOffset, tailOffset, _, e2 := CalcInitializeLink(vs, outLinkId, calctailOffset, info.Up)
|
||||||
if e2 != nil {
|
if e2 != nil {
|
||||||
panic(sys_error.New("动力学传输数据:列车车尾位置计算出错", e2))
|
panic(sys_error.New("动力学传输数据:列车车尾位置计算出错", e2))
|
||||||
}
|
}
|
||||||
@ -310,6 +313,7 @@ func UpdateTrainStateByDynamics(vs *VerifySimulation, trainId string, info *mess
|
|||||||
}
|
}
|
||||||
sta.TailDeviceId = vs.GetComIdByUid(tailDeviceId)
|
sta.TailDeviceId = vs.GetComIdByUid(tailDeviceId)
|
||||||
sta.TailOffset = tailOffset
|
sta.TailOffset = tailOffset
|
||||||
|
sta.TailDevicePort = tailDevicePort
|
||||||
// 赋值动力学信息
|
// 赋值动力学信息
|
||||||
sta.DynamicState.Heartbeat = int32(info.LifeSignal)
|
sta.DynamicState.Heartbeat = int32(info.LifeSignal)
|
||||||
sta.DynamicState.HeadLinkId = outLinkId
|
sta.DynamicState.HeadLinkId = outLinkId
|
||||||
|
@ -227,7 +227,7 @@ func BaliseReset(simulation *VerifySimulation) *sys_error.BusinessError {
|
|||||||
func baliseTelegramSend(simulation *VerifySimulation, balise *repository.Transponder) *sys_error.BusinessError {
|
func baliseTelegramSend(simulation *VerifySimulation, balise *repository.Transponder) *sys_error.BusinessError {
|
||||||
entry, _ := entity.GetEntityByUid(simulation.World, balise.Id())
|
entry, _ := entity.GetEntityByUid(simulation.World, balise.Id())
|
||||||
return sendEcsRequest(simulation.World, func() error {
|
return sendEcsRequest(simulation.World, func() error {
|
||||||
component.BaliseWorkStateType.SetValue(entry, component.BaliseWorkState{Work: false})
|
component.BaliseWorkStateType.SetValue(entry, component.BaliseWorkState{Work: true})
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -1002,6 +1002,7 @@ func fillProtoRepository(repo *proto.Repository, storage *data_proto.RtssGraphic
|
|||||||
repo.MainCoordinateSystem = storage.UniqueIdPrefix.MainCoordinateSystem
|
repo.MainCoordinateSystem = storage.UniqueIdPrefix.MainCoordinateSystem
|
||||||
axleCountingMap := make(map[uint32]*data_proto.AxleCounting)
|
axleCountingMap := make(map[uint32]*data_proto.AxleCounting)
|
||||||
uidsMap := QueryUidStructure[*StationUidStructure](mapId)
|
uidsMap := QueryUidStructure[*StationUidStructure](mapId)
|
||||||
|
//计轴
|
||||||
for _, data := range storage.AxleCountings {
|
for _, data := range storage.AxleCountings {
|
||||||
id := GetMapElementId(data.Common)
|
id := GetMapElementId(data.Common)
|
||||||
axleCountingMap[id] = data
|
axleCountingMap[id] = data
|
||||||
@ -1019,6 +1020,7 @@ func fillProtoRepository(repo *proto.Repository, storage *data_proto.RtssGraphic
|
|||||||
}
|
}
|
||||||
repo.CheckPoints = append(repo.CheckPoints, cp)
|
repo.CheckPoints = append(repo.CheckPoints, cp)
|
||||||
}
|
}
|
||||||
|
//区段
|
||||||
for _, data := range storage.Section {
|
for _, data := range storage.Section {
|
||||||
var turnoutUids []string
|
var turnoutUids []string
|
||||||
if data.SectionType == data_proto.Section_TurnoutPhysical {
|
if data.SectionType == data_proto.Section_TurnoutPhysical {
|
||||||
@ -1043,6 +1045,7 @@ func fillProtoRepository(repo *proto.Repository, storage *data_proto.RtssGraphic
|
|||||||
}
|
}
|
||||||
repo.PhysicalSections = append(repo.PhysicalSections, physicalSection)
|
repo.PhysicalSections = append(repo.PhysicalSections, physicalSection)
|
||||||
}
|
}
|
||||||
|
//道岔
|
||||||
for _, data := range storage.Turnouts {
|
for _, data := range storage.Turnouts {
|
||||||
var km *proto.Kilometer
|
var km *proto.Kilometer
|
||||||
for _, ks := range data.KilometerSystem {
|
for _, ks := range data.KilometerSystem {
|
||||||
@ -1066,6 +1069,7 @@ func fillProtoRepository(repo *proto.Repository, storage *data_proto.RtssGraphic
|
|||||||
}
|
}
|
||||||
repo.Turnouts = append(repo.Turnouts, turnout)
|
repo.Turnouts = append(repo.Turnouts, turnout)
|
||||||
}
|
}
|
||||||
|
//信号机
|
||||||
for _, data := range storage.Signals {
|
for _, data := range storage.Signals {
|
||||||
signal := &proto.Signal{
|
signal := &proto.Signal{
|
||||||
Id: uidsMap.SignalIds[GetMapElementId(data.Common)].Uid,
|
Id: uidsMap.SignalIds[GetMapElementId(data.Common)].Uid,
|
||||||
@ -1081,6 +1085,7 @@ func fillProtoRepository(repo *proto.Repository, storage *data_proto.RtssGraphic
|
|||||||
repo.Signals = append(repo.Signals, signal)
|
repo.Signals = append(repo.Signals, signal)
|
||||||
}
|
}
|
||||||
stm := make(map[string][]string)
|
stm := make(map[string][]string)
|
||||||
|
//应答器
|
||||||
for _, data := range storage.Transponders {
|
for _, data := range storage.Transponders {
|
||||||
fixedTelegram, err := hex.DecodeString(data.FixedTelegram)
|
fixedTelegram, err := hex.DecodeString(data.FixedTelegram)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -1113,9 +1118,11 @@ func fillProtoRepository(repo *proto.Repository, storage *data_proto.RtssGraphic
|
|||||||
repo.Transponders = append(repo.Transponders, responder)
|
repo.Transponders = append(repo.Transponders, responder)
|
||||||
}
|
}
|
||||||
slopeKsMap := make(map[uint32]*data_proto.SlopeKiloMarker)
|
slopeKsMap := make(map[uint32]*data_proto.SlopeKiloMarker)
|
||||||
|
//坡度公里标
|
||||||
for _, data := range storage.SlopeKiloMarker {
|
for _, data := range storage.SlopeKiloMarker {
|
||||||
slopeKsMap[GetMapElementId(data.Common)] = data
|
slopeKsMap[GetMapElementId(data.Common)] = data
|
||||||
}
|
}
|
||||||
|
//坡度
|
||||||
for _, data := range storage.Slopes {
|
for _, data := range storage.Slopes {
|
||||||
var kms []*proto.Kilometer
|
var kms []*proto.Kilometer
|
||||||
for _, id := range data.RefDeviceId {
|
for _, id := range data.RefDeviceId {
|
||||||
@ -1129,9 +1136,11 @@ func fillProtoRepository(repo *proto.Repository, storage *data_proto.RtssGraphic
|
|||||||
repo.Slopes = append(repo.Slopes, slope)
|
repo.Slopes = append(repo.Slopes, slope)
|
||||||
}
|
}
|
||||||
curveKsMap := make(map[uint32]*data_proto.CurvatureKiloMarker)
|
curveKsMap := make(map[uint32]*data_proto.CurvatureKiloMarker)
|
||||||
|
//曲度公里标
|
||||||
for _, data := range storage.CurvatureKiloMarker {
|
for _, data := range storage.CurvatureKiloMarker {
|
||||||
curveKsMap[GetMapElementId(data.Common)] = data
|
curveKsMap[GetMapElementId(data.Common)] = data
|
||||||
}
|
}
|
||||||
|
//曲度
|
||||||
for _, data := range storage.Curvatures {
|
for _, data := range storage.Curvatures {
|
||||||
var kms []*proto.Kilometer
|
var kms []*proto.Kilometer
|
||||||
for _, id := range data.RefDeviceId {
|
for _, id := range data.RefDeviceId {
|
||||||
@ -1144,6 +1153,7 @@ func fillProtoRepository(repo *proto.Repository, storage *data_proto.RtssGraphic
|
|||||||
}
|
}
|
||||||
repo.SectionalCurvatures = append(repo.SectionalCurvatures, slope)
|
repo.SectionalCurvatures = append(repo.SectionalCurvatures, slope)
|
||||||
}
|
}
|
||||||
|
//公里标转换
|
||||||
for _, data := range storage.KilometerConvertList {
|
for _, data := range storage.KilometerConvertList {
|
||||||
repo.KilometerConverts = append(repo.KilometerConverts, &proto.KilometerConvert{
|
repo.KilometerConverts = append(repo.KilometerConverts, &proto.KilometerConvert{
|
||||||
KmA: convertKm(data.KmA),
|
KmA: convertKm(data.KmA),
|
||||||
@ -1165,11 +1175,13 @@ func fillProtoRepository(repo *proto.Repository, storage *data_proto.RtssGraphic
|
|||||||
relateMap[data.Code] = data
|
relateMap[data.Code] = data
|
||||||
}
|
}
|
||||||
// 处理车站信息
|
// 处理车站信息
|
||||||
|
repoStationMap := make(map[uint32]*proto.Station)
|
||||||
for _, data := range storage.Stations {
|
for _, data := range storage.Stations {
|
||||||
station := &proto.Station{
|
station := &proto.Station{
|
||||||
Id: uidsMap.StationIds[GetMapElementId(data.Common)].Uid,
|
Id: uidsMap.StationIds[GetMapElementId(data.Common)].Uid,
|
||||||
Code: data.StationName,
|
Code: data.StationName,
|
||||||
}
|
}
|
||||||
|
repoStationMap[GetMapElementId(data.Common)] = station
|
||||||
// 关联车站的设备
|
// 关联车站的设备
|
||||||
refs, ok := relateMap[station.Code]
|
refs, ok := relateMap[station.Code]
|
||||||
if ok {
|
if ok {
|
||||||
@ -1190,8 +1202,8 @@ func fillProtoRepository(repo *proto.Repository, storage *data_proto.RtssGraphic
|
|||||||
station.ElectronicGroup = append(station.ElectronicGroup, group)
|
station.ElectronicGroup = append(station.ElectronicGroup, group)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 处理车站关联IBP的设备
|
//// 处理车站关联IBP的设备
|
||||||
handlerIBPDeviceToStation(station, repo, data.RefIbpMapCode)
|
//handlerIBPDeviceToStation(station, repo, data.RefIbpMapCode)
|
||||||
repo.Stations = append(repo.Stations, station)
|
repo.Stations = append(repo.Stations, station)
|
||||||
// 处理集中站的信息
|
// 处理集中站的信息
|
||||||
if stm[station.Code] != nil {
|
if stm[station.Code] != nil {
|
||||||
@ -1199,15 +1211,48 @@ func fillProtoRepository(repo *proto.Repository, storage *data_proto.RtssGraphic
|
|||||||
ref.TransponderId = append(ref.TransponderId, stm[station.Code]...)
|
ref.TransponderId = append(ref.TransponderId, stm[station.Code]...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//门控箱
|
//站台
|
||||||
for _, data := range storage.GateBoxs {
|
platformMap := make(map[uint32]*data_proto.Platform)
|
||||||
boxUidInfo := uidsMap.GateBoxIds[GetMapElementId(data.Common)]
|
for _, data := range storage.Platforms {
|
||||||
|
platformId := GetMapElementId(data.Common)
|
||||||
|
platformMap[platformId] = data
|
||||||
|
platform := &proto.Platform{
|
||||||
|
Id: uidsMap.PlatformIds[platformId].Uid,
|
||||||
|
Code: data.Code,
|
||||||
|
}
|
||||||
|
repo.Platforms = append(repo.Platforms, platform)
|
||||||
|
platform.StationId = uidsMap.StationIds[data.RefStationId].Uid
|
||||||
|
platform.PhysicalSectionId = uidsMap.PhysicalSectionIds[data.RefSectionId].Uid
|
||||||
|
}
|
||||||
|
//屏蔽门
|
||||||
|
platformId_psdUid_map := make(map[uint32]string)
|
||||||
|
for _, data := range storage.ScreenDoors {
|
||||||
|
var asdGroups []*proto.AsdGroup
|
||||||
|
for _, group := range storage.ScreenDoorConfig.ScreenDoorGroupList {
|
||||||
|
asdGroups = append(asdGroups, &proto.AsdGroup{
|
||||||
|
Group: group.TrainGroupAmount,
|
||||||
|
Start: group.StartSmallDoor,
|
||||||
|
End: group.EndSmallDoor,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
psd := &proto.Psd{
|
||||||
|
Id: uidsMap.PsdIds[GetMapElementId(data.Common)].Uid,
|
||||||
|
AsdAmount: storage.ScreenDoorConfig.SonDoorAmount,
|
||||||
|
AsdGroups: asdGroups,
|
||||||
|
PlatformId: uidsMap.PlatformIds[data.RefPlatformId].Uid,
|
||||||
|
}
|
||||||
|
platformId_psdUid_map[data.GetRefPlatformId()] = psd.Id
|
||||||
|
repo.Psds = append(repo.Psds, psd)
|
||||||
|
}
|
||||||
|
//PSL
|
||||||
|
for _, data := range storage.PslBoxs {
|
||||||
|
boxUidInfo := uidsMap.PslIds[GetMapElementId(data.Common)]
|
||||||
mkx := &proto.Mkx{
|
mkx := &proto.Mkx{
|
||||||
Id: boxUidInfo.Uid,
|
Id: boxUidInfo.Uid,
|
||||||
PsdId: uidsMap.PsdIds[data.RefScreenDoor].Uid,
|
PsdId: platformId_psdUid_map[data.RefPlatformId],
|
||||||
}
|
}
|
||||||
repo.Mkxs = append(repo.Mkxs, mkx)
|
repo.Mkxs = append(repo.Mkxs, mkx)
|
||||||
_, pslStorage := QueryGiDataByName[*data_proto.PslGraphicStorage](data.RefGatedBoxMapCode)
|
_, pslStorage := QueryGiDataByName[*data_proto.PslGraphicStorage](data.RefPslMapCode)
|
||||||
for _, button := range pslStorage.PslButtons {
|
for _, button := range pslStorage.PslButtons {
|
||||||
repoButton := &proto.Button{
|
repoButton := &proto.Button{
|
||||||
Id: boxUidInfo.Uid + "_" + button.Code,
|
Id: boxUidInfo.Uid + "_" + button.Code,
|
||||||
@ -1239,46 +1284,21 @@ func fillProtoRepository(repo *proto.Repository, storage *data_proto.RtssGraphic
|
|||||||
mkx.QkqrplaId = repoButton.Id
|
mkx.QkqrplaId = repoButton.Id
|
||||||
case "MPL":
|
case "MPL":
|
||||||
mkx.MplaId = repoButton.Id
|
mkx.MplaId = repoButton.Id
|
||||||
case "JXTCPL":
|
case "JXTCPLA":
|
||||||
mkx.JxtcplaId = repoButton.Id
|
mkx.JxtcplaId = repoButton.Id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//站台
|
//IBP
|
||||||
platformMap := make(map[uint32]*data_proto.Platform)
|
for _, data := range storage.IbpBoxs {
|
||||||
for _, data := range storage.Platforms {
|
boxUidInfo := uidsMap.IbpIds[data.Common.Id]
|
||||||
platformId := GetMapElementId(data.Common)
|
station := repoStationMap[data.RefStationId]
|
||||||
platformMap[platformId] = data
|
handlerIBPDeviceToStation(station, boxUidInfo.Uid, repo, data.RefIbpMapCode)
|
||||||
platform := &proto.Platform{
|
|
||||||
Id: uidsMap.PlatformIds[platformId].Uid,
|
|
||||||
Code: data.Code,
|
|
||||||
}
|
|
||||||
repo.Platforms = append(repo.Platforms, platform)
|
|
||||||
platform.StationId = uidsMap.StationIds[data.RefStationId].Uid
|
|
||||||
platform.PhysicalSectionId = uidsMap.PhysicalSectionIds[data.RefSectionId].Uid
|
|
||||||
}
|
|
||||||
//屏蔽门
|
|
||||||
for _, data := range storage.ScreenDoors {
|
|
||||||
var asdGroups []*proto.AsdGroup
|
|
||||||
for _, group := range storage.ScreenDoorConfig.ScreenDoorGroupList {
|
|
||||||
asdGroups = append(asdGroups, &proto.AsdGroup{
|
|
||||||
Group: group.TrainGroupAmount,
|
|
||||||
Start: group.StartSmallDoor,
|
|
||||||
End: group.EndSmallDoor,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
psd := &proto.Psd{
|
|
||||||
Id: uidsMap.PsdIds[GetMapElementId(data.Common)].Uid,
|
|
||||||
AsdAmount: storage.ScreenDoorConfig.SonDoorAmount,
|
|
||||||
AsdGroups: asdGroups,
|
|
||||||
PlatformId: uidsMap.PlatformIds[data.RefPlatformId].Uid,
|
|
||||||
}
|
|
||||||
repo.Psds = append(repo.Psds, psd)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 将IBP的设备关联到车站中
|
// 将IBP的设备关联到车站中
|
||||||
func handlerIBPDeviceToStation(station *proto.Station, repo *proto.Repository, ibpMapCode string) {
|
func handlerIBPDeviceToStation(station *proto.Station, ibpBoxUid string, repo *proto.Repository, ibpMapCode string) {
|
||||||
mapId, storage := QueryGiDataByName[*data_proto.IBPGraphicStorage](ibpMapCode)
|
mapId, storage := QueryGiDataByName[*data_proto.IBPGraphicStorage](ibpMapCode)
|
||||||
if storage == nil {
|
if storage == nil {
|
||||||
return
|
return
|
||||||
@ -1288,7 +1308,7 @@ func handlerIBPDeviceToStation(station *proto.Station, repo *proto.Repository, i
|
|||||||
for _, data := range storage.IbpButtons { // 处理按钮
|
for _, data := range storage.IbpButtons { // 处理按钮
|
||||||
id := GetMapElementId(data.Common)
|
id := GetMapElementId(data.Common)
|
||||||
b := &proto.Button{
|
b := &proto.Button{
|
||||||
Id: station.Id + "_" + uidMap.IbpButtonIds[id].Uid,
|
Id: ibpBoxUid + "_" + uidMap.IbpButtonIds[id].Uid,
|
||||||
Code: data.Code,
|
Code: data.Code,
|
||||||
ButtonType: proto.Button_NO_Reset_Press,
|
ButtonType: proto.Button_NO_Reset_Press,
|
||||||
HasLight: data.HasLight,
|
HasLight: data.HasLight,
|
||||||
@ -1305,7 +1325,7 @@ func handlerIBPDeviceToStation(station *proto.Station, repo *proto.Repository, i
|
|||||||
for _, data := range storage.IbpKeys { // 钥匙
|
for _, data := range storage.IbpKeys { // 钥匙
|
||||||
id := GetMapElementId(data.Common)
|
id := GetMapElementId(data.Common)
|
||||||
b := &proto.Key{
|
b := &proto.Key{
|
||||||
Id: station.Id + "_" + uidMap.IbpKeyIds[id].Uid,
|
Id: ibpBoxUid + "_" + uidMap.IbpKeyIds[id].Uid,
|
||||||
Code: data.Code,
|
Code: data.Code,
|
||||||
Gear: 2,
|
Gear: 2,
|
||||||
}
|
}
|
||||||
@ -1318,7 +1338,7 @@ func handlerIBPDeviceToStation(station *proto.Station, repo *proto.Repository, i
|
|||||||
for _, data := range storage.IbpAlarms { // 报警器
|
for _, data := range storage.IbpAlarms { // 报警器
|
||||||
id := GetMapElementId(data.Common)
|
id := GetMapElementId(data.Common)
|
||||||
b := &proto.Alarm{
|
b := &proto.Alarm{
|
||||||
Id: station.Id + "_" + uidMap.IbpAlarmIds[id].Uid,
|
Id: ibpBoxUid + "_" + uidMap.IbpAlarmIds[id].Uid,
|
||||||
Code: data.Code,
|
Code: data.Code,
|
||||||
}
|
}
|
||||||
deviceMap[id] = &proto.ElectronicComponent{
|
deviceMap[id] = &proto.ElectronicComponent{
|
||||||
@ -1330,7 +1350,7 @@ func handlerIBPDeviceToStation(station *proto.Station, repo *proto.Repository, i
|
|||||||
for _, data := range storage.IbpLights { // 指示灯,
|
for _, data := range storage.IbpLights { // 指示灯,
|
||||||
id := GetMapElementId(data.Common)
|
id := GetMapElementId(data.Common)
|
||||||
b := &proto.Light{
|
b := &proto.Light{
|
||||||
Id: station.Id + "_" + uidMap.IbpLightIds[id].Uid,
|
Id: ibpBoxUid + "_" + uidMap.IbpLightIds[id].Uid,
|
||||||
Code: data.Code,
|
Code: data.Code,
|
||||||
}
|
}
|
||||||
deviceMap[id] = &proto.ElectronicComponent{
|
deviceMap[id] = &proto.ElectronicComponent{
|
||||||
|
Loading…
Reference in New Issue
Block a user