rts-sim-module/repository/model/proto/model.pb.go

6919 lines
236 KiB
Go
Raw Normal View History

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
2024-01-05 11:30:39 +08:00
// protoc-gen-go v1.31.0
// protoc v4.23.1
// source: model.proto
package proto
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type DeviceType int32
const (
DeviceType_DeviceType_Unknown DeviceType = 0
DeviceType_DeviceType_PhysicalSection DeviceType = 1
DeviceType_DeviceType_CheckPoint DeviceType = 2
DeviceType_DeviceType_Turnout DeviceType = 3
DeviceType_DeviceType_Signal DeviceType = 4
DeviceType_DeviceType_Transponder DeviceType = 5
DeviceType_DeviceType_Slope DeviceType = 6
DeviceType_DeviceType_SectionalCurvature DeviceType = 7
DeviceType_DeviceType_Link DeviceType = 8
DeviceType_DeviceType_LinkNode DeviceType = 9
DeviceType_DeviceType_Relay DeviceType = 10
DeviceType_DeviceType_PhaseFailureProtector DeviceType = 11
DeviceType_DeviceType_Button DeviceType = 12
2023-10-12 13:47:57 +08:00
DeviceType_DeviceType_Light DeviceType = 13
2023-10-12 17:46:43 +08:00
DeviceType_DeviceType_Alarm DeviceType = 14
2023-10-13 09:29:43 +08:00
DeviceType_DeviceType_Psd DeviceType = 15
2023-10-13 15:26:25 +08:00
DeviceType_DeviceType_Station DeviceType = 16
DeviceType_DeviceType_Mkx DeviceType = 17
2023-10-20 13:13:44 +08:00
DeviceType_DeviceType_Key DeviceType = 18
DeviceType_DeviceType_Platform DeviceType = 19
// 信号机故障报警仪
DeviceType_DeviceType_SignalFaultAlarm DeviceType = 20
// 断路器
DeviceType_DeviceType_Breakers DeviceType = 21
// 电源屏
2023-12-29 17:58:39 +08:00
DeviceType_DeviceType_PowerScreen DeviceType = 22
// 进路
DeviceType_DeviceType_Route DeviceType = 23 //--------ISCS 编号[300,500]------
2023-12-19 17:13:27 +08:00
// ISCS门磁
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_DoorSensor DeviceType = 323
2023-12-19 17:13:27 +08:00
// ISCS进闸机
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_EntranceGate DeviceType = 324
2023-12-19 17:13:27 +08:00
// ISCS出闸机
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_ExitGate DeviceType = 325
2023-12-19 17:13:27 +08:00
// ISCS双向闸机
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_TwoWayGate DeviceType = 326
2023-12-19 17:13:27 +08:00
// ISCS自动售票机
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_TicketVendingMachine DeviceType = 327
2023-12-19 17:13:27 +08:00
// ISCS半自动售票机
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_SemiAutoTicketMachine DeviceType = 328
2023-12-19 17:13:27 +08:00
// ISCS验票机
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_TicketCheckingMachine DeviceType = 329
2023-12-19 17:13:27 +08:00
// ISCS空气幕
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_AirCurtain DeviceType = 330
2023-12-19 17:13:27 +08:00
// ISCS冷水机组
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_ChillerUnit DeviceType = 331
2023-12-19 17:13:27 +08:00
// ISCS人防门
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_CivilDefenseDoor DeviceType = 332
2023-12-19 17:13:27 +08:00
// ISCS自动扶梯
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_Escalator DeviceType = 333
2023-12-19 17:13:27 +08:00
// ISCS垂直电梯
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_Elevator DeviceType = 334
2023-12-19 17:13:27 +08:00
// ISCS应急照明
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_EmergencyLighting DeviceType = 335
2023-12-19 17:13:27 +08:00
// ISCS风机设备(风机按用途作用又分很多子类型)
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_Fan DeviceType = 336
2023-12-19 17:13:27 +08:00
// ISCS空调(包括 空调器、组合式空调等)
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_AirConditioner DeviceType = 337
2023-12-19 17:13:27 +08:00
// ISCS流量开关
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_FlowSwitch DeviceType = 338
2023-12-19 17:13:27 +08:00
// ISCS照明导向
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_LightingGuidance DeviceType = 339
2023-12-19 17:13:27 +08:00
// ISCS电源开关导向
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_PowerSwitchGuidance DeviceType = 340
2023-12-19 17:13:27 +08:00
// ISCS扶梯导向
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_EscalatorGuidance DeviceType = 341
2023-12-19 17:13:27 +08:00
// ISCS闸机导向
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_TicketGateGuidance DeviceType = 342
2023-12-19 17:13:27 +08:00
// ISCS区间疏散导向指示
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_SectionEvacuationGuidance DeviceType = 343
2023-12-19 17:13:27 +08:00
// ISCS交换机
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_NetworkSwitch DeviceType = 344
2023-12-19 17:13:27 +08:00
// ISCS PLC控制器
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_PlcController DeviceType = 345
2023-12-19 17:13:27 +08:00
// ISCS 水泵(包括 冷冻水泵、冷却水循环泵、超声波型水泵、浮球型水泵、火警相关水泵等)
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_WaterPump DeviceType = 346
2023-12-19 17:13:27 +08:00
// ISCS 水池水箱
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_WaterTank DeviceType = 347
2023-12-19 17:13:27 +08:00
// ISCS 净化装置
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_PurificationDevice DeviceType = 348
2023-12-19 17:13:27 +08:00
// ISCS 温湿度传感器
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_ThSensor DeviceType = 349
2023-12-19 17:13:27 +08:00
// ISCS CO2传感器
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_CO2Sensor DeviceType = 350
2023-12-19 17:13:27 +08:00
// ISCS 水温传感器
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_WaterTSensor DeviceType = 351
2023-12-19 17:13:27 +08:00
// ISCS 压力传感器
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_PressureSensor DeviceType = 352
2023-12-19 17:13:27 +08:00
// ISCS 流量传感器
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_FlowSensor DeviceType = 353
2023-12-19 17:13:27 +08:00
// ISCS 温度传感器
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_TemperatureSensor DeviceType = 354
2023-12-19 17:13:27 +08:00
// ISCS 冷却塔
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_CoolingTower DeviceType = 356
2023-12-19 17:13:27 +08:00
// ISCS 水处理器
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_WaterProcessor DeviceType = 357
2023-12-19 17:13:27 +08:00
// ISCS 主机
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_NetworkHost DeviceType = 358
2023-12-19 17:13:27 +08:00
// ISCS 烟感
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_SmokeDetector DeviceType = 359
2023-12-19 17:13:27 +08:00
// ISCS 温感
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_TemperatureDetector DeviceType = 360
2023-12-19 17:13:27 +08:00
// ISCS 手动火灾报警按钮
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_ManualFireAlarmButton DeviceType = 361
2023-12-19 17:13:27 +08:00
// ISCS 气体灭火
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_GasFireExtinguisher DeviceType = 362
2023-12-19 17:13:27 +08:00
// ISCS 警铃
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_AlarmBell DeviceType = 363
2023-12-19 17:13:27 +08:00
// ISCS 防火卷帘(包括 隔断型防火卷帘、疏散型防火卷帘)
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_FireRollerShutter DeviceType = 364
2023-12-19 17:13:27 +08:00
// ISCS 火警ACS联动
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_FasAcs DeviceType = 365
2023-12-19 17:13:27 +08:00
// ISCS 火警AFC联动
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_FasAfc DeviceType = 366
2023-12-19 17:13:27 +08:00
// ISCS 非消防电源
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_NonFirePowerSource DeviceType = 367
2023-12-19 17:13:27 +08:00
// ISCS 水流指示器
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_WaterFlowIndicator DeviceType = 368
2023-12-19 17:13:27 +08:00
// ISCS 启泵按钮
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_PumpStartButton DeviceType = 369
2023-12-19 17:13:27 +08:00
// ISCS 感温电缆
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_TemperatureSensingCable DeviceType = 370
2023-12-19 17:13:27 +08:00
// ISCS 防火阀
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_FireDamper DeviceType = 371
2023-12-19 17:13:27 +08:00
// ISCS 电动防烟防火
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_ElectricSmokeFireDamper DeviceType = 372
2023-12-19 17:13:27 +08:00
// ISCS 火灾互联互通信号
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_FireInterconnectionSignal DeviceType = 373
2023-12-19 17:13:27 +08:00
// ISCS 防淹门
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_FloodGate DeviceType = 374
2023-12-22 15:00:34 +08:00
// ISCS 线柜
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_WireCabinet DeviceType = 375
2023-12-19 17:13:27 +08:00
// ISCS 电力断路器
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_CircuitBreaker DeviceType = 376
2023-12-19 17:13:27 +08:00
// ISCS 电力整流器
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_Rectifier DeviceType = 377
2023-12-19 17:13:27 +08:00
// ISCS 电力手车
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_HandcartSwitch DeviceType = 378
2023-12-19 17:13:27 +08:00
// ISCS 变压器
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_VoltageTransformer DeviceType = 379
2023-12-19 17:13:27 +08:00
// ISCS 三工位隔离开关
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_ThreePositionSwitch DeviceType = 380
2023-12-19 17:13:27 +08:00
// ISCS 避雷器
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_LightningArrester DeviceType = 381
2023-12-19 17:13:27 +08:00
// ISCS 隔离开关
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_Disconnector DeviceType = 382
2023-12-19 17:13:27 +08:00
// ISCS 管线
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_Pipe DeviceType = 383
2023-12-19 17:13:27 +08:00
// ISCS 管件
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_PipeFitting DeviceType = 384
2023-12-19 17:13:27 +08:00
// ISCS 电源
2023-12-20 11:28:15 +08:00
DeviceType_DeviceType_PowerSource DeviceType = 385
// ISCS 接地装置
DeviceType_DeviceType_EarthingDevice DeviceType = 386
2023-12-25 13:40:00 +08:00
// ISCS 风亭
DeviceType_DeviceType_AirPavilion DeviceType = 387
// ISCS 阀门
DeviceType_DeviceType_Valve DeviceType = 388
2023-12-25 10:07:59 +08:00
// ISCS 混合静压室
2023-12-25 13:40:00 +08:00
DeviceType_DeviceType_GasMixingChamber DeviceType = 389
2023-12-25 10:07:59 +08:00
// ISCS 组合式空调
2023-12-25 13:40:00 +08:00
DeviceType_DeviceType_CombinationAirConditioner DeviceType = 390
2023-12-25 10:07:59 +08:00
// ISCS 净化装置
2023-12-25 13:40:00 +08:00
DeviceType_DeviceType_AirPurificationDevice DeviceType = 391
2023-12-29 17:00:26 +08:00
// ISCS 环境(正常空气、有害烟雾、温度、湿度等)
DeviceType_DeviceType_Environment DeviceType = 392
)
// Enum value maps for DeviceType.
var (
DeviceType_name = map[int32]string{
2023-12-20 11:28:15 +08:00
0: "DeviceType_Unknown",
1: "DeviceType_PhysicalSection",
2: "DeviceType_CheckPoint",
3: "DeviceType_Turnout",
4: "DeviceType_Signal",
5: "DeviceType_Transponder",
6: "DeviceType_Slope",
7: "DeviceType_SectionalCurvature",
8: "DeviceType_Link",
9: "DeviceType_LinkNode",
10: "DeviceType_Relay",
11: "DeviceType_PhaseFailureProtector",
12: "DeviceType_Button",
13: "DeviceType_Light",
14: "DeviceType_Alarm",
15: "DeviceType_Psd",
16: "DeviceType_Station",
17: "DeviceType_Mkx",
18: "DeviceType_Key",
19: "DeviceType_Platform",
20: "DeviceType_SignalFaultAlarm",
21: "DeviceType_Breakers",
22: "DeviceType_PowerScreen",
2023-12-29 17:58:39 +08:00
23: "DeviceType_Route",
2023-12-20 11:28:15 +08:00
323: "DeviceType_DoorSensor",
324: "DeviceType_EntranceGate",
325: "DeviceType_ExitGate",
326: "DeviceType_TwoWayGate",
327: "DeviceType_TicketVendingMachine",
328: "DeviceType_SemiAutoTicketMachine",
329: "DeviceType_TicketCheckingMachine",
330: "DeviceType_AirCurtain",
331: "DeviceType_ChillerUnit",
332: "DeviceType_CivilDefenseDoor",
333: "DeviceType_Escalator",
334: "DeviceType_Elevator",
335: "DeviceType_EmergencyLighting",
336: "DeviceType_Fan",
337: "DeviceType_AirConditioner",
338: "DeviceType_FlowSwitch",
339: "DeviceType_LightingGuidance",
340: "DeviceType_PowerSwitchGuidance",
341: "DeviceType_EscalatorGuidance",
342: "DeviceType_TicketGateGuidance",
343: "DeviceType_SectionEvacuationGuidance",
344: "DeviceType_NetworkSwitch",
345: "DeviceType_PlcController",
346: "DeviceType_WaterPump",
347: "DeviceType_WaterTank",
348: "DeviceType_PurificationDevice",
349: "DeviceType_ThSensor",
350: "DeviceType_CO2Sensor",
351: "DeviceType_WaterTSensor",
352: "DeviceType_PressureSensor",
353: "DeviceType_FlowSensor",
354: "DeviceType_TemperatureSensor",
356: "DeviceType_CoolingTower",
357: "DeviceType_WaterProcessor",
358: "DeviceType_NetworkHost",
359: "DeviceType_SmokeDetector",
360: "DeviceType_TemperatureDetector",
361: "DeviceType_ManualFireAlarmButton",
362: "DeviceType_GasFireExtinguisher",
363: "DeviceType_AlarmBell",
364: "DeviceType_FireRollerShutter",
365: "DeviceType_FasAcs",
366: "DeviceType_FasAfc",
367: "DeviceType_NonFirePowerSource",
368: "DeviceType_WaterFlowIndicator",
369: "DeviceType_PumpStartButton",
370: "DeviceType_TemperatureSensingCable",
371: "DeviceType_FireDamper",
372: "DeviceType_ElectricSmokeFireDamper",
373: "DeviceType_FireInterconnectionSignal",
374: "DeviceType_FloodGate",
375: "DeviceType_WireCabinet",
376: "DeviceType_CircuitBreaker",
377: "DeviceType_Rectifier",
378: "DeviceType_HandcartSwitch",
379: "DeviceType_VoltageTransformer",
380: "DeviceType_ThreePositionSwitch",
381: "DeviceType_LightningArrester",
382: "DeviceType_Disconnector",
383: "DeviceType_Pipe",
384: "DeviceType_PipeFitting",
385: "DeviceType_PowerSource",
386: "DeviceType_EarthingDevice",
2023-12-25 13:40:00 +08:00
387: "DeviceType_AirPavilion",
388: "DeviceType_Valve",
389: "DeviceType_GasMixingChamber",
390: "DeviceType_CombinationAirConditioner",
391: "DeviceType_AirPurificationDevice",
2023-12-29 17:00:26 +08:00
392: "DeviceType_Environment",
}
DeviceType_value = map[string]int32{
2023-12-19 17:13:27 +08:00
"DeviceType_Unknown": 0,
"DeviceType_PhysicalSection": 1,
"DeviceType_CheckPoint": 2,
"DeviceType_Turnout": 3,
"DeviceType_Signal": 4,
"DeviceType_Transponder": 5,
"DeviceType_Slope": 6,
"DeviceType_SectionalCurvature": 7,
"DeviceType_Link": 8,
"DeviceType_LinkNode": 9,
"DeviceType_Relay": 10,
"DeviceType_PhaseFailureProtector": 11,
"DeviceType_Button": 12,
"DeviceType_Light": 13,
"DeviceType_Alarm": 14,
"DeviceType_Psd": 15,
"DeviceType_Station": 16,
"DeviceType_Mkx": 17,
"DeviceType_Key": 18,
"DeviceType_Platform": 19,
"DeviceType_SignalFaultAlarm": 20,
"DeviceType_Breakers": 21,
"DeviceType_PowerScreen": 22,
2023-12-29 17:58:39 +08:00
"DeviceType_Route": 23,
2023-12-20 11:28:15 +08:00
"DeviceType_DoorSensor": 323,
"DeviceType_EntranceGate": 324,
"DeviceType_ExitGate": 325,
"DeviceType_TwoWayGate": 326,
"DeviceType_TicketVendingMachine": 327,
"DeviceType_SemiAutoTicketMachine": 328,
"DeviceType_TicketCheckingMachine": 329,
"DeviceType_AirCurtain": 330,
"DeviceType_ChillerUnit": 331,
"DeviceType_CivilDefenseDoor": 332,
"DeviceType_Escalator": 333,
"DeviceType_Elevator": 334,
"DeviceType_EmergencyLighting": 335,
"DeviceType_Fan": 336,
"DeviceType_AirConditioner": 337,
"DeviceType_FlowSwitch": 338,
"DeviceType_LightingGuidance": 339,
"DeviceType_PowerSwitchGuidance": 340,
"DeviceType_EscalatorGuidance": 341,
"DeviceType_TicketGateGuidance": 342,
"DeviceType_SectionEvacuationGuidance": 343,
"DeviceType_NetworkSwitch": 344,
"DeviceType_PlcController": 345,
"DeviceType_WaterPump": 346,
"DeviceType_WaterTank": 347,
"DeviceType_PurificationDevice": 348,
"DeviceType_ThSensor": 349,
"DeviceType_CO2Sensor": 350,
"DeviceType_WaterTSensor": 351,
"DeviceType_PressureSensor": 352,
"DeviceType_FlowSensor": 353,
"DeviceType_TemperatureSensor": 354,
"DeviceType_CoolingTower": 356,
"DeviceType_WaterProcessor": 357,
"DeviceType_NetworkHost": 358,
"DeviceType_SmokeDetector": 359,
"DeviceType_TemperatureDetector": 360,
"DeviceType_ManualFireAlarmButton": 361,
"DeviceType_GasFireExtinguisher": 362,
"DeviceType_AlarmBell": 363,
"DeviceType_FireRollerShutter": 364,
"DeviceType_FasAcs": 365,
"DeviceType_FasAfc": 366,
"DeviceType_NonFirePowerSource": 367,
"DeviceType_WaterFlowIndicator": 368,
"DeviceType_PumpStartButton": 369,
"DeviceType_TemperatureSensingCable": 370,
"DeviceType_FireDamper": 371,
"DeviceType_ElectricSmokeFireDamper": 372,
"DeviceType_FireInterconnectionSignal": 373,
"DeviceType_FloodGate": 374,
"DeviceType_WireCabinet": 375,
"DeviceType_CircuitBreaker": 376,
"DeviceType_Rectifier": 377,
"DeviceType_HandcartSwitch": 378,
"DeviceType_VoltageTransformer": 379,
"DeviceType_ThreePositionSwitch": 380,
"DeviceType_LightningArrester": 381,
"DeviceType_Disconnector": 382,
"DeviceType_Pipe": 383,
"DeviceType_PipeFitting": 384,
"DeviceType_PowerSource": 385,
"DeviceType_EarthingDevice": 386,
2023-12-25 13:40:00 +08:00
"DeviceType_AirPavilion": 387,
"DeviceType_Valve": 388,
"DeviceType_GasMixingChamber": 389,
"DeviceType_CombinationAirConditioner": 390,
"DeviceType_AirPurificationDevice": 391,
2023-12-29 17:00:26 +08:00
"DeviceType_Environment": 392,
}
)
func (x DeviceType) Enum() *DeviceType {
p := new(DeviceType)
*p = x
return p
}
func (x DeviceType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (DeviceType) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[0].Descriptor()
}
func (DeviceType) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[0]
}
func (x DeviceType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use DeviceType.Descriptor instead.
func (DeviceType) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{0}
}
type Port int32
const (
Port_None Port = 0 //没有端口/未指定端口
Port_A Port = 1
Port_B Port = 2
Port_C Port = 3
2023-12-19 17:13:27 +08:00
Port_D Port = 4
)
// Enum value maps for Port.
var (
Port_name = map[int32]string{
0: "None",
1: "A",
2: "B",
3: "C",
2023-12-19 17:13:27 +08:00
4: "D",
}
Port_value = map[string]int32{
"None": 0,
"A": 1,
"B": 2,
"C": 3,
2023-12-19 17:13:27 +08:00
"D": 4,
}
)
func (x Port) Enum() *Port {
p := new(Port)
*p = x
return p
}
func (x Port) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Port) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[1].Descriptor()
}
func (Port) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[1]
}
func (x Port) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Port.Descriptor instead.
func (Port) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{1}
}
// 左右行
type Direction int32
const (
Direction_LEFT Direction = 0
Direction_RIGHT Direction = 1
)
// Enum value maps for Direction.
var (
Direction_name = map[int32]string{
0: "LEFT",
1: "RIGHT",
}
Direction_value = map[string]int32{
"LEFT": 0,
"RIGHT": 1,
}
)
func (x Direction) Enum() *Direction {
p := new(Direction)
*p = x
return p
}
func (x Direction) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Direction) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[2].Descriptor()
}
func (Direction) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[2]
}
func (x Direction) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Direction.Descriptor instead.
func (Direction) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{2}
}
// 检测点类型
type CheckPointType int32
const (
CheckPointType_Boundary CheckPointType = 0 //区段边界
CheckPointType_AxleCounter CheckPointType = 1 //计轴器
CheckPointType_InsulatedJoint CheckPointType = 2 //绝缘节
)
// Enum value maps for CheckPointType.
var (
CheckPointType_name = map[int32]string{
0: "Boundary",
1: "AxleCounter",
2: "InsulatedJoint",
}
CheckPointType_value = map[string]int32{
"Boundary": 0,
"AxleCounter": 1,
"InsulatedJoint": 2,
}
)
func (x CheckPointType) Enum() *CheckPointType {
p := new(CheckPointType)
*p = x
return p
}
func (x CheckPointType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (CheckPointType) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[3].Descriptor()
}
func (CheckPointType) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[3]
}
func (x CheckPointType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use CheckPointType.Descriptor instead.
func (CheckPointType) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{3}
}
type Turnout_SwitchMachineType int32
const (
Turnout_Unknown Turnout_SwitchMachineType = 0
Turnout_ZDJ9_Single Turnout_SwitchMachineType = 1
Turnout_ZDJ9_Double Turnout_SwitchMachineType = 2
)
// Enum value maps for Turnout_SwitchMachineType.
var (
Turnout_SwitchMachineType_name = map[int32]string{
0: "Unknown",
1: "ZDJ9_Single",
2: "ZDJ9_Double",
}
Turnout_SwitchMachineType_value = map[string]int32{
"Unknown": 0,
"ZDJ9_Single": 1,
"ZDJ9_Double": 2,
}
)
func (x Turnout_SwitchMachineType) Enum() *Turnout_SwitchMachineType {
p := new(Turnout_SwitchMachineType)
*p = x
return p
}
func (x Turnout_SwitchMachineType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Turnout_SwitchMachineType) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[4].Descriptor()
}
func (Turnout_SwitchMachineType) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[4]
}
func (x Turnout_SwitchMachineType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Turnout_SwitchMachineType.Descriptor instead.
func (Turnout_SwitchMachineType) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{4, 0}
}
2023-10-20 09:37:31 +08:00
// 信号机模型类型枚举
// 从左向右,最左边为靠近灯座的灯
type Signal_Model int32
const (
2023-11-16 17:04:23 +08:00
Signal_HL Signal_Model = 0 //2XH-1 红绿
Signal_HLU_FU Signal_Model = 1 //2XH-1 红绿黄,封黄灯,无引导
Signal_HLU_DU_YY Signal_Model = 2 //3XH-1 红绿黄,不封灯,有单黄,带引导
Signal_HLU_YY Signal_Model = 3 //3XH-2或JDXH 红绿黄,不封灯,无单黄,带引导
Signal_HLU_FL_DU_YY Signal_Model = 4 //3XH-3 红绿黄,封绿灯,有单黄,带引导
Signal_HLU_DU Signal_Model = 5 //3XH-4 红绿黄,不封灯,有单黄,无引导
Signal_AB Signal_Model = 6 //DXCH 蓝白
Signal_HBU_DU Signal_Model = 7 //JCKXH 红白黄,不封灯,有单黄,无引导
2023-10-20 09:37:31 +08:00
)
// Enum value maps for Signal_Model.
var (
Signal_Model_name = map[int32]string{
2023-11-16 17:04:23 +08:00
0: "HL",
1: "HLU_FU",
2: "HLU_DU_YY",
3: "HLU_YY",
4: "HLU_FL_DU_YY",
5: "HLU_DU",
6: "AB",
7: "HBU_DU",
2023-10-20 09:37:31 +08:00
}
Signal_Model_value = map[string]int32{
2023-11-16 17:04:23 +08:00
"HL": 0,
"HLU_FU": 1,
"HLU_DU_YY": 2,
"HLU_YY": 3,
"HLU_FL_DU_YY": 4,
"HLU_DU": 5,
"AB": 6,
"HBU_DU": 7,
2023-10-20 09:37:31 +08:00
}
)
func (x Signal_Model) Enum() *Signal_Model {
p := new(Signal_Model)
*p = x
return p
}
func (x Signal_Model) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Signal_Model) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[5].Descriptor()
}
func (Signal_Model) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[5]
}
func (x Signal_Model) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Signal_Model.Descriptor instead.
func (Signal_Model) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{5, 0}
2023-10-20 09:37:31 +08:00
}
2023-11-23 11:19:39 +08:00
type Transponder_Type int32
const (
Transponder_FB Transponder_Type = 0 // 固定应答器
Transponder_WB Transponder_Type = 1 // 轮径校正应答器
Transponder_DB Transponder_Type = 2 // 休眠唤醒应答器
Transponder_VB Transponder_Type = 3 // 主信号应答器
Transponder_IB Transponder_Type = 4 // 预告应答器
)
// Enum value maps for Transponder_Type.
var (
Transponder_Type_name = map[int32]string{
0: "FB",
1: "WB",
2: "DB",
3: "VB",
4: "IB",
}
Transponder_Type_value = map[string]int32{
"FB": 0,
"WB": 1,
"DB": 2,
"VB": 3,
"IB": 4,
}
)
func (x Transponder_Type) Enum() *Transponder_Type {
p := new(Transponder_Type)
*p = x
return p
}
func (x Transponder_Type) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Transponder_Type) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[6].Descriptor()
}
func (Transponder_Type) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[6]
}
func (x Transponder_Type) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Transponder_Type.Descriptor instead.
func (Transponder_Type) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{7, 0}
}
type Relay_Model int32
const (
Relay_Unknown Relay_Model = 0
Relay_JPXC_1000 Relay_Model = 1
Relay_JPXC_1700 Relay_Model = 2
Relay_JWJXC_480 Relay_Model = 3
Relay_JWJXC_H125_80 Relay_Model = 4
Relay_JWXC_1700 Relay_Model = 5
Relay_JWXC_H340 Relay_Model = 6
Relay_JYJXC_160_260 Relay_Model = 7
Relay_JZXC_H18 Relay_Model = 8
)
// Enum value maps for Relay_Model.
var (
Relay_Model_name = map[int32]string{
0: "Unknown",
1: "JPXC_1000",
2: "JPXC_1700",
3: "JWJXC_480",
4: "JWJXC_H125_80",
5: "JWXC_1700",
6: "JWXC_H340",
7: "JYJXC_160_260",
8: "JZXC_H18",
}
Relay_Model_value = map[string]int32{
"Unknown": 0,
"JPXC_1000": 1,
"JPXC_1700": 2,
"JWJXC_480": 3,
"JWJXC_H125_80": 4,
"JWXC_1700": 5,
"JWXC_H340": 6,
"JYJXC_160_260": 7,
"JZXC_H18": 8,
}
)
func (x Relay_Model) Enum() *Relay_Model {
p := new(Relay_Model)
*p = x
return p
}
func (x Relay_Model) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Relay_Model) Descriptor() protoreflect.EnumDescriptor {
2023-11-23 11:19:39 +08:00
return file_model_proto_enumTypes[7].Descriptor()
}
func (Relay_Model) Type() protoreflect.EnumType {
2023-11-23 11:19:39 +08:00
return &file_model_proto_enumTypes[7]
}
func (x Relay_Model) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Relay_Model.Descriptor instead.
func (Relay_Model) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{13, 0}
}
type Button_ButtonType int32
const (
Button_Unknown Button_ButtonType = 0
Button_NO_Reset_Press Button_ButtonType = 1
Button_NO_Reset_Up Button_ButtonType = 2
Button_Reset_Press Button_ButtonType = 3
Button_Reset_Up Button_ButtonType = 4
2023-10-12 13:47:57 +08:00
Button_Key_Knob Button_ButtonType = 5
)
// Enum value maps for Button_ButtonType.
var (
Button_ButtonType_name = map[int32]string{
0: "Unknown",
1: "NO_Reset_Press",
2: "NO_Reset_Up",
3: "Reset_Press",
4: "Reset_Up",
2023-10-12 13:47:57 +08:00
5: "Key_Knob",
}
Button_ButtonType_value = map[string]int32{
"Unknown": 0,
"NO_Reset_Press": 1,
"NO_Reset_Up": 2,
"Reset_Press": 3,
"Reset_Up": 4,
2023-10-12 13:47:57 +08:00
"Key_Knob": 5,
}
)
func (x Button_ButtonType) Enum() *Button_ButtonType {
p := new(Button_ButtonType)
*p = x
return p
}
func (x Button_ButtonType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Button_ButtonType) Descriptor() protoreflect.EnumDescriptor {
2023-11-23 11:19:39 +08:00
return file_model_proto_enumTypes[8].Descriptor()
}
func (Button_ButtonType) Type() protoreflect.EnumType {
2023-11-23 11:19:39 +08:00
return &file_model_proto_enumTypes[8]
}
func (x Button_ButtonType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Button_ButtonType.Descriptor instead.
func (Button_ButtonType) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{16, 0}
}
2023-10-13 15:26:25 +08:00
type Light_LightAspect int32
const (
Light_L Light_LightAspect = 0 //绿灯
Light_H Light_LightAspect = 1 //红灯
Light_U Light_LightAspect = 2 //黄灯
Light_HU Light_LightAspect = 3 //红黄灯
Light_B Light_LightAspect = 4 //白灯
Light_A Light_LightAspect = 5 //蓝灯
)
// Enum value maps for Light_LightAspect.
var (
Light_LightAspect_name = map[int32]string{
0: "L",
1: "H",
2: "U",
3: "HU",
4: "B",
5: "A",
}
Light_LightAspect_value = map[string]int32{
"L": 0,
"H": 1,
"U": 2,
"HU": 3,
"B": 4,
"A": 5,
}
)
func (x Light_LightAspect) Enum() *Light_LightAspect {
p := new(Light_LightAspect)
*p = x
return p
}
func (x Light_LightAspect) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Light_LightAspect) Descriptor() protoreflect.EnumDescriptor {
2023-11-23 11:19:39 +08:00
return file_model_proto_enumTypes[9].Descriptor()
2023-10-13 15:26:25 +08:00
}
func (Light_LightAspect) Type() protoreflect.EnumType {
2023-11-23 11:19:39 +08:00
return &file_model_proto_enumTypes[9]
2023-10-13 15:26:25 +08:00
}
func (x Light_LightAspect) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Light_LightAspect.Descriptor instead.
func (Light_LightAspect) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{17, 0}
2023-10-13 15:26:25 +08:00
}
2023-12-29 17:58:39 +08:00
type Platform_PlatformDirection int32
const (
Platform_Unknown Platform_PlatformDirection = 0
Platform_Up Platform_PlatformDirection = 1 // 上行
Platform_Down Platform_PlatformDirection = 2 // 下行
)
// Enum value maps for Platform_PlatformDirection.
var (
Platform_PlatformDirection_name = map[int32]string{
0: "Unknown",
1: "Up",
2: "Down",
}
Platform_PlatformDirection_value = map[string]int32{
"Unknown": 0,
"Up": 1,
"Down": 2,
}
)
func (x Platform_PlatformDirection) Enum() *Platform_PlatformDirection {
p := new(Platform_PlatformDirection)
*p = x
return p
}
func (x Platform_PlatformDirection) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Platform_PlatformDirection) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[10].Descriptor()
}
func (Platform_PlatformDirection) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[10]
}
func (x Platform_PlatformDirection) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Platform_PlatformDirection.Descriptor instead.
func (Platform_PlatformDirection) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{24, 0}
}
type Route_RouteType int32
const (
Route_RECEIVING Route_RouteType = 0
Route_DEPARTURE Route_RouteType = 1
Route_SHUNTING Route_RouteType = 2
Route_PASS Route_RouteType = 3
Route_LONG_SHUNTING Route_RouteType = 4
)
// Enum value maps for Route_RouteType.
var (
Route_RouteType_name = map[int32]string{
0: "RECEIVING",
1: "DEPARTURE",
2: "SHUNTING",
3: "PASS",
4: "LONG_SHUNTING",
}
Route_RouteType_value = map[string]int32{
"RECEIVING": 0,
"DEPARTURE": 1,
"SHUNTING": 2,
"PASS": 3,
"LONG_SHUNTING": 4,
}
)
func (x Route_RouteType) Enum() *Route_RouteType {
p := new(Route_RouteType)
*p = x
return p
}
func (x Route_RouteType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Route_RouteType) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[11].Descriptor()
}
func (Route_RouteType) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[11]
}
func (x Route_RouteType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Route_RouteType.Descriptor instead.
func (Route_RouteType) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{32, 0}
}
2023-12-25 17:31:35 +08:00
// 风亭子类型
2023-12-25 13:40:00 +08:00
type AirPavilion_Type int32
const (
AirPavilion_ExhaustPavilion AirPavilion_Type = 0 //排风亭
AirPavilion_AirSupplyPavilion AirPavilion_Type = 1 //送风亭
)
// Enum value maps for AirPavilion_Type.
var (
AirPavilion_Type_name = map[int32]string{
0: "ExhaustPavilion",
1: "AirSupplyPavilion",
}
AirPavilion_Type_value = map[string]int32{
"ExhaustPavilion": 0,
"AirSupplyPavilion": 1,
}
)
func (x AirPavilion_Type) Enum() *AirPavilion_Type {
p := new(AirPavilion_Type)
*p = x
return p
}
func (x AirPavilion_Type) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (AirPavilion_Type) Descriptor() protoreflect.EnumDescriptor {
2024-01-05 11:30:39 +08:00
return file_model_proto_enumTypes[12].Descriptor()
2023-12-25 13:40:00 +08:00
}
func (AirPavilion_Type) Type() protoreflect.EnumType {
2024-01-05 11:30:39 +08:00
return &file_model_proto_enumTypes[12]
2023-12-25 13:40:00 +08:00
}
func (x AirPavilion_Type) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use AirPavilion_Type.Descriptor instead.
func (AirPavilion_Type) EnumDescriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{46, 0}
2023-12-25 13:40:00 +08:00
}
2023-12-25 17:31:35 +08:00
// 阀门子类型
2023-12-25 13:40:00 +08:00
type Valve_Type int32
const (
2023-12-25 17:31:35 +08:00
Valve_ElectricControlValve Valve_Type = 0 //电动调节阀
Valve_ElectricAirValve Valve_Type = 1 //电动风阀
Valve_CombinationAirValve Valve_Type = 2 //组合式风阀
Valve_ElectricButterflyValve Valve_Type = 3 //电动蝶阀
2023-12-25 13:40:00 +08:00
)
// Enum value maps for Valve_Type.
var (
Valve_Type_name = map[int32]string{
0: "ElectricControlValve",
1: "ElectricAirValve",
2023-12-25 17:31:35 +08:00
2: "CombinationAirValve",
3: "ElectricButterflyValve",
2023-12-25 13:40:00 +08:00
}
Valve_Type_value = map[string]int32{
2023-12-25 17:31:35 +08:00
"ElectricControlValve": 0,
"ElectricAirValve": 1,
"CombinationAirValve": 2,
"ElectricButterflyValve": 3,
2023-12-25 13:40:00 +08:00
}
)
func (x Valve_Type) Enum() *Valve_Type {
p := new(Valve_Type)
*p = x
return p
}
func (x Valve_Type) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Valve_Type) Descriptor() protoreflect.EnumDescriptor {
2024-01-05 11:30:39 +08:00
return file_model_proto_enumTypes[13].Descriptor()
2023-12-25 13:40:00 +08:00
}
func (Valve_Type) Type() protoreflect.EnumType {
2024-01-05 11:30:39 +08:00
return &file_model_proto_enumTypes[13]
2023-12-25 13:40:00 +08:00
}
func (x Valve_Type) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Valve_Type.Descriptor instead.
func (Valve_Type) EnumDescriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{47, 0}
2023-12-25 13:40:00 +08:00
}
2023-12-25 17:31:35 +08:00
// 风机子类型
type Fan_Type int32
const (
Fan_CommonFan Fan_Type = 0 //一般风机(普通风机、硬线风机、射流风机、排烟风机、正压送风机)
Fan_FcBypassFan Fan_Type = 1 //变频旁路风机(回排风机)
Fan_SoftStartFan Fan_Type = 2 //软启风机(软启风机、隧道风机)
Fan_HighLowSpeedFan Fan_Type = 3 //双速风机
)
// Enum value maps for Fan_Type.
var (
Fan_Type_name = map[int32]string{
0: "CommonFan",
1: "FcBypassFan",
2: "SoftStartFan",
3: "HighLowSpeedFan",
}
Fan_Type_value = map[string]int32{
"CommonFan": 0,
"FcBypassFan": 1,
"SoftStartFan": 2,
"HighLowSpeedFan": 3,
}
)
func (x Fan_Type) Enum() *Fan_Type {
p := new(Fan_Type)
*p = x
return p
}
func (x Fan_Type) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Fan_Type) Descriptor() protoreflect.EnumDescriptor {
2024-01-05 11:30:39 +08:00
return file_model_proto_enumTypes[14].Descriptor()
2023-12-25 17:31:35 +08:00
}
func (Fan_Type) Type() protoreflect.EnumType {
2024-01-05 11:30:39 +08:00
return &file_model_proto_enumTypes[14]
2023-12-25 17:31:35 +08:00
}
func (x Fan_Type) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Fan_Type.Descriptor instead.
func (Fan_Type) EnumDescriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{52, 0}
2023-12-25 17:31:35 +08:00
}
type Repository struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
PhysicalSections []*PhysicalSection `protobuf:"bytes,3,rep,name=physicalSections,proto3" json:"physicalSections,omitempty"`
CheckPoints []*CheckPoint `protobuf:"bytes,4,rep,name=checkPoints,proto3" json:"checkPoints,omitempty"`
Turnouts []*Turnout `protobuf:"bytes,5,rep,name=turnouts,proto3" json:"turnouts,omitempty"`
Signals []*Signal `protobuf:"bytes,6,rep,name=signals,proto3" json:"signals,omitempty"`
Transponders []*Transponder `protobuf:"bytes,7,rep,name=transponders,proto3" json:"transponders,omitempty"`
Slopes []*Slope `protobuf:"bytes,8,rep,name=slopes,proto3" json:"slopes,omitempty"`
SectionalCurvatures []*SectionalCurvature `protobuf:"bytes,9,rep,name=sectionalCurvatures,proto3" json:"sectionalCurvatures,omitempty"`
KilometerConverts []*KilometerConvert `protobuf:"bytes,10,rep,name=kilometerConverts,proto3" json:"kilometerConverts,omitempty"`
Relays []*Relay `protobuf:"bytes,11,rep,name=relays,proto3" json:"relays,omitempty"`
PhaseFailureProtectors []*PhaseFailureProtector `protobuf:"bytes,12,rep,name=phaseFailureProtectors,proto3" json:"phaseFailureProtectors,omitempty"`
Buttons []*Button `protobuf:"bytes,13,rep,name=buttons,proto3" json:"buttons,omitempty"`
Psds []*Psd `protobuf:"bytes,14,rep,name=psds,proto3" json:"psds,omitempty"`
2023-10-13 15:26:25 +08:00
Lights []*Light `protobuf:"bytes,15,rep,name=lights,proto3" json:"lights,omitempty"`
Alarms []*Alarm `protobuf:"bytes,16,rep,name=alarms,proto3" json:"alarms,omitempty"`
Stations []*Station `protobuf:"bytes,17,rep,name=stations,proto3" json:"stations,omitempty"`
Mkxs []*Mkx `protobuf:"bytes,18,rep,name=mkxs,proto3" json:"mkxs,omitempty"`
Platforms []*Platform `protobuf:"bytes,19,rep,name=platforms,proto3" json:"platforms,omitempty"`
MainCoordinateSystem string `protobuf:"bytes,20,opt,name=mainCoordinateSystem,proto3" json:"mainCoordinateSystem,omitempty"`
2023-10-20 13:13:44 +08:00
Keys []*Key `protobuf:"bytes,21,rep,name=Keys,proto3" json:"Keys,omitempty"`
2023-10-30 16:21:23 +08:00
CentralizedStationRefs []*CentralizedStationRef `protobuf:"bytes,22,rep,name=CentralizedStationRefs,proto3" json:"CentralizedStationRefs,omitempty"`
2023-12-29 17:58:39 +08:00
Routes []*Route `protobuf:"bytes,23,rep,name=routes,proto3" json:"routes,omitempty"`
2023-12-20 11:23:49 +08:00
// ISCS 编号[300,500]
// ISCS管线
Pipes []*Pipe `protobuf:"bytes,300,rep,name=pipes,proto3" json:"pipes,omitempty"`
// ISCS管件
PipeFittings []*PipeFitting `protobuf:"bytes,301,rep,name=pipeFittings,proto3" json:"pipeFittings,omitempty"`
// ISCS断路器
CircuitBreakers []*CircuitBreaker `protobuf:"bytes,302,rep,name=circuitBreakers,proto3" json:"circuitBreakers,omitempty"`
// ISCS三工位开关
ThreePositionSwitches []*ThreePositionSwitch `protobuf:"bytes,303,rep,name=threePositionSwitches,proto3" json:"threePositionSwitches,omitempty"`
// ISCS手车
HandcartSwitches []*HandcartSwitch `protobuf:"bytes,304,rep,name=handcartSwitches,proto3" json:"handcartSwitches,omitempty"`
// ISCS整流器
Rectifiers []*Rectifier `protobuf:"bytes,305,rep,name=rectifiers,proto3" json:"rectifiers,omitempty"`
// ISCS隔离开关
Disconnectors []*Disconnector `protobuf:"bytes,306,rep,name=disconnectors,proto3" json:"disconnectors,omitempty"`
// ISCS变压器
VoltageTransformers []*VoltageTransformer `protobuf:"bytes,307,rep,name=voltageTransformers,proto3" json:"voltageTransformers,omitempty"`
// ISCS电源
PowerSources []*PowerSource `protobuf:"bytes,308,rep,name=powerSources,proto3" json:"powerSources,omitempty"`
// ISCS避雷器
LightningArresters []*LightningArrester `protobuf:"bytes,309,rep,name=lightningArresters,proto3" json:"lightningArresters,omitempty"`
// ISCS接地装置
EarthingDevices []*EarthingDevice `protobuf:"bytes,310,rep,name=earthingDevices,proto3" json:"earthingDevices,omitempty"`
2023-12-22 15:00:34 +08:00
// ISCS网络交换机
NetworkSwitches []*NetworkSwitch `protobuf:"bytes,311,rep,name=networkSwitches,proto3" json:"networkSwitches,omitempty"`
// ISCS线柜
WireCabinets []*WireCabinet `protobuf:"bytes,312,rep,name=wireCabinets,proto3" json:"wireCabinets,omitempty"`
2023-12-25 14:09:29 +08:00
// ISCS风亭
AirPavilions []*AirPavilion `protobuf:"bytes,313,rep,name=airPavilions,proto3" json:"airPavilions,omitempty"`
// ISCS阀门
Valves []*Valve `protobuf:"bytes,314,rep,name=valves,proto3" json:"valves,omitempty"`
// ISCS混合室静压箱
GasMixingChambers []*GasMixingChamber `protobuf:"bytes,315,rep,name=gasMixingChambers,proto3" json:"gasMixingChambers,omitempty"`
// ISCS组合式空调
CombinationAirConditioners []*CombinationAirConditioner `protobuf:"bytes,316,rep,name=combinationAirConditioners,proto3" json:"combinationAirConditioners,omitempty"`
// ISCS净化装置
AirPurificationDevices []*AirPurificationDevice `protobuf:"bytes,317,rep,name=airPurificationDevices,proto3" json:"airPurificationDevices,omitempty"`
// ISCS空气幕
AirCurtains []*AirCurtain `protobuf:"bytes,318,rep,name=airCurtains,proto3" json:"airCurtains,omitempty"`
// ISCS风机
Fans []*Fan `protobuf:"bytes,319,rep,name=fans,proto3" json:"fans,omitempty"`
// ISCS气体环境
GasEnvironments []*GasEnvironment `protobuf:"bytes,320,rep,name=gasEnvironments,proto3" json:"gasEnvironments,omitempty"`
}
func (x *Repository) Reset() {
*x = Repository{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Repository) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Repository) ProtoMessage() {}
func (x *Repository) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Repository.ProtoReflect.Descriptor instead.
func (*Repository) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{0}
}
func (x *Repository) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Repository) GetVersion() string {
if x != nil {
return x.Version
}
return ""
}
func (x *Repository) GetPhysicalSections() []*PhysicalSection {
if x != nil {
return x.PhysicalSections
}
return nil
}
func (x *Repository) GetCheckPoints() []*CheckPoint {
if x != nil {
return x.CheckPoints
}
return nil
}
func (x *Repository) GetTurnouts() []*Turnout {
if x != nil {
return x.Turnouts
}
return nil
}
func (x *Repository) GetSignals() []*Signal {
if x != nil {
return x.Signals
}
return nil
}
func (x *Repository) GetTransponders() []*Transponder {
if x != nil {
return x.Transponders
}
return nil
}
func (x *Repository) GetSlopes() []*Slope {
if x != nil {
return x.Slopes
}
return nil
}
func (x *Repository) GetSectionalCurvatures() []*SectionalCurvature {
if x != nil {
return x.SectionalCurvatures
}
return nil
}
func (x *Repository) GetKilometerConverts() []*KilometerConvert {
if x != nil {
return x.KilometerConverts
}
return nil
}
func (x *Repository) GetRelays() []*Relay {
if x != nil {
return x.Relays
}
return nil
}
func (x *Repository) GetPhaseFailureProtectors() []*PhaseFailureProtector {
if x != nil {
return x.PhaseFailureProtectors
}
return nil
}
func (x *Repository) GetButtons() []*Button {
if x != nil {
return x.Buttons
}
return nil
}
func (x *Repository) GetPsds() []*Psd {
if x != nil {
return x.Psds
}
return nil
}
2023-10-13 15:26:25 +08:00
func (x *Repository) GetLights() []*Light {
if x != nil {
return x.Lights
}
return nil
}
func (x *Repository) GetAlarms() []*Alarm {
if x != nil {
return x.Alarms
}
return nil
}
func (x *Repository) GetStations() []*Station {
if x != nil {
return x.Stations
}
return nil
}
func (x *Repository) GetMkxs() []*Mkx {
if x != nil {
return x.Mkxs
}
return nil
}
func (x *Repository) GetPlatforms() []*Platform {
if x != nil {
return x.Platforms
}
return nil
}
2023-10-19 17:36:39 +08:00
func (x *Repository) GetMainCoordinateSystem() string {
if x != nil {
return x.MainCoordinateSystem
}
return ""
}
2023-10-20 13:13:44 +08:00
func (x *Repository) GetKeys() []*Key {
if x != nil {
return x.Keys
}
return nil
}
2023-10-30 16:21:23 +08:00
func (x *Repository) GetCentralizedStationRefs() []*CentralizedStationRef {
if x != nil {
return x.CentralizedStationRefs
}
return nil
}
2023-12-29 17:58:39 +08:00
func (x *Repository) GetRoutes() []*Route {
if x != nil {
return x.Routes
}
return nil
}
2023-12-20 11:23:49 +08:00
func (x *Repository) GetPipes() []*Pipe {
if x != nil {
return x.Pipes
}
return nil
}
func (x *Repository) GetPipeFittings() []*PipeFitting {
if x != nil {
return x.PipeFittings
}
return nil
}
func (x *Repository) GetCircuitBreakers() []*CircuitBreaker {
if x != nil {
return x.CircuitBreakers
}
return nil
}
func (x *Repository) GetThreePositionSwitches() []*ThreePositionSwitch {
if x != nil {
return x.ThreePositionSwitches
}
return nil
}
func (x *Repository) GetHandcartSwitches() []*HandcartSwitch {
if x != nil {
return x.HandcartSwitches
}
return nil
}
func (x *Repository) GetRectifiers() []*Rectifier {
if x != nil {
return x.Rectifiers
}
return nil
}
func (x *Repository) GetDisconnectors() []*Disconnector {
if x != nil {
return x.Disconnectors
}
return nil
}
func (x *Repository) GetVoltageTransformers() []*VoltageTransformer {
if x != nil {
return x.VoltageTransformers
}
return nil
}
func (x *Repository) GetPowerSources() []*PowerSource {
if x != nil {
return x.PowerSources
}
return nil
}
func (x *Repository) GetLightningArresters() []*LightningArrester {
if x != nil {
return x.LightningArresters
}
return nil
}
func (x *Repository) GetEarthingDevices() []*EarthingDevice {
if x != nil {
return x.EarthingDevices
}
return nil
}
2023-12-22 15:00:34 +08:00
func (x *Repository) GetNetworkSwitches() []*NetworkSwitch {
if x != nil {
return x.NetworkSwitches
}
return nil
}
func (x *Repository) GetWireCabinets() []*WireCabinet {
if x != nil {
return x.WireCabinets
}
return nil
}
2023-12-25 14:09:29 +08:00
func (x *Repository) GetAirPavilions() []*AirPavilion {
if x != nil {
return x.AirPavilions
}
return nil
}
func (x *Repository) GetValves() []*Valve {
if x != nil {
return x.Valves
}
return nil
}
func (x *Repository) GetGasMixingChambers() []*GasMixingChamber {
if x != nil {
return x.GasMixingChambers
}
return nil
}
func (x *Repository) GetCombinationAirConditioners() []*CombinationAirConditioner {
if x != nil {
return x.CombinationAirConditioners
}
return nil
}
func (x *Repository) GetAirPurificationDevices() []*AirPurificationDevice {
if x != nil {
return x.AirPurificationDevices
}
return nil
}
func (x *Repository) GetAirCurtains() []*AirCurtain {
if x != nil {
return x.AirCurtains
}
return nil
}
func (x *Repository) GetFans() []*Fan {
if x != nil {
return x.Fans
}
return nil
}
func (x *Repository) GetGasEnvironments() []*GasEnvironment {
if x != nil {
return x.GasEnvironments
}
return nil
}
// 信号布置数据
type SignalLayout struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 物理区段
PhysicalSections []*PhysicalSection `protobuf:"bytes,3,rep,name=physicalSections,proto3" json:"physicalSections,omitempty"`
CheckPoints []*CheckPoint `protobuf:"bytes,4,rep,name=checkPoints,proto3" json:"checkPoints,omitempty"`
Turnouts []*Turnout `protobuf:"bytes,5,rep,name=turnouts,proto3" json:"turnouts,omitempty"`
Signals []*Signal `protobuf:"bytes,6,rep,name=signals,proto3" json:"signals,omitempty"`
Transponders []*Transponder `protobuf:"bytes,7,rep,name=transponders,proto3" json:"transponders,omitempty"`
Slopes []*Slope `protobuf:"bytes,8,rep,name=slopes,proto3" json:"slopes,omitempty"`
SectionalCurvatures []*SectionalCurvature `protobuf:"bytes,9,rep,name=sectionalCurvatures,proto3" json:"sectionalCurvatures,omitempty"`
KilometerConverts []*KilometerConvert `protobuf:"bytes,10,rep,name=kilometerConverts,proto3" json:"kilometerConverts,omitempty"`
}
func (x *SignalLayout) Reset() {
*x = SignalLayout{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SignalLayout) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SignalLayout) ProtoMessage() {}
func (x *SignalLayout) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SignalLayout.ProtoReflect.Descriptor instead.
func (*SignalLayout) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{1}
}
func (x *SignalLayout) GetPhysicalSections() []*PhysicalSection {
if x != nil {
return x.PhysicalSections
}
return nil
}
func (x *SignalLayout) GetCheckPoints() []*CheckPoint {
if x != nil {
return x.CheckPoints
}
return nil
}
func (x *SignalLayout) GetTurnouts() []*Turnout {
if x != nil {
return x.Turnouts
}
return nil
}
func (x *SignalLayout) GetSignals() []*Signal {
if x != nil {
return x.Signals
}
return nil
}
func (x *SignalLayout) GetTransponders() []*Transponder {
if x != nil {
return x.Transponders
}
return nil
}
func (x *SignalLayout) GetSlopes() []*Slope {
if x != nil {
return x.Slopes
}
return nil
}
func (x *SignalLayout) GetSectionalCurvatures() []*SectionalCurvature {
if x != nil {
return x.SectionalCurvatures
}
return nil
}
func (x *SignalLayout) GetKilometerConverts() []*KilometerConvert {
if x != nil {
return x.KilometerConverts
}
return nil
}
// 物理区段
type PhysicalSection struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
TurnoutIds []string `protobuf:"bytes,2,rep,name=turnoutIds,proto3" json:"turnoutIds,omitempty"` //道岔物理区段关联的道岔
ADevicePort *DevicePort `protobuf:"bytes,3,opt,name=aDevicePort,proto3" json:"aDevicePort,omitempty"` //非道岔物理区段A端关联的设备端口
BDevicePort *DevicePort `protobuf:"bytes,4,opt,name=bDevicePort,proto3" json:"bDevicePort,omitempty"`
2023-10-31 16:46:13 +08:00
// 物理区段所属集中站
CentralizedStation string `protobuf:"bytes,5,opt,name=centralizedStation,proto3" json:"centralizedStation,omitempty"`
}
func (x *PhysicalSection) Reset() {
*x = PhysicalSection{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PhysicalSection) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PhysicalSection) ProtoMessage() {}
func (x *PhysicalSection) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PhysicalSection.ProtoReflect.Descriptor instead.
func (*PhysicalSection) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{2}
}
func (x *PhysicalSection) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *PhysicalSection) GetTurnoutIds() []string {
if x != nil {
return x.TurnoutIds
}
return nil
}
func (x *PhysicalSection) GetADevicePort() *DevicePort {
if x != nil {
return x.ADevicePort
}
return nil
}
func (x *PhysicalSection) GetBDevicePort() *DevicePort {
if x != nil {
return x.BDevicePort
}
return nil
}
2023-10-31 16:46:13 +08:00
func (x *PhysicalSection) GetCentralizedStation() string {
if x != nil {
return x.CentralizedStation
}
return ""
}
// 区段检测点
type CheckPoint struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Km *Kilometer `protobuf:"bytes,2,opt,name=km,proto3" json:"km,omitempty"`
Type CheckPointType `protobuf:"varint,3,opt,name=type,proto3,enum=model.CheckPointType" json:"type,omitempty"`
DevicePorts []*DevicePort `protobuf:"bytes,4,rep,name=devicePorts,proto3" json:"devicePorts,omitempty"`
}
func (x *CheckPoint) Reset() {
*x = CheckPoint{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CheckPoint) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CheckPoint) ProtoMessage() {}
func (x *CheckPoint) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CheckPoint.ProtoReflect.Descriptor instead.
func (*CheckPoint) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{3}
}
func (x *CheckPoint) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *CheckPoint) GetKm() *Kilometer {
if x != nil {
return x.Km
}
return nil
}
func (x *CheckPoint) GetType() CheckPointType {
if x != nil {
return x.Type
}
return CheckPointType_Boundary
}
func (x *CheckPoint) GetDevicePorts() []*DevicePort {
if x != nil {
return x.DevicePorts
}
return nil
}
// 道岔
type Turnout struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Km *Kilometer `protobuf:"bytes,2,opt,name=km,proto3" json:"km,omitempty"`
ADevicePort *DevicePort `protobuf:"bytes,3,opt,name=aDevicePort,proto3" json:"aDevicePort,omitempty"`
BDevicePort *DevicePort `protobuf:"bytes,4,opt,name=bDevicePort,proto3" json:"bDevicePort,omitempty"`
CDevicePort *DevicePort `protobuf:"bytes,5,opt,name=cDevicePort,proto3" json:"cDevicePort,omitempty"`
SwitchMachineType Turnout_SwitchMachineType `protobuf:"varint,6,opt,name=switchMachineType,proto3,enum=model.Turnout_SwitchMachineType" json:"switchMachineType,omitempty"`
ElectronicComponentGroups []*ElectronicComponentGroup `protobuf:"bytes,7,rep,name=electronicComponentGroups,proto3" json:"electronicComponentGroups,omitempty"` //关联的电子元件组合
}
func (x *Turnout) Reset() {
*x = Turnout{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Turnout) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Turnout) ProtoMessage() {}
func (x *Turnout) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Turnout.ProtoReflect.Descriptor instead.
func (*Turnout) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{4}
}
func (x *Turnout) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Turnout) GetKm() *Kilometer {
if x != nil {
return x.Km
}
return nil
}
func (x *Turnout) GetADevicePort() *DevicePort {
if x != nil {
return x.ADevicePort
}
return nil
}
func (x *Turnout) GetBDevicePort() *DevicePort {
if x != nil {
return x.BDevicePort
}
return nil
}
func (x *Turnout) GetCDevicePort() *DevicePort {
if x != nil {
return x.CDevicePort
}
return nil
}
func (x *Turnout) GetSwitchMachineType() Turnout_SwitchMachineType {
if x != nil {
return x.SwitchMachineType
}
return Turnout_Unknown
}
func (x *Turnout) GetElectronicComponentGroups() []*ElectronicComponentGroup {
if x != nil {
return x.ElectronicComponentGroups
}
return nil
}
// 信号机
type Signal struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Km *Kilometer `protobuf:"bytes,2,opt,name=km,proto3" json:"km,omitempty"`
SectionId string `protobuf:"bytes,3,opt,name=sectionId,proto3" json:"sectionId,omitempty"` //关联的区段
TurnoutPort *DevicePort `protobuf:"bytes,4,opt,name=turnoutPort,proto3" json:"turnoutPort,omitempty"` //关联的区段端口
ElectronicComponentGroups []*ElectronicComponentGroup `protobuf:"bytes,7,rep,name=electronicComponentGroups,proto3" json:"electronicComponentGroups,omitempty"` //关联的电子元件组合
2023-10-13 14:59:08 +08:00
Code string `protobuf:"bytes,8,opt,name=code,proto3" json:"code,omitempty"` //信号机组合类型
2023-10-20 09:37:31 +08:00
Model Signal_Model `protobuf:"varint,9,opt,name=model,proto3,enum=model.Signal_Model" json:"model,omitempty"` //信号机模型类型(stationLayoutGraphics.proto Signal.Model枚举值)
}
func (x *Signal) Reset() {
*x = Signal{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Signal) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Signal) ProtoMessage() {}
func (x *Signal) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Signal.ProtoReflect.Descriptor instead.
func (*Signal) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{5}
}
func (x *Signal) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Signal) GetKm() *Kilometer {
if x != nil {
return x.Km
}
return nil
}
func (x *Signal) GetSectionId() string {
if x != nil {
return x.SectionId
}
return ""
}
func (x *Signal) GetTurnoutPort() *DevicePort {
if x != nil {
return x.TurnoutPort
}
return nil
}
func (x *Signal) GetElectronicComponentGroups() []*ElectronicComponentGroup {
if x != nil {
return x.ElectronicComponentGroups
}
return nil
}
2023-10-13 14:59:08 +08:00
func (x *Signal) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
2023-10-20 09:37:31 +08:00
func (x *Signal) GetModel() Signal_Model {
2023-10-19 18:09:47 +08:00
if x != nil {
2023-10-20 09:37:31 +08:00
return x.Model
2023-10-19 18:09:47 +08:00
}
2023-11-16 17:04:23 +08:00
return Signal_HL
2023-10-19 18:09:47 +08:00
}
type Psd struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
PlatformId string `protobuf:"bytes,2,opt,name=platformId,proto3" json:"platformId,omitempty"`
AsdAmount int32 `protobuf:"varint,3,opt,name=asdAmount,proto3" json:"asdAmount,omitempty"`
AsdGroups []*AsdGroup `protobuf:"bytes,4,rep,name=asdGroups,proto3" json:"asdGroups,omitempty"`
ElectronicComponentGroups []*ElectronicComponentGroup `protobuf:"bytes,5,rep,name=electronicComponentGroups,proto3" json:"electronicComponentGroups,omitempty"` //关联的电子元件组合
}
func (x *Psd) Reset() {
*x = Psd{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Psd) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Psd) ProtoMessage() {}
func (x *Psd) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Psd.ProtoReflect.Descriptor instead.
func (*Psd) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{6}
}
func (x *Psd) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Psd) GetPlatformId() string {
if x != nil {
return x.PlatformId
}
return ""
}
func (x *Psd) GetAsdAmount() int32 {
if x != nil {
return x.AsdAmount
}
return 0
}
func (x *Psd) GetAsdGroups() []*AsdGroup {
if x != nil {
return x.AsdGroups
}
return nil
}
func (x *Psd) GetElectronicComponentGroups() []*ElectronicComponentGroup {
if x != nil {
return x.ElectronicComponentGroups
}
return nil
}
// 应答器
type Transponder struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
2023-11-23 11:19:39 +08:00
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Km *Kilometer `protobuf:"bytes,2,opt,name=km,proto3" json:"km,omitempty"`
SectionId string `protobuf:"bytes,3,opt,name=sectionId,proto3" json:"sectionId,omitempty"` //关联的区段
TurnoutPort *DevicePort `protobuf:"bytes,4,opt,name=turnoutPort,proto3" json:"turnoutPort,omitempty"` //关联的区段端口
FixedTelegram []byte `protobuf:"bytes,5,opt,name=fixedTelegram,proto3" json:"fixedTelegram,omitempty"` //无源应答器固定报文
Type Transponder_Type `protobuf:"varint,6,opt,name=type,proto3,enum=model.Transponder_Type" json:"type,omitempty"` //应答器类型
}
func (x *Transponder) Reset() {
*x = Transponder{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Transponder) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Transponder) ProtoMessage() {}
func (x *Transponder) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Transponder.ProtoReflect.Descriptor instead.
func (*Transponder) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{7}
}
func (x *Transponder) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Transponder) GetKm() *Kilometer {
if x != nil {
return x.Km
}
return nil
}
func (x *Transponder) GetSectionId() string {
if x != nil {
return x.SectionId
}
return ""
}
func (x *Transponder) GetTurnoutPort() *DevicePort {
if x != nil {
return x.TurnoutPort
}
return nil
}
2023-11-23 10:55:31 +08:00
func (x *Transponder) GetFixedTelegram() []byte {
2023-11-22 13:41:43 +08:00
if x != nil {
return x.FixedTelegram
}
2023-11-23 10:55:31 +08:00
return nil
2023-11-22 13:41:43 +08:00
}
2023-11-23 11:19:39 +08:00
func (x *Transponder) GetType() Transponder_Type {
if x != nil {
return x.Type
}
return Transponder_FB
}
// 坡度
type Slope struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Kms []*Kilometer `protobuf:"bytes,2,rep,name=kms,proto3" json:"kms,omitempty"`
Degree int32 `protobuf:"varint,3,opt,name=degree,proto3" json:"degree,omitempty"` //坡度角的sin * 1000
}
func (x *Slope) Reset() {
*x = Slope{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Slope) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Slope) ProtoMessage() {}
func (x *Slope) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Slope.ProtoReflect.Descriptor instead.
func (*Slope) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{8}
}
func (x *Slope) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Slope) GetKms() []*Kilometer {
if x != nil {
return x.Kms
}
return nil
}
func (x *Slope) GetDegree() int32 {
if x != nil {
return x.Degree
}
return 0
}
// 分段曲率
type SectionalCurvature struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Kms []*Kilometer `protobuf:"bytes,2,rep,name=kms,proto3" json:"kms,omitempty"`
Radius int32 `protobuf:"varint,3,opt,name=radius,proto3" json:"radius,omitempty"` //半径 mm
}
func (x *SectionalCurvature) Reset() {
*x = SectionalCurvature{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SectionalCurvature) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SectionalCurvature) ProtoMessage() {}
func (x *SectionalCurvature) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SectionalCurvature.ProtoReflect.Descriptor instead.
func (*SectionalCurvature) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{9}
}
func (x *SectionalCurvature) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *SectionalCurvature) GetKms() []*Kilometer {
if x != nil {
return x.Kms
}
return nil
}
func (x *SectionalCurvature) GetRadius() int32 {
if x != nil {
return x.Radius
}
return 0
}
// 设备及端口
type DevicePort struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
DeviceId string `protobuf:"bytes,1,opt,name=deviceId,proto3" json:"deviceId,omitempty"`
DeviceType DeviceType `protobuf:"varint,2,opt,name=deviceType,proto3,enum=model.DeviceType" json:"deviceType,omitempty"`
Port Port `protobuf:"varint,3,opt,name=port,proto3,enum=model.Port" json:"port,omitempty"`
}
func (x *DevicePort) Reset() {
*x = DevicePort{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DevicePort) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DevicePort) ProtoMessage() {}
func (x *DevicePort) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DevicePort.ProtoReflect.Descriptor instead.
func (*DevicePort) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{10}
}
func (x *DevicePort) GetDeviceId() string {
if x != nil {
return x.DeviceId
}
return ""
}
func (x *DevicePort) GetDeviceType() DeviceType {
if x != nil {
return x.DeviceType
}
return DeviceType_DeviceType_Unknown
}
func (x *DevicePort) GetPort() Port {
if x != nil {
return x.Port
}
return Port_None
}
// 公里标
type Kilometer struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` //公里标mm
CoordinateSystem string `protobuf:"bytes,2,opt,name=coordinateSystem,proto3" json:"coordinateSystem,omitempty"` //坐标系
Direction Direction `protobuf:"varint,3,opt,name=direction,proto3,enum=model.Direction" json:"direction,omitempty"` //左右行
}
func (x *Kilometer) Reset() {
*x = Kilometer{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Kilometer) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Kilometer) ProtoMessage() {}
func (x *Kilometer) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Kilometer.ProtoReflect.Descriptor instead.
func (*Kilometer) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{11}
}
func (x *Kilometer) GetValue() int64 {
if x != nil {
return x.Value
}
return 0
}
func (x *Kilometer) GetCoordinateSystem() string {
if x != nil {
return x.CoordinateSystem
}
return ""
}
func (x *Kilometer) GetDirection() Direction {
if x != nil {
return x.Direction
}
return Direction_LEFT
}
// 公里标转换
type KilometerConvert struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
KmA *Kilometer `protobuf:"bytes,1,opt,name=kmA,proto3" json:"kmA,omitempty"`
KmB *Kilometer `protobuf:"bytes,2,opt,name=kmB,proto3" json:"kmB,omitempty"`
SameTrend bool `protobuf:"varint,3,opt,name=sameTrend,proto3" json:"sameTrend,omitempty"` //相同趋势(同增同减)?
}
func (x *KilometerConvert) Reset() {
*x = KilometerConvert{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *KilometerConvert) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*KilometerConvert) ProtoMessage() {}
func (x *KilometerConvert) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use KilometerConvert.ProtoReflect.Descriptor instead.
func (*KilometerConvert) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{12}
}
func (x *KilometerConvert) GetKmA() *Kilometer {
if x != nil {
return x.KmA
}
return nil
}
func (x *KilometerConvert) GetKmB() *Kilometer {
if x != nil {
return x.KmB
}
return nil
}
func (x *KilometerConvert) GetSameTrend() bool {
if x != nil {
return x.SameTrend
}
return false
}
// 继电器
type Relay struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Model Relay_Model `protobuf:"varint,3,opt,name=model,proto3,enum=model.Relay_Model" json:"model,omitempty"`
StationId string `protobuf:"bytes,4,opt,name=stationId,proto3" json:"stationId,omitempty"` // 所属车站id
}
func (x *Relay) Reset() {
*x = Relay{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Relay) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Relay) ProtoMessage() {}
func (x *Relay) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Relay.ProtoReflect.Descriptor instead.
func (*Relay) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{13}
}
func (x *Relay) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Relay) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Relay) GetModel() Relay_Model {
if x != nil {
return x.Model
}
return Relay_Unknown
}
func (x *Relay) GetStationId() string {
if x != nil {
return x.StationId
}
return ""
}
// 断相保护器
type PhaseFailureProtector struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
}
func (x *PhaseFailureProtector) Reset() {
*x = PhaseFailureProtector{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PhaseFailureProtector) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PhaseFailureProtector) ProtoMessage() {}
func (x *PhaseFailureProtector) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PhaseFailureProtector.ProtoReflect.Descriptor instead.
func (*PhaseFailureProtector) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{14}
}
func (x *PhaseFailureProtector) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *PhaseFailureProtector) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
// 电子元件组合
type ElectronicComponentGroup struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` //组合的编号(名称)
ComponentIds []string `protobuf:"bytes,2,rep,name=componentIds,proto3" json:"componentIds,omitempty"` //组合内电子元件的id
}
func (x *ElectronicComponentGroup) Reset() {
*x = ElectronicComponentGroup{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ElectronicComponentGroup) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ElectronicComponentGroup) ProtoMessage() {}
func (x *ElectronicComponentGroup) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ElectronicComponentGroup.ProtoReflect.Descriptor instead.
func (*ElectronicComponentGroup) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{15}
}
func (x *ElectronicComponentGroup) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *ElectronicComponentGroup) GetComponentIds() []string {
if x != nil {
return x.ComponentIds
}
return nil
}
2023-10-12 17:46:43 +08:00
// 开关、按钮、旋钮
type Button struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
2023-10-12 17:46:43 +08:00
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
ButtonType Button_ButtonType `protobuf:"varint,3,opt,name=buttonType,proto3,enum=model.Button_ButtonType" json:"buttonType,omitempty"`
2023-10-18 14:08:10 +08:00
HasLight bool `protobuf:"varint,4,opt,name=hasLight,proto3" json:"hasLight,omitempty"`
}
func (x *Button) Reset() {
*x = Button{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Button) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Button) ProtoMessage() {}
func (x *Button) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Button.ProtoReflect.Descriptor instead.
func (*Button) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{16}
}
func (x *Button) GetId() string {
if x != nil {
return x.Id
}
return ""
}
2023-10-12 17:46:43 +08:00
func (x *Button) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Button) GetButtonType() Button_ButtonType {
if x != nil {
return x.ButtonType
}
return Button_Unknown
}
2023-10-18 14:08:10 +08:00
func (x *Button) GetHasLight() bool {
2023-10-18 11:17:08 +08:00
if x != nil {
2023-10-18 14:08:10 +08:00
return x.HasLight
2023-10-18 11:17:08 +08:00
}
return false
}
2023-10-13 15:26:25 +08:00
// 灯
type Light struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Aspect Light_LightAspect `protobuf:"varint,3,opt,name=aspect,proto3,enum=model.Light_LightAspect" json:"aspect,omitempty"`
}
func (x *Light) Reset() {
*x = Light{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[17]
2023-10-13 15:26:25 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Light) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Light) ProtoMessage() {}
func (x *Light) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[17]
2023-10-13 15:26:25 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Light.ProtoReflect.Descriptor instead.
func (*Light) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{17}
2023-10-13 15:26:25 +08:00
}
func (x *Light) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Light) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Light) GetAspect() Light_LightAspect {
if x != nil {
return x.Aspect
}
return Light_L
}
// 报警器
type Alarm struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
}
func (x *Alarm) Reset() {
*x = Alarm{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[18]
2023-10-13 15:26:25 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Alarm) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Alarm) ProtoMessage() {}
func (x *Alarm) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[18]
2023-10-13 15:26:25 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Alarm.ProtoReflect.Descriptor instead.
func (*Alarm) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{18}
2023-10-13 15:26:25 +08:00
}
func (x *Alarm) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Alarm) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
// 车站
type Station struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
2023-10-16 09:55:44 +08:00
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
ElectronicGroup []*ElectronicGroup `protobuf:"bytes,3,rep,name=electronicGroup,proto3" json:"electronicGroup,omitempty"` // 关联电子元件组合
// 设备电子元件组合
Deccs []*DeviceEcc `protobuf:"bytes,4,rep,name=deccs,proto3" json:"deccs,omitempty"` // 暂时方案,后需重构
2023-10-13 15:26:25 +08:00
}
func (x *Station) Reset() {
*x = Station{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[19]
2023-10-13 15:26:25 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Station) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Station) ProtoMessage() {}
func (x *Station) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[19]
2023-10-13 15:26:25 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Station.ProtoReflect.Descriptor instead.
func (*Station) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{19}
2023-10-13 15:26:25 +08:00
}
func (x *Station) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Station) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
2023-10-16 09:55:44 +08:00
func (x *Station) GetElectronicGroup() []*ElectronicGroup {
2023-10-13 15:26:25 +08:00
if x != nil {
2023-10-16 09:55:44 +08:00
return x.ElectronicGroup
}
return nil
}
func (x *Station) GetDeccs() []*DeviceEcc {
if x != nil {
return x.Deccs
}
return nil
}
// 设备电子元件组合
type DeviceEcc struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
DeviceId string `protobuf:"bytes,1,opt,name=deviceId,proto3" json:"deviceId,omitempty"`
DeviceType DeviceType `protobuf:"varint,2,opt,name=deviceType,proto3,enum=model.DeviceType" json:"deviceType,omitempty"`
Egs []*ElectronicComponentGroup `protobuf:"bytes,3,rep,name=egs,proto3" json:"egs,omitempty"`
}
func (x *DeviceEcc) Reset() {
*x = DeviceEcc{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeviceEcc) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeviceEcc) ProtoMessage() {}
func (x *DeviceEcc) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeviceEcc.ProtoReflect.Descriptor instead.
func (*DeviceEcc) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{20}
}
func (x *DeviceEcc) GetDeviceId() string {
if x != nil {
return x.DeviceId
}
return ""
}
func (x *DeviceEcc) GetDeviceType() DeviceType {
if x != nil {
return x.DeviceType
}
return DeviceType_DeviceType_Unknown
}
func (x *DeviceEcc) GetEgs() []*ElectronicComponentGroup {
if x != nil {
return x.Egs
}
return nil
}
2023-10-16 09:55:44 +08:00
// 元器件组信息
type ElectronicGroup struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` //组合的编号(名称)
Components []*ElectronicComponent `protobuf:"bytes,2,rep,name=components,proto3" json:"components,omitempty"` //组合内电子元件
}
func (x *ElectronicGroup) Reset() {
*x = ElectronicGroup{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[21]
2023-10-16 09:55:44 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ElectronicGroup) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ElectronicGroup) ProtoMessage() {}
func (x *ElectronicGroup) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[21]
2023-10-16 09:55:44 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ElectronicGroup.ProtoReflect.Descriptor instead.
func (*ElectronicGroup) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{21}
2023-10-16 09:55:44 +08:00
}
func (x *ElectronicGroup) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *ElectronicGroup) GetComponents() []*ElectronicComponent {
if x != nil {
return x.Components
2023-10-13 15:26:25 +08:00
}
return nil
}
2023-10-16 09:55:44 +08:00
// 关联电子元件
type ElectronicComponent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // 元器件ID
DeviceType DeviceType `protobuf:"varint,3,opt,name=deviceType,proto3,enum=model.DeviceType" json:"deviceType,omitempty"` // 元器件类型
}
func (x *ElectronicComponent) Reset() {
*x = ElectronicComponent{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[22]
2023-10-16 09:55:44 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ElectronicComponent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ElectronicComponent) ProtoMessage() {}
func (x *ElectronicComponent) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[22]
2023-10-16 09:55:44 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ElectronicComponent.ProtoReflect.Descriptor instead.
func (*ElectronicComponent) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{22}
2023-10-16 09:55:44 +08:00
}
func (x *ElectronicComponent) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *ElectronicComponent) GetDeviceType() DeviceType {
if x != nil {
return x.DeviceType
}
return DeviceType_DeviceType_Unknown
}
// 门控箱
type Mkx struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
PsdId string `protobuf:"bytes,2,opt,name=psdId,proto3" json:"psdId,omitempty"`
PcbButtonId string `protobuf:"bytes,3,opt,name=pcbButtonId,proto3" json:"pcbButtonId,omitempty"`
PobButtonId string `protobuf:"bytes,4,opt,name=pobButtonId,proto3" json:"pobButtonId,omitempty"`
PabButtonId string `protobuf:"bytes,5,opt,name=pabButtonId,proto3" json:"pabButtonId,omitempty"`
PcbjId string `protobuf:"bytes,6,opt,name=pcbjId,proto3" json:"pcbjId,omitempty"`
PobjId string `protobuf:"bytes,7,opt,name=pobjId,proto3" json:"pobjId,omitempty"`
PabjId string `protobuf:"bytes,8,opt,name=pabjId,proto3" json:"pabjId,omitempty"`
}
func (x *Mkx) Reset() {
*x = Mkx{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Mkx) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Mkx) ProtoMessage() {}
func (x *Mkx) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Mkx.ProtoReflect.Descriptor instead.
func (*Mkx) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{23}
}
func (x *Mkx) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Mkx) GetPsdId() string {
if x != nil {
return x.PsdId
}
return ""
}
func (x *Mkx) GetPcbButtonId() string {
if x != nil {
return x.PcbButtonId
}
return ""
}
func (x *Mkx) GetPobButtonId() string {
if x != nil {
return x.PobButtonId
}
return ""
}
func (x *Mkx) GetPabButtonId() string {
if x != nil {
return x.PabButtonId
}
return ""
}
func (x *Mkx) GetPcbjId() string {
if x != nil {
return x.PcbjId
}
return ""
}
func (x *Mkx) GetPobjId() string {
if x != nil {
return x.PobjId
}
return ""
}
func (x *Mkx) GetPabjId() string {
if x != nil {
return x.PabjId
}
return ""
}
// 站台
type Platform struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
2023-12-29 17:58:39 +08:00
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
StationId string `protobuf:"bytes,3,opt,name=stationId,proto3" json:"stationId,omitempty"`
PhysicalSectionId string `protobuf:"bytes,4,opt,name=physicalSectionId,proto3" json:"physicalSectionId,omitempty"`
Direction Platform_PlatformDirection `protobuf:"varint,5,opt,name=direction,proto3,enum=model.Platform_PlatformDirection" json:"direction,omitempty"`
}
func (x *Platform) Reset() {
*x = Platform{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Platform) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Platform) ProtoMessage() {}
func (x *Platform) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Platform.ProtoReflect.Descriptor instead.
func (*Platform) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{24}
}
func (x *Platform) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Platform) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Platform) GetStationId() string {
if x != nil {
return x.StationId
}
return ""
}
func (x *Platform) GetPhysicalSectionId() string {
if x != nil {
return x.PhysicalSectionId
}
return ""
}
2023-12-29 17:58:39 +08:00
func (x *Platform) GetDirection() Platform_PlatformDirection {
if x != nil {
return x.Direction
}
return Platform_Unknown
}
2023-10-20 13:13:44 +08:00
// 报警器
type Key struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Gear int32 `protobuf:"varint,3,opt,name=gear,proto3" json:"gear,omitempty"` // 挡位数量
}
func (x *Key) Reset() {
*x = Key{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[25]
2023-10-20 13:13:44 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Key) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Key) ProtoMessage() {}
func (x *Key) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[25]
2023-10-20 13:13:44 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Key.ProtoReflect.Descriptor instead.
func (*Key) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{25}
2023-10-20 13:13:44 +08:00
}
func (x *Key) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Key) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Key) GetGear() int32 {
if x != nil {
return x.Gear
}
return 0
}
2023-10-30 16:21:23 +08:00
// 集中站关联信息
type CentralizedStationRef struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
2023-11-07 13:26:29 +08:00
StationId string `protobuf:"bytes,1,opt,name=stationId,proto3" json:"stationId,omitempty"` // 集中站ID
TransponderId []string `protobuf:"bytes,2,rep,name=transponderId,proto3" json:"transponderId,omitempty"` // 应答器ID
CjList []*CjData `protobuf:"bytes,3,rep,name=cjList,proto3" json:"cjList,omitempty"` // 采集继电器配置信息
QdList []*QdData `protobuf:"bytes,4,rep,name=qdList,proto3" json:"qdList,omitempty"` // 驱动继电器配置信息
SectionCodePoints []*CiSectionCodePoint `protobuf:"bytes,5,rep,name=sectionCodePoints,proto3" json:"sectionCodePoints,omitempty"` //物理区段码表
2023-10-30 16:21:23 +08:00
}
func (x *CentralizedStationRef) Reset() {
*x = CentralizedStationRef{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[26]
2023-10-30 16:21:23 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CentralizedStationRef) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CentralizedStationRef) ProtoMessage() {}
func (x *CentralizedStationRef) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[26]
2023-10-30 16:21:23 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CentralizedStationRef.ProtoReflect.Descriptor instead.
func (*CentralizedStationRef) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{26}
2023-10-30 16:21:23 +08:00
}
func (x *CentralizedStationRef) GetStationId() string {
if x != nil {
return x.StationId
}
return ""
}
func (x *CentralizedStationRef) GetTransponderId() []string {
if x != nil {
return x.TransponderId
}
return nil
}
func (x *CentralizedStationRef) GetCjList() []*CjData {
if x != nil {
return x.CjList
}
return nil
}
func (x *CentralizedStationRef) GetQdList() []*QdData {
if x != nil {
return x.QdList
}
return nil
}
2023-11-07 13:26:29 +08:00
func (x *CentralizedStationRef) GetSectionCodePoints() []*CiSectionCodePoint {
if x != nil {
return x.SectionCodePoints
}
return nil
}
2023-10-30 16:21:23 +08:00
type CjData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Row int32 `protobuf:"varint,1,opt,name=row,proto3" json:"row,omitempty"` // 所在行
Col int32 `protobuf:"varint,2,opt,name=col,proto3" json:"col,omitempty"` // 所在列
2023-10-31 09:21:03 +08:00
RefRelays []*CjDataItem `protobuf:"bytes,3,rep,name=refRelays,proto3" json:"refRelays,omitempty"` //采集的继电器
2023-10-30 16:21:23 +08:00
}
func (x *CjData) Reset() {
*x = CjData{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[27]
2023-10-30 16:21:23 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CjData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CjData) ProtoMessage() {}
func (x *CjData) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[27]
2023-10-30 16:21:23 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CjData.ProtoReflect.Descriptor instead.
func (*CjData) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{27}
2023-10-30 16:21:23 +08:00
}
func (x *CjData) GetRow() int32 {
if x != nil {
return x.Row
}
return 0
}
func (x *CjData) GetCol() int32 {
if x != nil {
return x.Col
}
return 0
}
2023-10-30 16:21:23 +08:00
func (x *CjData) GetRefRelays() []*CjDataItem {
if x != nil {
return x.RefRelays
}
return nil
}
type CjDataItem struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RelayId string `protobuf:"bytes,1,opt,name=relayId,proto3" json:"relayId,omitempty"` //采集对应的继电器Id
Q bool `protobuf:"varint,2,opt,name=q,proto3" json:"q,omitempty"` //继电器的位置,是否前接点(即吸起位/定位)
2023-10-30 16:21:23 +08:00
}
func (x *CjDataItem) Reset() {
*x = CjDataItem{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[28]
2023-10-30 16:21:23 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CjDataItem) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CjDataItem) ProtoMessage() {}
func (x *CjDataItem) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[28]
2023-10-30 16:21:23 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CjDataItem.ProtoReflect.Descriptor instead.
func (*CjDataItem) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{28}
2023-10-30 16:21:23 +08:00
}
func (x *CjDataItem) GetRelayId() string {
if x != nil {
return x.RelayId
}
return ""
}
func (x *CjDataItem) GetQ() bool {
2023-10-30 16:21:23 +08:00
if x != nil {
return x.Q
2023-10-30 16:21:23 +08:00
}
return false
2023-10-30 16:21:23 +08:00
}
type QdData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Row int32 `protobuf:"varint,1,opt,name=row,proto3" json:"row,omitempty"` // 所在行
Col int32 `protobuf:"varint,2,opt,name=col,proto3" json:"col,omitempty"` // 所在列
2023-10-31 09:21:03 +08:00
RefRelays []string `protobuf:"bytes,3,rep,name=refRelays,proto3" json:"refRelays,omitempty"` //驱动的继电器Id
2023-10-30 16:21:23 +08:00
}
func (x *QdData) Reset() {
*x = QdData{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[29]
2023-10-30 16:21:23 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *QdData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QdData) ProtoMessage() {}
func (x *QdData) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[29]
2023-10-30 16:21:23 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use QdData.ProtoReflect.Descriptor instead.
func (*QdData) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{29}
2023-10-30 16:21:23 +08:00
}
func (x *QdData) GetRow() int32 {
if x != nil {
return x.Row
}
return 0
}
func (x *QdData) GetCol() int32 {
if x != nil {
return x.Col
}
return 0
}
2023-10-30 16:21:23 +08:00
func (x *QdData) GetRefRelays() []string {
if x != nil {
return x.RefRelays
}
return nil
}
// 滑动门编组
type AsdGroup struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Group int32 `protobuf:"varint,1,opt,name=group,proto3" json:"group,omitempty"` //编组
Start int32 `protobuf:"varint,2,opt,name=start,proto3" json:"start,omitempty"` //起始子门索引
End int32 `protobuf:"varint,3,opt,name=end,proto3" json:"end,omitempty"` //终止子门索引
}
func (x *AsdGroup) Reset() {
*x = AsdGroup{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AsdGroup) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AsdGroup) ProtoMessage() {}
func (x *AsdGroup) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[30]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AsdGroup.ProtoReflect.Descriptor instead.
func (*AsdGroup) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{30}
}
func (x *AsdGroup) GetGroup() int32 {
if x != nil {
return x.Group
}
return 0
}
func (x *AsdGroup) GetStart() int32 {
if x != nil {
return x.Start
}
return 0
}
func (x *AsdGroup) GetEnd() int32 {
if x != nil {
return x.End
}
return 0
}
2023-11-07 13:26:29 +08:00
// 联锁物理区段码位
type CiSectionCodePoint struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Row int32 `protobuf:"varint,1,opt,name=row,proto3" json:"row,omitempty"` //所在行
SectionId string `protobuf:"bytes,2,opt,name=sectionId,proto3" json:"sectionId,omitempty"` //物理区段id
}
func (x *CiSectionCodePoint) Reset() {
*x = CiSectionCodePoint{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[31]
2023-11-07 13:26:29 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CiSectionCodePoint) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CiSectionCodePoint) ProtoMessage() {}
func (x *CiSectionCodePoint) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[31]
2023-11-07 13:26:29 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CiSectionCodePoint.ProtoReflect.Descriptor instead.
func (*CiSectionCodePoint) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{31}
2023-11-07 13:26:29 +08:00
}
func (x *CiSectionCodePoint) GetRow() int32 {
if x != nil {
return x.Row
}
return 0
}
func (x *CiSectionCodePoint) GetSectionId() string {
if x != nil {
return x.SectionId
}
return ""
}
2023-12-29 17:58:39 +08:00
// 进路信息
type Route struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
// 开始信号机
StartId string `protobuf:"bytes,3,opt,name=startId,proto3" json:"startId,omitempty"`
// 目的信号机
DestinationId string `protobuf:"bytes,4,opt,name=destinationId,proto3" json:"destinationId,omitempty"`
// 关联区段ID
DeviceIds []string `protobuf:"bytes,5,rep,name=deviceIds,proto3" json:"deviceIds,omitempty"`
// 敌对进路ID
ConflictingRouteIds []string `protobuf:"bytes,6,rep,name=conflictingRouteIds,proto3" json:"conflictingRouteIds,omitempty"`
// 进路类型
RouteType Route_RouteType `protobuf:"varint,7,opt,name=routeType,proto3,enum=model.Route_RouteType" json:"routeType,omitempty"`
// 对应的道岔位置
Turnouts []*Route_TurnoutPosition `protobuf:"bytes,8,rep,name=turnouts,proto3" json:"turnouts,omitempty"`
}
func (x *Route) Reset() {
*x = Route{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Route) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Route) ProtoMessage() {}
func (x *Route) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[32]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Route.ProtoReflect.Descriptor instead.
func (*Route) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{32}
}
func (x *Route) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Route) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Route) GetStartId() string {
if x != nil {
return x.StartId
}
return ""
}
func (x *Route) GetDestinationId() string {
if x != nil {
return x.DestinationId
}
return ""
}
func (x *Route) GetDeviceIds() []string {
if x != nil {
return x.DeviceIds
}
return nil
}
func (x *Route) GetConflictingRouteIds() []string {
if x != nil {
return x.ConflictingRouteIds
}
return nil
}
func (x *Route) GetRouteType() Route_RouteType {
if x != nil {
return x.RouteType
}
return Route_RECEIVING
}
func (x *Route) GetTurnouts() []*Route_TurnoutPosition {
if x != nil {
return x.Turnouts
}
return nil
}
2023-12-19 17:13:27 +08:00
// 管线
// 管线有两个端口分别为A端和B端
// 通过管线与其他设备的连接关系可以知道所有设备之间的连接关系
type Pipe struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
2024-01-05 11:30:39 +08:00
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
PortA *DevicePort `protobuf:"bytes,3,opt,name=portA,proto3" json:"portA,omitempty"` //管线的A端连接的设备
PortB *DevicePort `protobuf:"bytes,4,opt,name=portB,proto3" json:"portB,omitempty"` //管线的B端连接的设备
2023-12-19 17:13:27 +08:00
}
func (x *Pipe) Reset() {
*x = Pipe{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[33]
2023-12-19 17:13:27 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Pipe) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Pipe) ProtoMessage() {}
func (x *Pipe) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[33]
2023-12-19 17:13:27 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Pipe.ProtoReflect.Descriptor instead.
func (*Pipe) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{33}
2023-12-19 17:13:27 +08:00
}
func (x *Pipe) GetId() string {
if x != nil {
return x.Id
}
return ""
}
2023-12-19 17:21:55 +08:00
func (x *Pipe) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
2023-12-19 17:13:27 +08:00
func (x *Pipe) GetPortA() *DevicePort {
if x != nil {
return x.PortA
}
return nil
}
func (x *Pipe) GetPortB() *DevicePort {
if x != nil {
return x.PortB
}
return nil
}
// 管件
2023-12-20 11:23:49 +08:00
// 管件端口分别为A B C D
2023-12-19 17:13:27 +08:00
type PipeFitting struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
2023-12-19 17:21:55 +08:00
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Sum int32 `protobuf:"varint,3,opt,name=sum,proto3" json:"sum,omitempty"` //管件端口总数一般为3 4三通、四通
2023-12-19 17:13:27 +08:00
}
func (x *PipeFitting) Reset() {
*x = PipeFitting{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[34]
2023-12-19 17:13:27 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PipeFitting) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PipeFitting) ProtoMessage() {}
func (x *PipeFitting) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[34]
2023-12-19 17:13:27 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PipeFitting.ProtoReflect.Descriptor instead.
func (*PipeFitting) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{34}
2023-12-19 17:13:27 +08:00
}
func (x *PipeFitting) GetId() string {
if x != nil {
return x.Id
}
return ""
}
2023-12-19 17:21:55 +08:00
func (x *PipeFitting) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
2023-12-19 17:13:27 +08:00
func (x *PipeFitting) GetSum() int32 {
if x != nil {
return x.Sum
}
return 0
}
// 断路器
// 有两个连接端口分别为A和B
type CircuitBreaker struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
2023-12-19 17:21:55 +08:00
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
2023-12-19 17:13:27 +08:00
}
func (x *CircuitBreaker) Reset() {
*x = CircuitBreaker{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[35]
2023-12-19 17:13:27 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CircuitBreaker) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CircuitBreaker) ProtoMessage() {}
func (x *CircuitBreaker) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[35]
2023-12-19 17:13:27 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CircuitBreaker.ProtoReflect.Descriptor instead.
func (*CircuitBreaker) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{35}
2023-12-19 17:13:27 +08:00
}
func (x *CircuitBreaker) GetId() string {
if x != nil {
return x.Id
}
return ""
}
2023-12-19 17:21:55 +08:00
func (x *CircuitBreaker) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
2023-12-19 17:13:27 +08:00
// 三工位开关
// 有三个连接端口公共连接点A,隔离开关连接点B,接地开关连接点C
type ThreePositionSwitch struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
2023-12-19 17:21:55 +08:00
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
2023-12-19 17:13:27 +08:00
}
func (x *ThreePositionSwitch) Reset() {
*x = ThreePositionSwitch{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[36]
2023-12-19 17:13:27 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ThreePositionSwitch) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ThreePositionSwitch) ProtoMessage() {}
func (x *ThreePositionSwitch) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[36]
2023-12-19 17:13:27 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ThreePositionSwitch.ProtoReflect.Descriptor instead.
func (*ThreePositionSwitch) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{36}
2023-12-19 17:13:27 +08:00
}
func (x *ThreePositionSwitch) GetId() string {
if x != nil {
return x.Id
}
return ""
}
2023-12-19 17:21:55 +08:00
func (x *ThreePositionSwitch) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
2023-12-19 17:13:27 +08:00
// 手车
// 有两个连接端口分别为A和B
type HandcartSwitch struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
2023-12-19 17:21:55 +08:00
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
2023-12-19 17:13:27 +08:00
}
func (x *HandcartSwitch) Reset() {
*x = HandcartSwitch{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[37]
2023-12-19 17:13:27 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *HandcartSwitch) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HandcartSwitch) ProtoMessage() {}
func (x *HandcartSwitch) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[37]
2023-12-19 17:13:27 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use HandcartSwitch.ProtoReflect.Descriptor instead.
func (*HandcartSwitch) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{37}
2023-12-19 17:13:27 +08:00
}
func (x *HandcartSwitch) GetId() string {
if x != nil {
return x.Id
}
return ""
}
2023-12-19 17:21:55 +08:00
func (x *HandcartSwitch) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
2023-12-19 17:13:27 +08:00
// 整流器
// PSCADA中整流器有两个交流输入端分别为A(火线L)和B(零线N);直流输出端口有两个分别为直流正极端口C(+正极)和直流负极端口D(-负极)
2023-12-19 17:13:27 +08:00
type Rectifier struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
2023-12-19 17:21:55 +08:00
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
2023-12-19 17:13:27 +08:00
}
func (x *Rectifier) Reset() {
*x = Rectifier{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[38]
2023-12-19 17:13:27 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Rectifier) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Rectifier) ProtoMessage() {}
func (x *Rectifier) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[38]
2023-12-19 17:13:27 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Rectifier.ProtoReflect.Descriptor instead.
func (*Rectifier) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{38}
2023-12-19 17:13:27 +08:00
}
func (x *Rectifier) GetId() string {
if x != nil {
return x.Id
}
return ""
}
2023-12-19 17:21:55 +08:00
func (x *Rectifier) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
2023-12-19 17:13:27 +08:00
// 隔离开关
// 有两个连接端口分别为A和B
type Disconnector struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
2023-12-19 17:21:55 +08:00
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
2023-12-19 17:13:27 +08:00
}
func (x *Disconnector) Reset() {
*x = Disconnector{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[39]
2023-12-19 17:13:27 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Disconnector) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Disconnector) ProtoMessage() {}
func (x *Disconnector) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[39]
2023-12-19 17:13:27 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Disconnector.ProtoReflect.Descriptor instead.
func (*Disconnector) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{39}
2023-12-19 17:13:27 +08:00
}
func (x *Disconnector) GetId() string {
if x != nil {
return x.Id
}
return ""
}
2023-12-19 17:21:55 +08:00
func (x *Disconnector) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
2023-12-19 17:13:27 +08:00
// 变压器
// 一次侧端口A,二次侧端口B或C
type VoltageTransformer struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
2023-12-19 17:21:55 +08:00
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
2023-12-20 16:50:51 +08:00
E1 uint32 `protobuf:"varint,3,opt,name=e1,proto3" json:"e1,omitempty"` //一次侧电动势
E2 uint32 `protobuf:"varint,4,opt,name=e2,proto3" json:"e2,omitempty"` //二次侧电动势
2023-12-19 17:13:27 +08:00
}
func (x *VoltageTransformer) Reset() {
*x = VoltageTransformer{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[40]
2023-12-19 17:13:27 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *VoltageTransformer) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VoltageTransformer) ProtoMessage() {}
func (x *VoltageTransformer) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[40]
2023-12-19 17:13:27 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VoltageTransformer.ProtoReflect.Descriptor instead.
func (*VoltageTransformer) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{40}
2023-12-19 17:13:27 +08:00
}
func (x *VoltageTransformer) GetId() string {
if x != nil {
return x.Id
}
return ""
}
2023-12-19 17:21:55 +08:00
func (x *VoltageTransformer) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
2023-12-20 16:50:51 +08:00
func (x *VoltageTransformer) GetE1() uint32 {
if x != nil {
return x.E1
}
return 0
}
func (x *VoltageTransformer) GetE2() uint32 {
if x != nil {
return x.E2
}
return 0
}
2023-12-19 17:13:27 +08:00
// 电源
// 只有一个输出端口A
type PowerSource struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
2023-12-19 17:21:55 +08:00
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
2024-01-05 11:30:39 +08:00
// true-三相交流电false-单相电
Sx bool `protobuf:"varint,3,opt,name=sx,proto3" json:"sx,omitempty"`
2023-12-19 17:13:27 +08:00
// true-交流电源false-直流电源
2024-01-05 11:30:39 +08:00
Ac bool `protobuf:"varint,4,opt,name=ac,proto3" json:"ac,omitempty"`
2023-12-19 17:13:27 +08:00
// 电源电压
2024-01-05 11:30:39 +08:00
Voltage uint32 `protobuf:"varint,5,opt,name=voltage,proto3" json:"voltage,omitempty"`
2023-12-19 17:13:27 +08:00
}
func (x *PowerSource) Reset() {
*x = PowerSource{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[41]
2023-12-19 17:13:27 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PowerSource) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PowerSource) ProtoMessage() {}
func (x *PowerSource) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[41]
2023-12-19 17:13:27 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PowerSource.ProtoReflect.Descriptor instead.
func (*PowerSource) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{41}
2023-12-19 17:13:27 +08:00
}
func (x *PowerSource) GetId() string {
if x != nil {
return x.Id
}
return ""
}
2023-12-19 17:21:55 +08:00
func (x *PowerSource) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
2024-01-05 11:30:39 +08:00
func (x *PowerSource) GetSx() bool {
if x != nil {
return x.Sx
}
return false
}
2023-12-19 17:13:27 +08:00
func (x *PowerSource) GetAc() bool {
if x != nil {
return x.Ac
}
return false
}
func (x *PowerSource) GetVoltage() uint32 {
if x != nil {
return x.Voltage
}
return 0
}
// 避雷器
type LightningArrester struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
}
func (x *LightningArrester) Reset() {
*x = LightningArrester{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[42]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LightningArrester) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LightningArrester) ProtoMessage() {}
func (x *LightningArrester) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[42]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LightningArrester.ProtoReflect.Descriptor instead.
func (*LightningArrester) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{42}
}
func (x *LightningArrester) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *LightningArrester) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
// 接地装置
// 接地装置自身与大地一体只有一个输入端口A,该端口用来接收意外电能然后导入大地
type EarthingDevice struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
}
func (x *EarthingDevice) Reset() {
*x = EarthingDevice{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[43]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EarthingDevice) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EarthingDevice) ProtoMessage() {}
func (x *EarthingDevice) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[43]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EarthingDevice.ProtoReflect.Descriptor instead.
func (*EarthingDevice) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{43}
}
func (x *EarthingDevice) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *EarthingDevice) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
2023-12-22 15:00:34 +08:00
// 网络交换机
type NetworkSwitch struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
}
func (x *NetworkSwitch) Reset() {
*x = NetworkSwitch{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[44]
2023-12-22 15:00:34 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *NetworkSwitch) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*NetworkSwitch) ProtoMessage() {}
func (x *NetworkSwitch) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[44]
2023-12-22 15:00:34 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use NetworkSwitch.ProtoReflect.Descriptor instead.
func (*NetworkSwitch) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{44}
2023-12-22 15:00:34 +08:00
}
func (x *NetworkSwitch) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *NetworkSwitch) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
// 线柜
type WireCabinet struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
}
func (x *WireCabinet) Reset() {
*x = WireCabinet{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[45]
2023-12-22 15:00:34 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *WireCabinet) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*WireCabinet) ProtoMessage() {}
func (x *WireCabinet) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[45]
2023-12-22 15:00:34 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use WireCabinet.ProtoReflect.Descriptor instead.
func (*WireCabinet) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{45}
2023-12-22 15:00:34 +08:00
}
func (x *WireCabinet) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *WireCabinet) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
2023-12-25 13:40:00 +08:00
// 风亭(排风亭、送风亭)
type AirPavilion struct {
2023-12-25 09:23:13 +08:00
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
2023-12-25 13:40:00 +08:00
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
PavilionType AirPavilion_Type `protobuf:"varint,3,opt,name=pavilionType,proto3,enum=model.AirPavilion_Type" json:"pavilionType,omitempty"` //风亭子类型
2023-12-25 09:23:13 +08:00
}
2023-12-25 13:40:00 +08:00
func (x *AirPavilion) Reset() {
*x = AirPavilion{}
2023-12-25 09:23:13 +08:00
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[46]
2023-12-25 09:23:13 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
2023-12-25 13:40:00 +08:00
func (x *AirPavilion) String() string {
2023-12-25 09:23:13 +08:00
return protoimpl.X.MessageStringOf(x)
}
2023-12-25 13:40:00 +08:00
func (*AirPavilion) ProtoMessage() {}
2023-12-25 09:23:13 +08:00
2023-12-25 13:40:00 +08:00
func (x *AirPavilion) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[46]
2023-12-25 09:23:13 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
2023-12-25 13:40:00 +08:00
// Deprecated: Use AirPavilion.ProtoReflect.Descriptor instead.
func (*AirPavilion) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{46}
2023-12-25 09:23:13 +08:00
}
2023-12-25 13:40:00 +08:00
func (x *AirPavilion) GetId() string {
2023-12-25 09:23:13 +08:00
if x != nil {
return x.Id
}
return ""
}
2023-12-25 13:40:00 +08:00
func (x *AirPavilion) GetCode() string {
2023-12-25 09:23:13 +08:00
if x != nil {
return x.Code
}
return ""
}
2023-12-25 13:40:00 +08:00
func (x *AirPavilion) GetPavilionType() AirPavilion_Type {
2023-12-25 09:23:13 +08:00
if x != nil {
2023-12-25 13:40:00 +08:00
return x.PavilionType
2023-12-25 09:23:13 +08:00
}
2023-12-25 13:40:00 +08:00
return AirPavilion_ExhaustPavilion
2023-12-25 09:23:13 +08:00
}
2023-12-25 13:40:00 +08:00
// 阀门(电动调节阀、电动风阀)
type Valve struct {
2023-12-25 09:23:13 +08:00
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
2023-12-25 13:40:00 +08:00
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
ValveType Valve_Type `protobuf:"varint,3,opt,name=valveType,proto3,enum=model.Valve_Type" json:"valveType,omitempty"` //阀门子类型
2023-12-25 09:23:13 +08:00
}
2023-12-25 13:40:00 +08:00
func (x *Valve) Reset() {
*x = Valve{}
2023-12-25 09:23:13 +08:00
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[47]
2023-12-25 09:23:13 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
2023-12-25 13:40:00 +08:00
func (x *Valve) String() string {
2023-12-25 09:23:13 +08:00
return protoimpl.X.MessageStringOf(x)
}
2023-12-25 13:40:00 +08:00
func (*Valve) ProtoMessage() {}
2023-12-25 09:23:13 +08:00
2023-12-25 13:40:00 +08:00
func (x *Valve) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[47]
2023-12-25 09:23:13 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
2023-12-25 13:40:00 +08:00
// Deprecated: Use Valve.ProtoReflect.Descriptor instead.
func (*Valve) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{47}
2023-12-25 09:23:13 +08:00
}
2023-12-25 13:40:00 +08:00
func (x *Valve) GetId() string {
2023-12-25 09:23:13 +08:00
if x != nil {
return x.Id
}
return ""
}
2023-12-25 13:40:00 +08:00
func (x *Valve) GetCode() string {
2023-12-25 09:23:13 +08:00
if x != nil {
return x.Code
}
return ""
}
2023-12-25 13:40:00 +08:00
func (x *Valve) GetValveType() Valve_Type {
2023-12-25 09:23:13 +08:00
if x != nil {
2023-12-25 13:40:00 +08:00
return x.ValveType
2023-12-25 09:23:13 +08:00
}
2023-12-25 13:40:00 +08:00
return Valve_ElectricControlValve
2023-12-25 09:23:13 +08:00
}
// 混合室静压箱(气体)
// 有四个端口ABC三个端口为输入口D端口为输出口
type GasMixingChamber struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
}
func (x *GasMixingChamber) Reset() {
*x = GasMixingChamber{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[48]
2023-12-25 09:23:13 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GasMixingChamber) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GasMixingChamber) ProtoMessage() {}
func (x *GasMixingChamber) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[48]
2023-12-25 09:23:13 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GasMixingChamber.ProtoReflect.Descriptor instead.
func (*GasMixingChamber) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{48}
2023-12-25 09:23:13 +08:00
}
func (x *GasMixingChamber) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *GasMixingChamber) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
// 组合式空调
// 有四个端口新风输入端口A,工作风输出端口B
// 端口C输出风再通过端口D输入通过C->D实现对风再处理。
type CombinationAirConditioner struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
}
func (x *CombinationAirConditioner) Reset() {
*x = CombinationAirConditioner{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[49]
2023-12-25 09:23:13 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CombinationAirConditioner) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CombinationAirConditioner) ProtoMessage() {}
func (x *CombinationAirConditioner) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[49]
2023-12-25 09:23:13 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CombinationAirConditioner.ProtoReflect.Descriptor instead.
func (*CombinationAirConditioner) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{49}
2023-12-25 09:23:13 +08:00
}
func (x *CombinationAirConditioner) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *CombinationAirConditioner) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
// 净化装置(对组合式空调B端口输出的工作风进行净化)
// 有两个端口端口A输入端口B输出
type AirPurificationDevice struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
}
func (x *AirPurificationDevice) Reset() {
*x = AirPurificationDevice{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[50]
2023-12-25 09:23:13 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AirPurificationDevice) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AirPurificationDevice) ProtoMessage() {}
func (x *AirPurificationDevice) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[50]
2023-12-25 09:23:13 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AirPurificationDevice.ProtoReflect.Descriptor instead.
func (*AirPurificationDevice) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{50}
2023-12-25 09:23:13 +08:00
}
func (x *AirPurificationDevice) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *AirPurificationDevice) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
// 空气幕
type AirCurtain struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
}
func (x *AirCurtain) Reset() {
*x = AirCurtain{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[51]
2023-12-25 09:23:13 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AirCurtain) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AirCurtain) ProtoMessage() {}
func (x *AirCurtain) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[51]
2023-12-25 09:23:13 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AirCurtain.ProtoReflect.Descriptor instead.
func (*AirCurtain) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{51}
2023-12-25 09:23:13 +08:00
}
func (x *AirCurtain) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *AirCurtain) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
2023-12-25 10:07:59 +08:00
// 风机
type Fan struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
2023-12-25 17:31:35 +08:00
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
FanType Fan_Type `protobuf:"varint,3,opt,name=fanType,proto3,enum=model.Fan_Type" json:"fanType,omitempty"` //风机子类型
2023-12-25 10:07:59 +08:00
}
func (x *Fan) Reset() {
*x = Fan{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[52]
2023-12-25 10:07:59 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Fan) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Fan) ProtoMessage() {}
func (x *Fan) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[52]
2023-12-25 10:07:59 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Fan.ProtoReflect.Descriptor instead.
func (*Fan) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{52}
2023-12-25 10:07:59 +08:00
}
func (x *Fan) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Fan) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
2023-12-25 17:31:35 +08:00
func (x *Fan) GetFanType() Fan_Type {
if x != nil {
return x.FanType
}
return Fan_CommonFan
}
2023-12-25 09:23:13 +08:00
// 气体环境(正常空气+有害烟雾)
// 有多个输入口统一为端口A用来为环境补充新鲜空气
// 有多个输出口统一为端口B用户将环境的混浊气体排除
// 排出气体动力源为该环境。
type GasEnvironment struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
}
func (x *GasEnvironment) Reset() {
*x = GasEnvironment{}
if protoimpl.UnsafeEnabled {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[53]
2023-12-25 09:23:13 +08:00
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GasEnvironment) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GasEnvironment) ProtoMessage() {}
func (x *GasEnvironment) ProtoReflect() protoreflect.Message {
2023-12-29 17:58:39 +08:00
mi := &file_model_proto_msgTypes[53]
2023-12-25 09:23:13 +08:00
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GasEnvironment.ProtoReflect.Descriptor instead.
func (*GasEnvironment) Descriptor() ([]byte, []int) {
2023-12-29 17:58:39 +08:00
return file_model_proto_rawDescGZIP(), []int{53}
2023-12-25 09:23:13 +08:00
}
func (x *GasEnvironment) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *GasEnvironment) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
2023-12-29 17:58:39 +08:00
type Route_TurnoutPosition struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // 道岔ID
Normal bool `protobuf:"varint,2,opt,name=normal,proto3" json:"normal,omitempty"` // 道岔定位
}
func (x *Route_TurnoutPosition) Reset() {
*x = Route_TurnoutPosition{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[54]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Route_TurnoutPosition) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Route_TurnoutPosition) ProtoMessage() {}
func (x *Route_TurnoutPosition) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[54]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Route_TurnoutPosition.ProtoReflect.Descriptor instead.
func (*Route_TurnoutPosition) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{32, 0}
}
func (x *Route_TurnoutPosition) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Route_TurnoutPosition) GetNormal() bool {
if x != nil {
return x.Normal
}
return false
}
var File_model_proto protoreflect.FileDescriptor
var file_model_proto_rawDesc = []byte{
0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x6d,
2023-12-29 17:58:39 +08:00
0x6f, 0x64, 0x65, 0x6c, 0x22, 0x80, 0x13, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
0x6f, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a,
0x10, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e,
0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52,
0x10, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73,
0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x43,
0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0b, 0x63, 0x68, 0x65, 0x63, 0x6b,
0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75,
0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75,
0x74, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x18, 0x06, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x53, 0x69, 0x67, 0x6e,
0x61, 0x6c, 0x52, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x12, 0x36, 0x0a, 0x0c, 0x74,
0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70,
0x6f, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64,
0x65, 0x72, 0x73, 0x12, 0x24, 0x0a, 0x06, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x08, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x53, 0x6c, 0x6f, 0x70,
0x65, 0x52, 0x06, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x13, 0x73, 0x65, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73,
0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x53,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72,
0x65, 0x52, 0x13, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x75, 0x72, 0x76,
0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65,
0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65,
0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x52, 0x11, 0x6b, 0x69, 0x6c, 0x6f,
0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x73, 0x12, 0x24, 0x0a,
0x06, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e,
0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x06, 0x72, 0x65, 0x6c,
0x61, 0x79, 0x73, 0x12, 0x54, 0x0a, 0x16, 0x70, 0x68, 0x61, 0x73, 0x65, 0x46, 0x61, 0x69, 0x6c,
0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0c, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x50, 0x68, 0x61, 0x73,
0x65, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x6f,
0x72, 0x52, 0x16, 0x70, 0x68, 0x61, 0x73, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x50,
0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x62, 0x75, 0x74,
0x74, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x6f, 0x64,
0x65, 0x6c, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x52, 0x07, 0x62, 0x75, 0x74, 0x74, 0x6f,
0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x04, 0x70, 0x73, 0x64, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x0a, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x50, 0x73, 0x64, 0x52, 0x04, 0x70, 0x73,
2023-10-13 15:26:25 +08:00
0x64, 0x73, 0x12, 0x24, 0x0a, 0x06, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4c, 0x69, 0x67, 0x68, 0x74,
0x52, 0x06, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x12, 0x24, 0x0a, 0x06, 0x61, 0x6c, 0x61, 0x72,
0x6d, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x2e, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x52, 0x06, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x73, 0x12, 0x2a,
0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x0e, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x04, 0x6d, 0x6b,
0x78, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x2e, 0x4d, 0x6b, 0x78, 0x52, 0x04, 0x6d, 0x6b, 0x78, 0x73, 0x12, 0x2d, 0x0a, 0x09, 0x70, 0x6c,
0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x09,
0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x6d, 0x61, 0x69,
0x6e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65,
0x6d, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6f,
2023-10-20 13:13:44 +08:00
0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x1e, 0x0a,
0x04, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6d, 0x6f,
2023-10-30 16:21:23 +08:00
0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x54, 0x0a,
0x16, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65,
0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x52, 0x16, 0x43, 0x65, 0x6e,
0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
2023-12-29 17:58:39 +08:00
0x65, 0x66, 0x73, 0x12, 0x24, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x17, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x52, 0x6f, 0x75, 0x74,
0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x05, 0x70, 0x69, 0x70,
0x65, 0x73, 0x18, 0xac, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6d, 0x6f, 0x64, 0x65,
0x6c, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x52, 0x05, 0x70, 0x69, 0x70, 0x65, 0x73, 0x12, 0x37, 0x0a,
0x0c, 0x70, 0x69, 0x70, 0x65, 0x46, 0x69, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0xad, 0x02,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x50, 0x69, 0x70,
0x65, 0x46, 0x69, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0c, 0x70, 0x69, 0x70, 0x65, 0x46, 0x69,
0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x40, 0x0a, 0x0f, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69,
0x74, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x73, 0x18, 0xae, 0x02, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x15, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74,
0x42, 0x72, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x0f, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74,
0x42, 0x72, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x15, 0x74, 0x68, 0x72, 0x65,
0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x65,
0x73, 0x18, 0xaf, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x2e, 0x54, 0x68, 0x72, 0x65, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x77,
0x69, 0x74, 0x63, 0x68, 0x52, 0x15, 0x74, 0x68, 0x72, 0x65, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74,
0x69, 0x6f, 0x6e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x10, 0x68,
0x61, 0x6e, 0x64, 0x63, 0x61, 0x72, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18,
0xb0, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x48,
0x61, 0x6e, 0x64, 0x63, 0x61, 0x72, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, 0x10, 0x68,
0x61, 0x6e, 0x64, 0x63, 0x61, 0x72, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12,
0x31, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0xb1, 0x02,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x63,
0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x74, 0x69, 0x66, 0x69, 0x65,
0x72, 0x73, 0x12, 0x3a, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
0x6f, 0x72, 0x73, 0x18, 0xb2, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x6f, 0x64,
0x65, 0x6c, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52,
0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x4c,
0x0a, 0x13, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f,
0x72, 0x6d, 0x65, 0x72, 0x73, 0x18, 0xb3, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d,
0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x56, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e,
0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x52, 0x13, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65,
0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x73, 0x12, 0x37, 0x0a, 0x0c,
0x70, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0xb4, 0x02, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x50, 0x6f, 0x77, 0x65,
0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0c, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x6f,
0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x12, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x69,
0x6e, 0x67, 0x41, 0x72, 0x72, 0x65, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0xb5, 0x02, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4c, 0x69, 0x67, 0x68, 0x74,
0x6e, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x65, 0x73, 0x74, 0x65, 0x72, 0x52, 0x12, 0x6c, 0x69,
0x67, 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x65, 0x73, 0x74, 0x65, 0x72, 0x73,
0x12, 0x40, 0x0a, 0x0f, 0x65, 0x61, 0x72, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x73, 0x18, 0xb6, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x6f, 0x64,
0x65, 0x6c, 0x2e, 0x45, 0x61, 0x72, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x76, 0x69, 0x63,
0x65, 0x52, 0x0f, 0x65, 0x61, 0x72, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x76, 0x69, 0x63,
0x65, 0x73, 0x12, 0x3f, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x77, 0x69,
0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0xb7, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d,
0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x77, 0x69, 0x74,
0x63, 0x68, 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x77, 0x69, 0x74, 0x63,
0x68, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x77, 0x69, 0x72, 0x65, 0x43, 0x61, 0x62, 0x69, 0x6e,
0x65, 0x74, 0x73, 0x18, 0xb8, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x6f, 0x64,
0x65, 0x6c, 0x2e, 0x57, 0x69, 0x72, 0x65, 0x43, 0x61, 0x62, 0x69, 0x6e, 0x65, 0x74, 0x52, 0x0c,
0x77, 0x69, 0x72, 0x65, 0x43, 0x61, 0x62, 0x69, 0x6e, 0x65, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x0c,
0x61, 0x69, 0x72, 0x50, 0x61, 0x76, 0x69, 0x6c, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xb9, 0x02, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x41, 0x69, 0x72, 0x50,
0x61, 0x76, 0x69, 0x6c, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x69, 0x72, 0x50, 0x61, 0x76, 0x69,
0x6c, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x76, 0x65, 0x73, 0x18,
0xba, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x56,
0x61, 0x6c, 0x76, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x76, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x11,
0x67, 0x61, 0x73, 0x4d, 0x69, 0x78, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6d, 0x62, 0x65, 0x72,
0x73, 0x18, 0xbb, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x2e, 0x47, 0x61, 0x73, 0x4d, 0x69, 0x78, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6d, 0x62, 0x65,
0x72, 0x52, 0x11, 0x67, 0x61, 0x73, 0x4d, 0x69, 0x78, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6d,
0x62, 0x65, 0x72, 0x73, 0x12, 0x61, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x41, 0x69, 0x72, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x65,
0x72, 0x73, 0x18, 0xbc, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x6f, 0x64, 0x65,
0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x69, 0x72,
0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x52, 0x1a, 0x63, 0x6f, 0x6d,
0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x69, 0x72, 0x43, 0x6f, 0x6e, 0x64, 0x69,
0x74, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x55, 0x0a, 0x16, 0x61, 0x69, 0x72, 0x50, 0x75,
2023-12-25 14:09:29 +08:00
0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
2023-12-29 17:58:39 +08:00
0x73, 0x18, 0xbd, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x2e, 0x41, 0x69, 0x72, 0x50, 0x75, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x16, 0x61, 0x69, 0x72, 0x50, 0x75, 0x72, 0x69, 0x66,
0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x34,
0x0a, 0x0b, 0x61, 0x69, 0x72, 0x43, 0x75, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0xbe, 0x02,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x41, 0x69, 0x72,
0x43, 0x75, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x0b, 0x61, 0x69, 0x72, 0x43, 0x75, 0x72, 0x74,
0x61, 0x69, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x04, 0x66, 0x61, 0x6e, 0x73, 0x18, 0xbf, 0x02, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x46, 0x61, 0x6e, 0x52,
0x04, 0x66, 0x61, 0x6e, 0x73, 0x12, 0x40, 0x0a, 0x0f, 0x67, 0x61, 0x73, 0x45, 0x6e, 0x76, 0x69,
0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0xc0, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x15, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x47, 0x61, 0x73, 0x45, 0x6e, 0x76, 0x69, 0x72,
0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x67, 0x61, 0x73, 0x45, 0x6e, 0x76, 0x69, 0x72,
0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xce, 0x03, 0x0a, 0x0c, 0x53, 0x69, 0x67, 0x6e,
0x61, 0x6c, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x42, 0x0a, 0x10, 0x70, 0x68, 0x79, 0x73,
0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x50, 0x68, 0x79, 0x73, 0x69,
0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x70, 0x68, 0x79, 0x73,
0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x33, 0x0a, 0x0b,
0x63, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50,
0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0b, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74,
0x73, 0x12, 0x2a, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x73, 0x18, 0x05, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x54, 0x75, 0x72, 0x6e,
0x6f, 0x75, 0x74, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x73, 0x12, 0x27, 0x0a,
0x07, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d,
0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x07, 0x73,
0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x12, 0x36, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70,
0x6f, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d,
0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72,
0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x12, 0x24,
0x0a, 0x06, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c,
0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x53, 0x6c, 0x6f, 0x70, 0x65, 0x52, 0x06, 0x73, 0x6c,
0x6f, 0x70, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x13, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61,
0x6c, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x61, 0x6c, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x13, 0x73, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65,
0x73, 0x12, 0x45, 0x0a, 0x11, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f,
0x6e, 0x76, 0x65, 0x72, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d,
0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f,
0x6e, 0x76, 0x65, 0x72, 0x74, 0x52, 0x11, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72,
0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x73, 0x22, 0xdb, 0x01, 0x0a, 0x0f, 0x50, 0x68, 0x79,
0x73, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02,
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a,
0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09,
0x52, 0x0a, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x49, 0x64, 0x73, 0x12, 0x33, 0x0a, 0x0b,
0x61, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
2023-12-25 14:09:29 +08:00
0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
2023-12-29 17:58:39 +08:00
0x50, 0x6f, 0x72, 0x74, 0x52, 0x0b, 0x61, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72,
0x74, 0x12, 0x33, 0x0a, 0x0b, 0x62, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74,
0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0b, 0x62, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61,
0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01,
0x28, 0x09, 0x52, 0x12, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53,
0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9e, 0x01, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b,
0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x02, 0x6b, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65,
0x74, 0x65, 0x72, 0x52, 0x02, 0x6b, 0x6d, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x43, 0x68,
0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79,
0x70, 0x65, 0x12, 0x33, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74,
0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69,
0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x22, 0xcd, 0x03, 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e,
0x6f, 0x75, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x02, 0x6b, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x10, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65,
0x72, 0x52, 0x02, 0x6b, 0x6d, 0x12, 0x33, 0x0a, 0x0b, 0x61, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x50, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64,
0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0b, 0x61,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x62, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f,
0x72, 0x74, 0x52, 0x0b, 0x62, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12,
0x33, 0x0a, 0x0b, 0x63, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x05,
2023-12-25 14:09:29 +08:00
0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76,
2023-12-29 17:58:39 +08:00
0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0b, 0x63, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x50, 0x6f, 0x72, 0x74, 0x12, 0x4e, 0x0a, 0x11, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x61,
0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x20, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x2e,
0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70,
0x65, 0x52, 0x11, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65,
0x54, 0x79, 0x70, 0x65, 0x12, 0x5d, 0x0a, 0x19, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e,
0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e,
0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x19, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72,
2023-12-25 14:09:29 +08:00
0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f,
2023-12-29 17:58:39 +08:00
0x75, 0x70, 0x73, 0x22, 0x42, 0x0a, 0x11, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x63,
0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e,
0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x5a, 0x44, 0x4a, 0x39, 0x5f, 0x53, 0x69,
0x6e, 0x67, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x5a, 0x44, 0x4a, 0x39, 0x5f, 0x44,
0x6f, 0x75, 0x62, 0x6c, 0x65, 0x10, 0x02, 0x22, 0x95, 0x03, 0x0a, 0x06, 0x53, 0x69, 0x67, 0x6e,
0x61, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
0x69, 0x64, 0x12, 0x20, 0x0a, 0x02, 0x6b, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10,
2023-12-25 14:09:29 +08:00
0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72,
2023-12-29 17:58:39 +08:00
0x52, 0x02, 0x6b, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x49, 0x64, 0x12, 0x33, 0x0a, 0x0b, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x72,
0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0b, 0x74, 0x75, 0x72, 0x6e,
0x6f, 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x5d, 0x0a, 0x19, 0x65, 0x6c, 0x65, 0x63, 0x74,
0x72, 0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x6f, 0x64,
0x65, 0x6c, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6f, 0x6d,
0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x19, 0x65, 0x6c, 0x65,
0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x6d, 0x6f,
0x64, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6d, 0x6f, 0x64, 0x65,
0x6c, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05,
0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x22, 0x68, 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x06,
0x0a, 0x02, 0x48, 0x4c, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x4c, 0x55, 0x5f, 0x46, 0x55,
0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x44, 0x55, 0x5f, 0x59, 0x59, 0x10,
0x02, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x4c, 0x55, 0x5f, 0x59, 0x59, 0x10, 0x03, 0x12, 0x10, 0x0a,
0x0c, 0x48, 0x4c, 0x55, 0x5f, 0x46, 0x4c, 0x5f, 0x44, 0x55, 0x5f, 0x59, 0x59, 0x10, 0x04, 0x12,
0x0a, 0x0a, 0x06, 0x48, 0x4c, 0x55, 0x5f, 0x44, 0x55, 0x10, 0x05, 0x12, 0x06, 0x0a, 0x02, 0x41,
0x42, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x42, 0x55, 0x5f, 0x44, 0x55, 0x10, 0x07, 0x22,
0xe1, 0x01, 0x0a, 0x03, 0x50, 0x73, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61,
0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x73, 0x64, 0x41, 0x6d,
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x73, 0x64, 0x41,
0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x61, 0x73, 0x64, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x2e, 0x41, 0x73, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x09, 0x61, 0x73, 0x64, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x73, 0x12, 0x5d, 0x0a, 0x19, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e,
0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e,
2023-12-25 14:09:29 +08:00
0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
2023-12-29 17:58:39 +08:00
0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x19, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72,
0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x73, 0x22, 0x95, 0x02, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e,
0x64, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x02, 0x6b, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x10, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65,
0x72, 0x52, 0x02, 0x6b, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x0b, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x6f,
0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0b, 0x74, 0x75, 0x72,
0x6e, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65,
0x64, 0x54, 0x65, 0x6c, 0x65, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52,
0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x54, 0x65, 0x6c, 0x65, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x2b,
0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6d,
0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72,
0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x54,
0x79, 0x70, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x46, 0x42, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x57,
0x42, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x44, 0x42, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x56,
0x42, 0x10, 0x03, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x42, 0x10, 0x04, 0x22, 0x53, 0x0a, 0x05, 0x53,
0x6c, 0x6f, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x03, 0x6b, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65,
0x74, 0x65, 0x72, 0x52, 0x03, 0x6b, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x67, 0x72,
0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65,
0x22, 0x60, 0x0a, 0x12, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x75, 0x72,
0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x03, 0x6b, 0x6d, 0x73, 0x18, 0x02, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c, 0x6f,
0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x03, 0x6b, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61,
0x64, 0x69, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x61, 0x64, 0x69,
0x75, 0x73, 0x22, 0x7c, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74,
0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x0a,
0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54,
0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
0x1f, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e,
0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74,
0x22, 0x7d, 0x0a, 0x09, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74,
0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63,
0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12,
0x2e, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x10, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22,
0x78, 0x0a, 0x10, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x76,
0x65, 0x72, 0x74, 0x12, 0x22, 0x0a, 0x03, 0x6b, 0x6d, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x10, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74,
0x65, 0x72, 0x52, 0x03, 0x6b, 0x6d, 0x41, 0x12, 0x22, 0x0a, 0x03, 0x6b, 0x6d, 0x42, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c,
0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x03, 0x6b, 0x6d, 0x42, 0x12, 0x1c, 0x0a, 0x09, 0x73,
0x61, 0x6d, 0x65, 0x54, 0x72, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09,
0x73, 0x61, 0x6d, 0x65, 0x54, 0x72, 0x65, 0x6e, 0x64, 0x22, 0x89, 0x02, 0x0a, 0x05, 0x52, 0x65,
0x6c, 0x61, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x52,
0x65, 0x6c, 0x61, 0x79, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65,
0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x04,
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22,
0x93, 0x01, 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b,
0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x50, 0x58, 0x43, 0x5f, 0x31,
0x30, 0x30, 0x30, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x50, 0x58, 0x43, 0x5f, 0x31, 0x37,
0x30, 0x30, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x57, 0x4a, 0x58, 0x43, 0x5f, 0x34, 0x38,
0x30, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x4a, 0x57, 0x4a, 0x58, 0x43, 0x5f, 0x48, 0x31, 0x32,
0x35, 0x5f, 0x38, 0x30, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x57, 0x58, 0x43, 0x5f, 0x31,
0x37, 0x30, 0x30, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x57, 0x58, 0x43, 0x5f, 0x48, 0x33,
0x34, 0x30, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x4a, 0x59, 0x4a, 0x58, 0x43, 0x5f, 0x31, 0x36,
0x30, 0x5f, 0x32, 0x36, 0x30, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x4a, 0x5a, 0x58, 0x43, 0x5f,
0x48, 0x31, 0x38, 0x10, 0x08, 0x22, 0x3b, 0x0a, 0x15, 0x50, 0x68, 0x61, 0x73, 0x65, 0x46, 0x61,
0x69, 0x6c, 0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12,
0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x22, 0x52, 0x0a, 0x18, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63,
0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12,
0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49,
0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x22, 0xef, 0x01, 0x0a, 0x06, 0x42, 0x75, 0x74, 0x74, 0x6f,
0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54,
0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6d, 0x6f, 0x64, 0x65,
0x6c, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54,
0x79, 0x70, 0x65, 0x52, 0x0a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12,
0x1a, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x22, 0x6b, 0x0a, 0x0a, 0x42,
0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b,
0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f, 0x5f, 0x52, 0x65, 0x73,
0x65, 0x74, 0x5f, 0x50, 0x72, 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f,
0x5f, 0x52, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x55, 0x70, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x52,
0x65, 0x73, 0x65, 0x74, 0x5f, 0x50, 0x72, 0x65, 0x73, 0x73, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08,
0x52, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x55, 0x70, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x4b, 0x65,
0x79, 0x5f, 0x4b, 0x6e, 0x6f, 0x62, 0x10, 0x05, 0x22, 0x97, 0x01, 0x0a, 0x05, 0x4c, 0x69, 0x67,
0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4c,
0x69, 0x67, 0x68, 0x74, 0x2e, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74,
0x52, 0x06, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x22, 0x38, 0x0a, 0x0b, 0x4c, 0x69, 0x67, 0x68,
0x74, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x05, 0x0a, 0x01, 0x4c, 0x10, 0x00, 0x12, 0x05,
0x0a, 0x01, 0x48, 0x10, 0x01, 0x12, 0x05, 0x0a, 0x01, 0x55, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02,
0x48, 0x55, 0x10, 0x03, 0x12, 0x05, 0x0a, 0x01, 0x42, 0x10, 0x04, 0x12, 0x05, 0x0a, 0x01, 0x41,
0x10, 0x05, 0x22, 0x2b, 0x0a, 0x05, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63,
0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22,
0x97, 0x01, 0x0a, 0x07, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69,
2023-12-22 15:00:34 +08:00
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63,
0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12,
2023-12-29 17:58:39 +08:00
0x40, 0x0a, 0x0f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x52, 0x0f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x12, 0x26, 0x0a, 0x05, 0x64, 0x65, 0x63, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x10, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45,
0x63, 0x63, 0x52, 0x05, 0x64, 0x65, 0x63, 0x63, 0x73, 0x22, 0x8d, 0x01, 0x0a, 0x09, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63,
0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63,
0x65, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69,
0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x03, 0x65, 0x67, 0x73, 0x18, 0x03, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x45, 0x6c, 0x65, 0x63,
0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x52, 0x03, 0x65, 0x67, 0x73, 0x22, 0x61, 0x0a, 0x0f, 0x45, 0x6c, 0x65,
0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04,
0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,
0x12, 0x3a, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x45, 0x6c, 0x65,
0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x58, 0x0a, 0x13,
0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x02, 0x69, 0x64, 0x12, 0x31, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70,
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69,
0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x03, 0x4d, 0x6b, 0x78, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14,
0x0a, 0x05, 0x70, 0x73, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70,
0x73, 0x64, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x63, 0x62, 0x42, 0x75, 0x74, 0x74, 0x6f,
0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x63, 0x62, 0x42, 0x75,
0x74, 0x74, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6f, 0x62, 0x42, 0x75, 0x74,
0x74, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6f, 0x62,
0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x62, 0x42,
0x75, 0x74, 0x74, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70,
0x61, 0x62, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x63,
0x62, 0x6a, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x63, 0x62, 0x6a,
0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01,
0x28, 0x09, 0x52, 0x06, 0x70, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61,
0x62, 0x6a, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x62, 0x6a,
0x49, 0x64, 0x22, 0xef, 0x01, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12,
2023-12-27 14:45:46 +08:00
0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63,
2023-12-29 17:58:39 +08:00
0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
0x64, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x68,
0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12,
0x3f, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x69, 0x72, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x22, 0x32, 0x0a, 0x11, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x69, 0x72, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e,
0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x55, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x6f,
0x77, 0x6e, 0x10, 0x02, 0x22, 0x3d, 0x0a, 0x03, 0x4b, 0x65, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63,
0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12,
0x12, 0x0a, 0x04, 0x67, 0x65, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x67,
0x65, 0x61, 0x72, 0x22, 0xf2, 0x01, 0x0a, 0x15, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69,
0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x12, 0x1c, 0x0a,
0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x74,
0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03,
0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x49,
0x64, 0x12, 0x25, 0x0a, 0x06, 0x63, 0x6a, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x43, 0x6a, 0x44, 0x61, 0x74, 0x61,
0x52, 0x06, 0x63, 0x6a, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x06, 0x71, 0x64, 0x4c, 0x69,
0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x2e, 0x51, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x71, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12,
0x47, 0x0a, 0x11, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x50, 0x6f,
0x69, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x6f, 0x64,
0x65, 0x6c, 0x2e, 0x43, 0x69, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65,
0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x11, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
0x64, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x5d, 0x0a, 0x06, 0x43, 0x6a, 0x44, 0x61,
0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x03, 0x72, 0x6f, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28,
0x05, 0x52, 0x03, 0x63, 0x6f, 0x6c, 0x12, 0x2f, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x52, 0x65, 0x6c,
0x61, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65,
0x6c, 0x2e, 0x43, 0x6a, 0x44, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x09, 0x72, 0x65,
0x66, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x73, 0x22, 0x34, 0x0a, 0x0a, 0x43, 0x6a, 0x44, 0x61, 0x74,
0x61, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x49, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x12,
0x0c, 0x0a, 0x01, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x01, 0x71, 0x22, 0x4a, 0x0a,
0x06, 0x51, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x6f, 0x77, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x6f, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6f, 0x6c,
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x63, 0x6f, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x72,
0x65, 0x66, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09,
0x72, 0x65, 0x66, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x73, 0x22, 0x48, 0x0a, 0x08, 0x41, 0x73, 0x64,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x73,
0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72,
0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03,
0x65, 0x6e, 0x64, 0x22, 0x44, 0x0a, 0x12, 0x43, 0x69, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x43, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x6f, 0x77,
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x73,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xbc, 0x03, 0x0a, 0x05, 0x52, 0x6f,
0x75, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74,
0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x49,
0x64, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63,
0x65, 0x49, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x76, 0x69,
0x63, 0x65, 0x49, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63,
0x74, 0x69, 0x6e, 0x67, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03,
0x28, 0x09, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x52,
0x6f, 0x75, 0x74, 0x65, 0x49, 0x64, 0x73, 0x12, 0x34, 0x0a, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65,
0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6d, 0x6f, 0x64,
0x65, 0x6c, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79,
0x70, 0x65, 0x52, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a,
0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x1c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x54, 0x75,
0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x74,
0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x73, 0x1a, 0x39, 0x0a, 0x0f, 0x54, 0x75, 0x72, 0x6e, 0x6f,
0x75, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f,
0x72, 0x6d, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6e, 0x6f, 0x72, 0x6d,
0x61, 0x6c, 0x22, 0x54, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
0x0d, 0x0a, 0x09, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x0d,
0x0a, 0x09, 0x44, 0x45, 0x50, 0x41, 0x52, 0x54, 0x55, 0x52, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a,
0x08, 0x53, 0x48, 0x55, 0x4e, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x50,
0x41, 0x53, 0x53, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x4f, 0x4e, 0x47, 0x5f, 0x53, 0x48,
2024-01-05 11:30:39 +08:00
0x55, 0x4e, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x22, 0x7c, 0x0a, 0x04, 0x50, 0x69, 0x70, 0x65,
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x63, 0x6f, 0x64, 0x65, 0x12, 0x27, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x12, 0x27, 0x0a,
0x05, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d,
0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52,
0x05, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x22, 0x43, 0x0a, 0x0b, 0x50, 0x69, 0x70, 0x65, 0x46, 0x69,
0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x75, 0x6d,
0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x75, 0x6d, 0x22, 0x34, 0x0a, 0x0e, 0x43,
0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x0e, 0x0a,
2023-12-25 17:31:35 +08:00
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a,
0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64,
2024-01-05 11:30:39 +08:00
0x65, 0x22, 0x39, 0x0a, 0x13, 0x54, 0x68, 0x72, 0x65, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69,
0x6f, 0x6e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
2023-12-29 17:58:39 +08:00
0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x34, 0x0a, 0x0e,
2024-01-05 11:30:39 +08:00
0x48, 0x61, 0x6e, 0x64, 0x63, 0x61, 0x72, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x0e,
2023-12-27 14:45:46 +08:00
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12,
0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f,
2024-01-05 11:30:39 +08:00
0x64, 0x65, 0x22, 0x2f, 0x0a, 0x09, 0x52, 0x65, 0x63, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12,
2023-12-29 17:58:39 +08:00
0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63,
2024-01-05 11:30:39 +08:00
0x6f, 0x64, 0x65, 0x22, 0x32, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
0x74, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x58, 0x0a, 0x12, 0x56, 0x6f, 0x6c, 0x74, 0x61,
0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x12, 0x0e, 0x0a,
2023-12-29 17:58:39 +08:00
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a,
0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64,
2024-01-05 11:30:39 +08:00
0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x65,
0x31, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x65,
0x32, 0x22, 0x6b, 0x0a, 0x0b, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x63, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x73, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
0x52, 0x02, 0x73, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08,
0x52, 0x02, 0x61, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x18,
0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x22, 0x37,
0x0a, 0x11, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x65, 0x73,
0x74, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x34, 0x0a, 0x0e, 0x45, 0x61, 0x72, 0x74, 0x68,
0x69, 0x6e, 0x67, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x33, 0x0a,
0x0d, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12,
0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x22, 0x31, 0x0a, 0x0b, 0x57, 0x69, 0x72, 0x65, 0x43, 0x61, 0x62, 0x69, 0x6e, 0x65,
0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x0b, 0x41, 0x69, 0x72, 0x50, 0x61, 0x76,
0x69, 0x6c, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3b, 0x0a, 0x0c, 0x70, 0x61, 0x76,
0x69, 0x6c, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x17, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x41, 0x69, 0x72, 0x50, 0x61, 0x76, 0x69, 0x6c,
0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x70, 0x61, 0x76, 0x69, 0x6c, 0x69,
0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13,
0x0a, 0x0f, 0x45, 0x78, 0x68, 0x61, 0x75, 0x73, 0x74, 0x50, 0x61, 0x76, 0x69, 0x6c, 0x69, 0x6f,
0x6e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x69, 0x72, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79,
0x50, 0x61, 0x76, 0x69, 0x6c, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x22, 0xc9, 0x01, 0x0a, 0x05, 0x56,
0x61, 0x6c, 0x76, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x76,
0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6d, 0x6f,
0x64, 0x65, 0x6c, 0x2e, 0x56, 0x61, 0x6c, 0x76, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09,
0x76, 0x61, 0x6c, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6b, 0x0a, 0x04, 0x54, 0x79, 0x70,
0x65, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x6e,
0x74, 0x72, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x76, 0x65, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x45,
0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x41, 0x69, 0x72, 0x56, 0x61, 0x6c, 0x76, 0x65, 0x10,
0x01, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x41, 0x69, 0x72, 0x56, 0x61, 0x6c, 0x76, 0x65, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x6c,
0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x42, 0x75, 0x74, 0x74, 0x65, 0x72, 0x66, 0x6c, 0x79, 0x56,
0x61, 0x6c, 0x76, 0x65, 0x10, 0x03, 0x22, 0x36, 0x0a, 0x10, 0x47, 0x61, 0x73, 0x4d, 0x69, 0x78,
0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3f,
0x0a, 0x19, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x69, 0x72,
0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69,
2023-12-29 17:58:39 +08:00
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63,
2024-01-05 11:30:39 +08:00
0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22,
0x3b, 0x0a, 0x15, 0x41, 0x69, 0x72, 0x50, 0x75, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x30, 0x0a, 0x0a,
0x41, 0x69, 0x72, 0x43, 0x75, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xa3,
0x01, 0x0a, 0x03, 0x46, 0x61, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x66, 0x61,
0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x6d, 0x6f,
0x64, 0x65, 0x6c, 0x2e, 0x46, 0x61, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x66, 0x61,
0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4d, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a,
0x09, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x46, 0x61, 0x6e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b,
0x46, 0x63, 0x42, 0x79, 0x70, 0x61, 0x73, 0x73, 0x46, 0x61, 0x6e, 0x10, 0x01, 0x12, 0x10, 0x0a,
0x0c, 0x53, 0x6f, 0x66, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x46, 0x61, 0x6e, 0x10, 0x02, 0x12,
0x13, 0x0a, 0x0f, 0x48, 0x69, 0x67, 0x68, 0x4c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x65, 0x64, 0x46,
0x61, 0x6e, 0x10, 0x03, 0x22, 0x34, 0x0a, 0x0e, 0x47, 0x61, 0x73, 0x45, 0x6e, 0x76, 0x69, 0x72,
0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x2a, 0x81, 0x16, 0x0a, 0x0a, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10,
0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f,
0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10,
0x01, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f,
0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x6f,
0x75, 0x74, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79,
0x70, 0x65, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70,
0x6f, 0x6e, 0x64, 0x65, 0x72, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63,
0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x53, 0x6c, 0x6f, 0x70, 0x65, 0x10, 0x06, 0x12, 0x21, 0x0a,
0x1d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x53, 0x65, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x10, 0x07,
0x12, 0x13, 0x0a, 0x0f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4c,
0x69, 0x6e, 0x6b, 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54,
0x79, 0x70, 0x65, 0x5f, 0x4c, 0x69, 0x6e, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x10, 0x09, 0x12, 0x14,
0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x52, 0x65, 0x6c,
0x61, 0x79, 0x10, 0x0a, 0x12, 0x24, 0x0a, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79,
0x70, 0x65, 0x5f, 0x50, 0x68, 0x61, 0x73, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x50,
0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0x0b, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x10,
0x0c, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f,
0x4c, 0x69, 0x67, 0x68, 0x74, 0x10, 0x0d, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63,
0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x10, 0x0e, 0x12, 0x12, 0x0a,
0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x50, 0x73, 0x64, 0x10,
0x0f, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f,
0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x6b, 0x78, 0x10, 0x11, 0x12, 0x12, 0x0a,
0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4b, 0x65, 0x79, 0x10,
0x12, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f,
0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x10, 0x13, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x46,
0x61, 0x75, 0x6c, 0x74, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x10, 0x14, 0x12, 0x17, 0x0a, 0x13, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x65,
0x72, 0x73, 0x10, 0x15, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79,
0x70, 0x65, 0x5f, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x10, 0x16,
0x12, 0x14, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x52,
0x6f, 0x75, 0x74, 0x65, 0x10, 0x17, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x54, 0x79, 0x70, 0x65, 0x5f, 0x44, 0x6f, 0x6f, 0x72, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x10,
0xc3, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65,
0x5f, 0x45, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x10, 0xc4, 0x02,
0x12, 0x18, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x45,
0x78, 0x69, 0x74, 0x47, 0x61, 0x74, 0x65, 0x10, 0xc5, 0x02, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x77, 0x6f, 0x57, 0x61, 0x79, 0x47,
0x61, 0x74, 0x65, 0x10, 0xc6, 0x02, 0x12, 0x24, 0x0a, 0x1f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x56, 0x65, 0x6e, 0x64, 0x69,
0x6e, 0x67, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x10, 0xc7, 0x02, 0x12, 0x25, 0x0a, 0x20,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x53, 0x65, 0x6d, 0x69, 0x41,
0x75, 0x74, 0x6f, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65,
0x10, 0xc8, 0x02, 0x12, 0x25, 0x0a, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70,
0x65, 0x5f, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x67,
0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x10, 0xc9, 0x02, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x41, 0x69, 0x72, 0x43, 0x75, 0x72, 0x74,
0x61, 0x69, 0x6e, 0x10, 0xca, 0x02, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x68, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x74,
0x10, 0xcb, 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70,
0x65, 0x5f, 0x43, 0x69, 0x76, 0x69, 0x6c, 0x44, 0x65, 0x66, 0x65, 0x6e, 0x73, 0x65, 0x44, 0x6f,
0x6f, 0x72, 0x10, 0xcc, 0x02, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54,
0x79, 0x70, 0x65, 0x5f, 0x45, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x10, 0xcd, 0x02,
0x12, 0x18, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x45,
0x6c, 0x65, 0x76, 0x61, 0x74, 0x6f, 0x72, 0x10, 0xce, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e,
0x63, 0x79, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x69, 0x6e, 0x67, 0x10, 0xcf, 0x02, 0x12, 0x13, 0x0a,
0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x46, 0x61, 0x6e, 0x10,
0xd0, 0x02, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65,
0x5f, 0x41, 0x69, 0x72, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x10,
0xd1, 0x02, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65,
0x5f, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x10, 0xd2, 0x02, 0x12, 0x20,
0x0a, 0x1b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4c, 0x69, 0x67,
0x68, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x10, 0xd3, 0x02,
0x12, 0x23, 0x0a, 0x1e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x50,
0x6f, 0x77, 0x65, 0x72, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x47, 0x75, 0x69, 0x64, 0x61, 0x6e,
0x63, 0x65, 0x10, 0xd4, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54,
0x79, 0x70, 0x65, 0x5f, 0x45, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x47, 0x75, 0x69,
0x64, 0x61, 0x6e, 0x63, 0x65, 0x10, 0xd5, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x61, 0x74,
0x65, 0x47, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x10, 0xd6, 0x02, 0x12, 0x29, 0x0a, 0x24,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x53, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x45, 0x76, 0x61, 0x63, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x75, 0x69, 0x64,
0x61, 0x6e, 0x63, 0x65, 0x10, 0xd7, 0x02, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x65, 0x76, 0x69, 0x63,
0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x77, 0x69,
0x74, 0x63, 0x68, 0x10, 0xd8, 0x02, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x54, 0x79, 0x70, 0x65, 0x5f, 0x50, 0x6c, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c,
0x65, 0x72, 0x10, 0xd9, 0x02, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54,
0x79, 0x70, 0x65, 0x5f, 0x57, 0x61, 0x74, 0x65, 0x72, 0x50, 0x75, 0x6d, 0x70, 0x10, 0xda, 0x02,
0x12, 0x19, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x57,
0x61, 0x74, 0x65, 0x72, 0x54, 0x61, 0x6e, 0x6b, 0x10, 0xdb, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x50, 0x75, 0x72, 0x69, 0x66, 0x69,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, 0xdc, 0x02, 0x12,
0x18, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x68,
0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x10, 0xdd, 0x02, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x4f, 0x32, 0x53, 0x65, 0x6e, 0x73, 0x6f,
0x72, 0x10, 0xde, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79,
0x70, 0x65, 0x5f, 0x57, 0x61, 0x74, 0x65, 0x72, 0x54, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x10,
0xdf, 0x02, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65,
0x5f, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x10,
0xe0, 0x02, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65,
0x5f, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x10, 0xe1, 0x02, 0x12, 0x21,
0x0a, 0x1c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x65, 0x6d,
0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x10, 0xe2,
0x02, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f,
0x43, 0x6f, 0x6f, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x77, 0x65, 0x72, 0x10, 0xe4, 0x02, 0x12,
0x1e, 0x0a, 0x19, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x57, 0x61,
0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x10, 0xe5, 0x02, 0x12,
0x1b, 0x0a, 0x16, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x65,
0x74, 0x77, 0x6f, 0x72, 0x6b, 0x48, 0x6f, 0x73, 0x74, 0x10, 0xe6, 0x02, 0x12, 0x1d, 0x0a, 0x18,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x53, 0x6d, 0x6f, 0x6b, 0x65,
0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0xe7, 0x02, 0x12, 0x23, 0x0a, 0x1e, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72,
0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0xe8, 0x02,
0x12, 0x25, 0x0a, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d,
0x61, 0x6e, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x72, 0x65, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x42, 0x75,
0x74, 0x74, 0x6f, 0x6e, 0x10, 0xe9, 0x02, 0x12, 0x23, 0x0a, 0x1e, 0x44, 0x65, 0x76, 0x69, 0x63,
0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x47, 0x61, 0x73, 0x46, 0x69, 0x72, 0x65, 0x45, 0x78, 0x74,
0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x10, 0xea, 0x02, 0x12, 0x19, 0x0a, 0x14,
2023-12-29 17:58:39 +08:00
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x41, 0x6c, 0x61, 0x72, 0x6d,
2024-01-05 11:30:39 +08:00
0x42, 0x65, 0x6c, 0x6c, 0x10, 0xeb, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x65, 0x76, 0x69, 0x63,
0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x46, 0x69, 0x72, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x65, 0x72,
0x53, 0x68, 0x75, 0x74, 0x74, 0x65, 0x72, 0x10, 0xec, 0x02, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x46, 0x61, 0x73, 0x41, 0x63, 0x73, 0x10,
0xed, 0x02, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65,
0x5f, 0x46, 0x61, 0x73, 0x41, 0x66, 0x63, 0x10, 0xee, 0x02, 0x12, 0x22, 0x0a, 0x1d, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x6f, 0x6e, 0x46, 0x69, 0x72, 0x65,
0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x10, 0xef, 0x02, 0x12, 0x22,
0x0a, 0x1d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x57, 0x61, 0x74,
0x65, 0x72, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x10,
0xf0, 0x02, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65,
0x5f, 0x50, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e,
0x10, 0xf1, 0x02, 0x12, 0x27, 0x0a, 0x22, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70,
2023-12-29 17:58:39 +08:00
0x65, 0x5f, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x6e,
2024-01-05 11:30:39 +08:00
0x73, 0x69, 0x6e, 0x67, 0x43, 0x61, 0x62, 0x6c, 0x65, 0x10, 0xf2, 0x02, 0x12, 0x1a, 0x0a, 0x15,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x46, 0x69, 0x72, 0x65, 0x44,
0x61, 0x6d, 0x70, 0x65, 0x72, 0x10, 0xf3, 0x02, 0x12, 0x27, 0x0a, 0x22, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x53,
0x6d, 0x6f, 0x6b, 0x65, 0x46, 0x69, 0x72, 0x65, 0x44, 0x61, 0x6d, 0x70, 0x65, 0x72, 0x10, 0xf4,
0x02, 0x12, 0x29, 0x0a, 0x24, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f,
0x46, 0x69, 0x72, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x10, 0xf5, 0x02, 0x12, 0x19, 0x0a, 0x14,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x46, 0x6c, 0x6f, 0x6f, 0x64,
0x47, 0x61, 0x74, 0x65, 0x10, 0xf6, 0x02, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x65, 0x76, 0x69, 0x63,
0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x57, 0x69, 0x72, 0x65, 0x43, 0x61, 0x62, 0x69, 0x6e, 0x65,
0x74, 0x10, 0xf7, 0x02, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79,
0x70, 0x65, 0x5f, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x65,
0x72, 0x10, 0xf8, 0x02, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79,
0x70, 0x65, 0x5f, 0x52, 0x65, 0x63, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x10, 0xf9, 0x02, 0x12,
0x1e, 0x0a, 0x19, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x48, 0x61,
0x6e, 0x64, 0x63, 0x61, 0x72, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x10, 0xfa, 0x02, 0x12,
0x22, 0x0a, 0x1d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x56, 0x6f,
0x6c, 0x74, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72,
0x10, 0xfb, 0x02, 0x12, 0x23, 0x0a, 0x1e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70,
0x65, 0x5f, 0x54, 0x68, 0x72, 0x65, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53,
0x77, 0x69, 0x74, 0x63, 0x68, 0x10, 0xfc, 0x02, 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67,
0x41, 0x72, 0x72, 0x65, 0x73, 0x74, 0x65, 0x72, 0x10, 0xfd, 0x02, 0x12, 0x1c, 0x0a, 0x17, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e,
0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0xfe, 0x02, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x50, 0x69, 0x70, 0x65, 0x10, 0xff, 0x02, 0x12,
0x1b, 0x0a, 0x16, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x50, 0x69,
0x70, 0x65, 0x46, 0x69, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x80, 0x03, 0x12, 0x1b, 0x0a, 0x16,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x50, 0x6f, 0x77, 0x65, 0x72,
0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x10, 0x81, 0x03, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x45, 0x61, 0x72, 0x74, 0x68, 0x69, 0x6e, 0x67,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, 0x82, 0x03, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x41, 0x69, 0x72, 0x50, 0x61, 0x76, 0x69, 0x6c,
0x69, 0x6f, 0x6e, 0x10, 0x83, 0x03, 0x12, 0x15, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x54, 0x79, 0x70, 0x65, 0x5f, 0x56, 0x61, 0x6c, 0x76, 0x65, 0x10, 0x84, 0x03, 0x12, 0x20, 0x0a,
0x1b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x47, 0x61, 0x73, 0x4d,
0x69, 0x78, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x85, 0x03, 0x12,
0x29, 0x0a, 0x24, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f,
0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x69, 0x72, 0x43, 0x6f, 0x6e, 0x64,
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x10, 0x86, 0x03, 0x12, 0x25, 0x0a, 0x20, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x41, 0x69, 0x72, 0x50, 0x75, 0x72, 0x69,
0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, 0x87,
2023-12-29 17:58:39 +08:00
0x03, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f,
2024-01-05 11:30:39 +08:00
0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x88, 0x03, 0x2a, 0x2c,
0x0a, 0x04, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00,
0x12, 0x05, 0x0a, 0x01, 0x41, 0x10, 0x01, 0x12, 0x05, 0x0a, 0x01, 0x42, 0x10, 0x02, 0x12, 0x05,
0x0a, 0x01, 0x43, 0x10, 0x03, 0x12, 0x05, 0x0a, 0x01, 0x44, 0x10, 0x04, 0x2a, 0x20, 0x0a, 0x09,
0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x45, 0x46,
0x54, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x01, 0x2a, 0x43,
0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65,
0x12, 0x0c, 0x0a, 0x08, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x10, 0x00, 0x12, 0x0f,
0x0a, 0x0b, 0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x10, 0x01, 0x12,
0x12, 0x0a, 0x0e, 0x49, 0x6e, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x4a, 0x6f, 0x69, 0x6e,
0x74, 0x10, 0x02, 0x42, 0x1a, 0x5a, 0x18, 0x2e, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
0x6f, 0x72, 0x79, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_model_proto_rawDescOnce sync.Once
file_model_proto_rawDescData = file_model_proto_rawDesc
)
func file_model_proto_rawDescGZIP() []byte {
file_model_proto_rawDescOnce.Do(func() {
file_model_proto_rawDescData = protoimpl.X.CompressGZIP(file_model_proto_rawDescData)
})
return file_model_proto_rawDescData
}
2024-01-05 11:30:39 +08:00
var file_model_proto_enumTypes = make([]protoimpl.EnumInfo, 15)
2023-12-29 17:58:39 +08:00
var file_model_proto_msgTypes = make([]protoimpl.MessageInfo, 55)
var file_model_proto_goTypes = []interface{}{
2023-12-25 09:23:13 +08:00
(DeviceType)(0), // 0: model.DeviceType
(Port)(0), // 1: model.Port
(Direction)(0), // 2: model.Direction
(CheckPointType)(0), // 3: model.CheckPointType
(Turnout_SwitchMachineType)(0), // 4: model.Turnout.SwitchMachineType
(Signal_Model)(0), // 5: model.Signal.Model
(Transponder_Type)(0), // 6: model.Transponder.Type
(Relay_Model)(0), // 7: model.Relay.Model
(Button_ButtonType)(0), // 8: model.Button.ButtonType
(Light_LightAspect)(0), // 9: model.Light.LightAspect
2023-12-29 17:58:39 +08:00
(Platform_PlatformDirection)(0), // 10: model.Platform.PlatformDirection
(Route_RouteType)(0), // 11: model.Route.RouteType
2024-01-05 11:30:39 +08:00
(AirPavilion_Type)(0), // 12: model.AirPavilion.Type
(Valve_Type)(0), // 13: model.Valve.Type
(Fan_Type)(0), // 14: model.Fan.Type
(*Repository)(nil), // 15: model.Repository
(*SignalLayout)(nil), // 16: model.SignalLayout
(*PhysicalSection)(nil), // 17: model.PhysicalSection
(*CheckPoint)(nil), // 18: model.CheckPoint
(*Turnout)(nil), // 19: model.Turnout
(*Signal)(nil), // 20: model.Signal
(*Psd)(nil), // 21: model.Psd
(*Transponder)(nil), // 22: model.Transponder
(*Slope)(nil), // 23: model.Slope
(*SectionalCurvature)(nil), // 24: model.SectionalCurvature
(*DevicePort)(nil), // 25: model.DevicePort
(*Kilometer)(nil), // 26: model.Kilometer
(*KilometerConvert)(nil), // 27: model.KilometerConvert
(*Relay)(nil), // 28: model.Relay
(*PhaseFailureProtector)(nil), // 29: model.PhaseFailureProtector
(*ElectronicComponentGroup)(nil), // 30: model.ElectronicComponentGroup
(*Button)(nil), // 31: model.Button
(*Light)(nil), // 32: model.Light
(*Alarm)(nil), // 33: model.Alarm
(*Station)(nil), // 34: model.Station
(*DeviceEcc)(nil), // 35: model.DeviceEcc
(*ElectronicGroup)(nil), // 36: model.ElectronicGroup
(*ElectronicComponent)(nil), // 37: model.ElectronicComponent
(*Mkx)(nil), // 38: model.Mkx
(*Platform)(nil), // 39: model.Platform
(*Key)(nil), // 40: model.Key
(*CentralizedStationRef)(nil), // 41: model.CentralizedStationRef
(*CjData)(nil), // 42: model.CjData
(*CjDataItem)(nil), // 43: model.CjDataItem
(*QdData)(nil), // 44: model.QdData
(*AsdGroup)(nil), // 45: model.AsdGroup
(*CiSectionCodePoint)(nil), // 46: model.CiSectionCodePoint
(*Route)(nil), // 47: model.Route
(*Pipe)(nil), // 48: model.Pipe
(*PipeFitting)(nil), // 49: model.PipeFitting
(*CircuitBreaker)(nil), // 50: model.CircuitBreaker
(*ThreePositionSwitch)(nil), // 51: model.ThreePositionSwitch
(*HandcartSwitch)(nil), // 52: model.HandcartSwitch
(*Rectifier)(nil), // 53: model.Rectifier
(*Disconnector)(nil), // 54: model.Disconnector
(*VoltageTransformer)(nil), // 55: model.VoltageTransformer
(*PowerSource)(nil), // 56: model.PowerSource
(*LightningArrester)(nil), // 57: model.LightningArrester
(*EarthingDevice)(nil), // 58: model.EarthingDevice
(*NetworkSwitch)(nil), // 59: model.NetworkSwitch
(*WireCabinet)(nil), // 60: model.WireCabinet
(*AirPavilion)(nil), // 61: model.AirPavilion
(*Valve)(nil), // 62: model.Valve
(*GasMixingChamber)(nil), // 63: model.GasMixingChamber
(*CombinationAirConditioner)(nil), // 64: model.CombinationAirConditioner
(*AirPurificationDevice)(nil), // 65: model.AirPurificationDevice
(*AirCurtain)(nil), // 66: model.AirCurtain
(*Fan)(nil), // 67: model.Fan
(*GasEnvironment)(nil), // 68: model.GasEnvironment
(*Route_TurnoutPosition)(nil), // 69: model.Route.TurnoutPosition
}
var file_model_proto_depIdxs = []int32{
2024-01-05 11:30:39 +08:00
17, // 0: model.Repository.physicalSections:type_name -> model.PhysicalSection
18, // 1: model.Repository.checkPoints:type_name -> model.CheckPoint
19, // 2: model.Repository.turnouts:type_name -> model.Turnout
20, // 3: model.Repository.signals:type_name -> model.Signal
22, // 4: model.Repository.transponders:type_name -> model.Transponder
23, // 5: model.Repository.slopes:type_name -> model.Slope
24, // 6: model.Repository.sectionalCurvatures:type_name -> model.SectionalCurvature
27, // 7: model.Repository.kilometerConverts:type_name -> model.KilometerConvert
28, // 8: model.Repository.relays:type_name -> model.Relay
29, // 9: model.Repository.phaseFailureProtectors:type_name -> model.PhaseFailureProtector
31, // 10: model.Repository.buttons:type_name -> model.Button
21, // 11: model.Repository.psds:type_name -> model.Psd
32, // 12: model.Repository.lights:type_name -> model.Light
33, // 13: model.Repository.alarms:type_name -> model.Alarm
34, // 14: model.Repository.stations:type_name -> model.Station
38, // 15: model.Repository.mkxs:type_name -> model.Mkx
39, // 16: model.Repository.platforms:type_name -> model.Platform
40, // 17: model.Repository.Keys:type_name -> model.Key
41, // 18: model.Repository.CentralizedStationRefs:type_name -> model.CentralizedStationRef
47, // 19: model.Repository.routes:type_name -> model.Route
48, // 20: model.Repository.pipes:type_name -> model.Pipe
49, // 21: model.Repository.pipeFittings:type_name -> model.PipeFitting
50, // 22: model.Repository.circuitBreakers:type_name -> model.CircuitBreaker
51, // 23: model.Repository.threePositionSwitches:type_name -> model.ThreePositionSwitch
52, // 24: model.Repository.handcartSwitches:type_name -> model.HandcartSwitch
53, // 25: model.Repository.rectifiers:type_name -> model.Rectifier
54, // 26: model.Repository.disconnectors:type_name -> model.Disconnector
55, // 27: model.Repository.voltageTransformers:type_name -> model.VoltageTransformer
56, // 28: model.Repository.powerSources:type_name -> model.PowerSource
57, // 29: model.Repository.lightningArresters:type_name -> model.LightningArrester
58, // 30: model.Repository.earthingDevices:type_name -> model.EarthingDevice
59, // 31: model.Repository.networkSwitches:type_name -> model.NetworkSwitch
60, // 32: model.Repository.wireCabinets:type_name -> model.WireCabinet
61, // 33: model.Repository.airPavilions:type_name -> model.AirPavilion
62, // 34: model.Repository.valves:type_name -> model.Valve
63, // 35: model.Repository.gasMixingChambers:type_name -> model.GasMixingChamber
64, // 36: model.Repository.combinationAirConditioners:type_name -> model.CombinationAirConditioner
65, // 37: model.Repository.airPurificationDevices:type_name -> model.AirPurificationDevice
66, // 38: model.Repository.airCurtains:type_name -> model.AirCurtain
67, // 39: model.Repository.fans:type_name -> model.Fan
68, // 40: model.Repository.gasEnvironments:type_name -> model.GasEnvironment
17, // 41: model.SignalLayout.physicalSections:type_name -> model.PhysicalSection
18, // 42: model.SignalLayout.checkPoints:type_name -> model.CheckPoint
19, // 43: model.SignalLayout.turnouts:type_name -> model.Turnout
20, // 44: model.SignalLayout.signals:type_name -> model.Signal
22, // 45: model.SignalLayout.transponders:type_name -> model.Transponder
23, // 46: model.SignalLayout.slopes:type_name -> model.Slope
24, // 47: model.SignalLayout.sectionalCurvatures:type_name -> model.SectionalCurvature
27, // 48: model.SignalLayout.kilometerConverts:type_name -> model.KilometerConvert
25, // 49: model.PhysicalSection.aDevicePort:type_name -> model.DevicePort
25, // 50: model.PhysicalSection.bDevicePort:type_name -> model.DevicePort
26, // 51: model.CheckPoint.km:type_name -> model.Kilometer
2023-12-29 17:58:39 +08:00
3, // 52: model.CheckPoint.type:type_name -> model.CheckPointType
2024-01-05 11:30:39 +08:00
25, // 53: model.CheckPoint.devicePorts:type_name -> model.DevicePort
26, // 54: model.Turnout.km:type_name -> model.Kilometer
25, // 55: model.Turnout.aDevicePort:type_name -> model.DevicePort
25, // 56: model.Turnout.bDevicePort:type_name -> model.DevicePort
25, // 57: model.Turnout.cDevicePort:type_name -> model.DevicePort
2023-12-29 17:58:39 +08:00
4, // 58: model.Turnout.switchMachineType:type_name -> model.Turnout.SwitchMachineType
2024-01-05 11:30:39 +08:00
30, // 59: model.Turnout.electronicComponentGroups:type_name -> model.ElectronicComponentGroup
26, // 60: model.Signal.km:type_name -> model.Kilometer
25, // 61: model.Signal.turnoutPort:type_name -> model.DevicePort
30, // 62: model.Signal.electronicComponentGroups:type_name -> model.ElectronicComponentGroup
2023-12-29 17:58:39 +08:00
5, // 63: model.Signal.model:type_name -> model.Signal.Model
2024-01-05 11:30:39 +08:00
45, // 64: model.Psd.asdGroups:type_name -> model.AsdGroup
30, // 65: model.Psd.electronicComponentGroups:type_name -> model.ElectronicComponentGroup
26, // 66: model.Transponder.km:type_name -> model.Kilometer
25, // 67: model.Transponder.turnoutPort:type_name -> model.DevicePort
2023-12-29 17:58:39 +08:00
6, // 68: model.Transponder.type:type_name -> model.Transponder.Type
2024-01-05 11:30:39 +08:00
26, // 69: model.Slope.kms:type_name -> model.Kilometer
26, // 70: model.SectionalCurvature.kms:type_name -> model.Kilometer
2023-12-29 17:58:39 +08:00
0, // 71: model.DevicePort.deviceType:type_name -> model.DeviceType
1, // 72: model.DevicePort.port:type_name -> model.Port
2, // 73: model.Kilometer.direction:type_name -> model.Direction
2024-01-05 11:30:39 +08:00
26, // 74: model.KilometerConvert.kmA:type_name -> model.Kilometer
26, // 75: model.KilometerConvert.kmB:type_name -> model.Kilometer
2023-12-29 17:58:39 +08:00
7, // 76: model.Relay.model:type_name -> model.Relay.Model
8, // 77: model.Button.buttonType:type_name -> model.Button.ButtonType
9, // 78: model.Light.aspect:type_name -> model.Light.LightAspect
2024-01-05 11:30:39 +08:00
36, // 79: model.Station.electronicGroup:type_name -> model.ElectronicGroup
35, // 80: model.Station.deccs:type_name -> model.DeviceEcc
2023-12-29 17:58:39 +08:00
0, // 81: model.DeviceEcc.deviceType:type_name -> model.DeviceType
2024-01-05 11:30:39 +08:00
30, // 82: model.DeviceEcc.egs:type_name -> model.ElectronicComponentGroup
37, // 83: model.ElectronicGroup.components:type_name -> model.ElectronicComponent
2023-12-29 17:58:39 +08:00
0, // 84: model.ElectronicComponent.deviceType:type_name -> model.DeviceType
10, // 85: model.Platform.direction:type_name -> model.Platform.PlatformDirection
2024-01-05 11:30:39 +08:00
42, // 86: model.CentralizedStationRef.cjList:type_name -> model.CjData
44, // 87: model.CentralizedStationRef.qdList:type_name -> model.QdData
46, // 88: model.CentralizedStationRef.sectionCodePoints:type_name -> model.CiSectionCodePoint
43, // 89: model.CjData.refRelays:type_name -> model.CjDataItem
2023-12-29 17:58:39 +08:00
11, // 90: model.Route.routeType:type_name -> model.Route.RouteType
2024-01-05 11:30:39 +08:00
69, // 91: model.Route.turnouts:type_name -> model.Route.TurnoutPosition
25, // 92: model.Pipe.portA:type_name -> model.DevicePort
25, // 93: model.Pipe.portB:type_name -> model.DevicePort
12, // 94: model.AirPavilion.pavilionType:type_name -> model.AirPavilion.Type
13, // 95: model.Valve.valveType:type_name -> model.Valve.Type
14, // 96: model.Fan.fanType:type_name -> model.Fan.Type
97, // [97:97] is the sub-list for method output_type
97, // [97:97] is the sub-list for method input_type
97, // [97:97] is the sub-list for extension type_name
97, // [97:97] is the sub-list for extension extendee
0, // [0:97] is the sub-list for field type_name
}
func init() { file_model_proto_init() }
func file_model_proto_init() {
if File_model_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_model_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Repository); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SignalLayout); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PhysicalSection); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CheckPoint); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Turnout); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Signal); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Psd); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Transponder); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Slope); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SectionalCurvature); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DevicePort); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Kilometer); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*KilometerConvert); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Relay); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PhaseFailureProtector); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ElectronicComponentGroup); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-10-13 15:26:25 +08:00
file_model_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Button); i {
2023-10-13 15:26:25 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Light); i {
2023-10-13 15:26:25 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Alarm); i {
2023-10-13 15:26:25 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-10-16 09:55:44 +08:00
file_model_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Station); i {
2023-10-16 09:55:44 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeviceEcc); i {
2023-10-16 09:55:44 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ElectronicGroup); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ElectronicComponent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-10-20 13:13:44 +08:00
file_model_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Mkx); i {
2023-10-20 13:13:44 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-10-30 16:21:23 +08:00
file_model_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Platform); i {
2023-10-30 16:21:23 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Key); i {
2023-10-30 16:21:23 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CentralizedStationRef); i {
2023-10-30 16:21:23 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CjData); i {
2023-10-30 16:21:23 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CjDataItem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-11-07 13:26:29 +08:00
file_model_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*QdData); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AsdGroup); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
2023-11-07 13:26:29 +08:00
switch v := v.(*CiSectionCodePoint); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-12-19 17:13:27 +08:00
file_model_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*Route); i {
2023-12-19 17:13:27 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-12-20 11:23:49 +08:00
file_model_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*Pipe); i {
2023-12-19 17:13:27 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-12-20 11:23:49 +08:00
file_model_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*PipeFitting); i {
2023-12-19 17:13:27 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-12-20 11:23:49 +08:00
file_model_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*CircuitBreaker); i {
2023-12-19 17:13:27 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-12-20 11:23:49 +08:00
file_model_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*ThreePositionSwitch); i {
2023-12-19 17:13:27 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-12-20 11:23:49 +08:00
file_model_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*HandcartSwitch); i {
2023-12-19 17:13:27 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-12-20 11:23:49 +08:00
file_model_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*Rectifier); i {
2023-12-19 17:13:27 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-12-20 11:23:49 +08:00
file_model_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*Disconnector); i {
2023-12-19 17:13:27 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-12-20 11:23:49 +08:00
file_model_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*VoltageTransformer); i {
2023-12-19 17:13:27 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*PowerSource); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*LightningArrester); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-12-22 15:00:34 +08:00
file_model_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*EarthingDevice); i {
2023-12-22 15:00:34 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*NetworkSwitch); i {
2023-12-22 15:00:34 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-12-25 09:23:13 +08:00
file_model_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*WireCabinet); i {
2023-12-25 09:23:13 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*AirPavilion); i {
2023-12-25 09:23:13 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*Valve); i {
2023-12-25 09:23:13 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-12-25 13:40:00 +08:00
file_model_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*GasMixingChamber); i {
2023-12-25 09:23:13 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-12-25 13:40:00 +08:00
file_model_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*CombinationAirConditioner); i {
2023-12-25 09:23:13 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-12-25 13:40:00 +08:00
file_model_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*AirPurificationDevice); i {
2023-12-25 09:23:13 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-12-25 13:40:00 +08:00
file_model_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*AirCurtain); i {
2023-12-25 10:07:59 +08:00
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-12-25 13:40:00 +08:00
file_model_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
2023-12-29 17:58:39 +08:00
switch v := v.(*Fan); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
2023-12-25 09:23:13 +08:00
switch v := v.(*GasEnvironment); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
2023-12-29 17:58:39 +08:00
file_model_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Route_TurnoutPosition); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_model_proto_rawDesc,
2024-01-05 11:30:39 +08:00
NumEnums: 15,
2023-12-29 17:58:39 +08:00
NumMessages: 55,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_model_proto_goTypes,
DependencyIndexes: file_model_proto_depIdxs,
EnumInfos: file_model_proto_enumTypes,
MessageInfos: file_model_proto_msgTypes,
}.Build()
File_model_proto = out.File
file_model_proto_rawDesc = nil
file_model_proto_goTypes = nil
file_model_proto_depIdxs = nil
}