加速计
This commit is contained in:
parent
97cf2bee11
commit
30ec740426
|
@ -1 +1 @@
|
||||||
Subproject commit 1a75420f049a7b5838d9024a3abb1b9c2e7b7074
|
Subproject commit 099d39589833465c09f01d83cd31d3f063b43089
|
|
@ -70,6 +70,7 @@ type ThridPartyConfig struct {
|
||||||
BtmCanet BtmCanetConfig `json:"btmCanet" description:"BTM关联的网关设备CANET配置"`
|
BtmCanet BtmCanetConfig `json:"btmCanet" description:"BTM关联的网关设备CANET配置"`
|
||||||
CidcModbus []CidcModbusConfig `json:"cidcModbus" description:"联锁驱采Modbus接口配置"`
|
CidcModbus []CidcModbusConfig `json:"cidcModbus" description:"联锁驱采Modbus接口配置"`
|
||||||
Radar RadarConfig `json:"radar" description:"车载雷达相关配置"`
|
Radar RadarConfig `json:"radar" description:"车载雷达相关配置"`
|
||||||
|
Acc AccConfig `json:"acc" description:"车载加速计"`
|
||||||
}
|
}
|
||||||
type RadarConfig struct {
|
type RadarConfig struct {
|
||||||
Open bool `json:"open" description:"是否开启"`
|
Open bool `json:"open" description:"是否开启"`
|
||||||
|
@ -77,6 +78,12 @@ type RadarConfig struct {
|
||||||
RemotePort uint32 `json:"remotePort" description:"远端接收列车信息端口"`
|
RemotePort uint32 `json:"remotePort" description:"远端接收列车信息端口"`
|
||||||
//LocalPort uint32 `json:"localPort" description:"本地端口"`
|
//LocalPort uint32 `json:"localPort" description:"本地端口"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type AccConfig struct {
|
||||||
|
Open bool `json:"open" description:"是否开启"`
|
||||||
|
RemoteIp string `json:"remoteIp" description:"远端接收列车信息ip"`
|
||||||
|
RemotePort uint32 `json:"remotePort" description:"远端接收列车信息端口"`
|
||||||
|
}
|
||||||
type CidcModbusConfig struct {
|
type CidcModbusConfig struct {
|
||||||
Open bool `json:"open" description:"是否开启"`
|
Open bool `json:"open" description:"是否开启"`
|
||||||
Url string `json:"url" description:"接口URL【格式tcp://{ip}:{port}】" default:"tcp://127.0.0.1:502"` // 连接地址
|
Url string `json:"url" description:"接口URL【格式tcp://{ip}:{port}】" default:"tcp://127.0.0.1:502"` // 连接地址
|
||||||
|
|
198
docs/docs.go
198
docs/docs.go
|
@ -2649,26 +2649,15 @@ const docTemplate = `{
|
||||||
"required": true
|
"required": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "integer",
|
"type": "string",
|
||||||
"description": "草稿数据的id",
|
"description": "厂商",
|
||||||
"name": "draftId",
|
"name": "category",
|
||||||
"in": "query"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "强制覆盖",
|
|
||||||
"name": "force",
|
|
||||||
"in": "query"
|
"in": "query"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "发布后的名称",
|
"description": "草稿名称",
|
||||||
"name": "name",
|
"name": "draftName",
|
||||||
"in": "query"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "string",
|
|
||||||
"name": "note",
|
|
||||||
"in": "query"
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -5106,6 +5095,14 @@ const docTemplate = `{
|
||||||
"description": "应答器ID",
|
"description": "应答器ID",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
},
|
},
|
||||||
|
"fixedTelegram": {
|
||||||
|
"description": "固定报文(16进制字符串)",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"fixedUserTelegram": {
|
||||||
|
"description": "固定用户报文(16进制字符串)",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"mapId": {
|
"mapId": {
|
||||||
"description": "地图ID",
|
"description": "地图ID",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
|
@ -5114,8 +5111,12 @@ const docTemplate = `{
|
||||||
"description": "仿真ID",
|
"description": "仿真ID",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"telegram": {
|
"variableTelegram": {
|
||||||
"description": "报文(16进制字符串)",
|
"description": "可变报文",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"variableUserTelegram": {
|
||||||
|
"description": "可变用户报文",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5250,6 +5251,18 @@ const docTemplate = `{
|
||||||
"dto.ConfigTrainEnds": {
|
"dto.ConfigTrainEnds": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
"accCheckSpeedDiff": {
|
||||||
|
"description": "加速计速度差",
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"accCheckTime": {
|
||||||
|
"description": "加速计储蓄时间",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"accEnable": {
|
||||||
|
"description": "加速计是否有效",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
"radarCheckSpeedDiff": {
|
"radarCheckSpeedDiff": {
|
||||||
"description": "雷达测速数值",
|
"description": "雷达测速数值",
|
||||||
"type": "number"
|
"type": "number"
|
||||||
|
@ -6067,21 +6080,10 @@ const docTemplate = `{
|
||||||
"request_proto.PsdOperationReq": {
|
"request_proto.PsdOperationReq": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"asdCodes": {
|
|
||||||
"description": "无法关闭/无法开启故障涉及的滑动门的编号",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "integer"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"deviceId": {
|
"deviceId": {
|
||||||
"description": "设备id",
|
"description": "设备id",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
},
|
},
|
||||||
"group": {
|
|
||||||
"description": "开门操作的编组",
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"mapId": {
|
"mapId": {
|
||||||
"description": "图id",
|
"description": "图id",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
|
@ -6094,66 +6096,93 @@ const docTemplate = `{
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"param": {
|
||||||
|
"description": "屏蔽门参数,当operation为SetParams时有效",
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/request_proto.PsdParam"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"simulationId": {
|
"simulationId": {
|
||||||
"description": "仿真id",
|
"description": "仿真id",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"request_proto.Psd_Operation": {
|
"request_proto.PsdParam": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"asdCodes": {
|
||||||
|
"description": "涉及的滑动门的编号",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "integer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fault": {
|
||||||
|
"description": "屏蔽门故障设置",
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/request_proto.Psd_Fault"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"force": {
|
||||||
|
"description": "屏蔽门强制设置",
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/request_proto.Psd_Force"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"request_proto.Psd_Fault": {
|
||||||
|
"type": "integer",
|
||||||
|
"enum": [
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"x-enum-comments": {
|
||||||
|
"Psd_FA_NONE": "无故障",
|
||||||
|
"Psd_FA_Obstacle": "设置故障物"
|
||||||
|
},
|
||||||
|
"x-enum-varnames": [
|
||||||
|
"Psd_FA_NONE",
|
||||||
|
"Psd_FA_Obstacle"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"request_proto.Psd_Force": {
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"enum": [
|
"enum": [
|
||||||
0,
|
0,
|
||||||
1,
|
1,
|
||||||
2,
|
2
|
||||||
3,
|
|
||||||
4,
|
|
||||||
5,
|
|
||||||
6,
|
|
||||||
10,
|
|
||||||
11,
|
|
||||||
12,
|
|
||||||
13,
|
|
||||||
14,
|
|
||||||
15,
|
|
||||||
16,
|
|
||||||
17,
|
|
||||||
18
|
|
||||||
],
|
],
|
||||||
"x-enum-comments": {
|
"x-enum-comments": {
|
||||||
"Psd_AsdCannotClose": "滑动门无法关闭",
|
"Psd_F_ASD_GM": "滑动门强制关门",
|
||||||
"Psd_AsdCannotOpen": "滑动门无法开门",
|
"Psd_F_ASD_KM": "滑动门强制开门",
|
||||||
"Psd_CancelAsdCannotClose": "取消滑动门无法关闭",
|
"Psd_F_NONE": "无强制"
|
||||||
"Psd_CancelAsdCannotOpen": "取消滑动门无法开门",
|
},
|
||||||
"Psd_CancelForce": "取消强制",
|
"x-enum-varnames": [
|
||||||
"Psd_CancelGm": "取消关门",
|
"Psd_F_NONE",
|
||||||
"Psd_CancelKm": "取消开门",
|
"Psd_F_ASD_KM",
|
||||||
"Psd_CancelQDTC": "取消启动探测",
|
"Psd_F_ASD_GM"
|
||||||
"Psd_CancelTZTC": "取消停止探测",
|
]
|
||||||
"Psd_ForceGm": "强制关门",
|
},
|
||||||
"Psd_ForceKm": "强制开门",
|
"request_proto.Psd_Operation": {
|
||||||
"Psd_Gm": "关门",
|
"type": "integer",
|
||||||
"Psd_Km": "开门",
|
"enum": [
|
||||||
"Psd_QDTC": "启动探测",
|
0,
|
||||||
"Psd_TZTC": "停止探测"
|
1
|
||||||
|
],
|
||||||
|
"x-enum-comments": {
|
||||||
|
"Psd_SetParams": "设置参数"
|
||||||
},
|
},
|
||||||
"x-enum-varnames": [
|
"x-enum-varnames": [
|
||||||
"Psd_Undefined",
|
"Psd_Undefined",
|
||||||
"Psd_Km",
|
"Psd_SetParams"
|
||||||
"Psd_CancelKm",
|
|
||||||
"Psd_Gm",
|
|
||||||
"Psd_CancelGm",
|
|
||||||
"Psd_ForceKm",
|
|
||||||
"Psd_ForceGm",
|
|
||||||
"Psd_CancelForce",
|
|
||||||
"Psd_AsdCannotOpen",
|
|
||||||
"Psd_CancelAsdCannotOpen",
|
|
||||||
"Psd_AsdCannotClose",
|
|
||||||
"Psd_CancelAsdCannotClose",
|
|
||||||
"Psd_QDTC",
|
|
||||||
"Psd_CancelQDTC",
|
|
||||||
"Psd_TZTC",
|
|
||||||
"Psd_CancelTZTC"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"request_proto.Section_Operation": {
|
"request_proto.Section_Operation": {
|
||||||
|
@ -6161,26 +6190,17 @@ const docTemplate = `{
|
||||||
"enum": [
|
"enum": [
|
||||||
0,
|
0,
|
||||||
1,
|
1,
|
||||||
2,
|
4
|
||||||
3,
|
|
||||||
4,
|
|
||||||
5
|
|
||||||
],
|
],
|
||||||
"x-enum-comments": {
|
"x-enum-comments": {
|
||||||
"Section_CancelDrst": "取消计轴直接复位",
|
|
||||||
"Section_CancelFaultOcc": "取消故障占用",
|
|
||||||
"Section_CancelPdrst": "取消计轴预复位",
|
|
||||||
"Section_SetDrst": "设置计轴直接复位",
|
|
||||||
"Section_SetFaultOcc": "设置故障占用",
|
"Section_SetFaultOcc": "设置故障占用",
|
||||||
"Section_SetPdrst": "设置计轴预复位"
|
"Section_SetParams": "设置参数",
|
||||||
|
"Section_Undefined": "未定义"
|
||||||
},
|
},
|
||||||
"x-enum-varnames": [
|
"x-enum-varnames": [
|
||||||
"Section_SetDrst",
|
"Section_Undefined",
|
||||||
"Section_CancelDrst",
|
"Section_SetParams",
|
||||||
"Section_SetPdrst",
|
"Section_SetFaultOcc"
|
||||||
"Section_CancelPdrst",
|
|
||||||
"Section_SetFaultOcc",
|
|
||||||
"Section_CancelFaultOcc"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"request_proto.SignalOperationReq": {
|
"request_proto.SignalOperationReq": {
|
||||||
|
|
|
@ -2643,26 +2643,15 @@
|
||||||
"required": true
|
"required": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "integer",
|
"type": "string",
|
||||||
"description": "草稿数据的id",
|
"description": "厂商",
|
||||||
"name": "draftId",
|
"name": "category",
|
||||||
"in": "query"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "强制覆盖",
|
|
||||||
"name": "force",
|
|
||||||
"in": "query"
|
"in": "query"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "发布后的名称",
|
"description": "草稿名称",
|
||||||
"name": "name",
|
"name": "draftName",
|
||||||
"in": "query"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "string",
|
|
||||||
"name": "note",
|
|
||||||
"in": "query"
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -5100,6 +5089,14 @@
|
||||||
"description": "应答器ID",
|
"description": "应答器ID",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
},
|
},
|
||||||
|
"fixedTelegram": {
|
||||||
|
"description": "固定报文(16进制字符串)",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"fixedUserTelegram": {
|
||||||
|
"description": "固定用户报文(16进制字符串)",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"mapId": {
|
"mapId": {
|
||||||
"description": "地图ID",
|
"description": "地图ID",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
|
@ -5108,8 +5105,12 @@
|
||||||
"description": "仿真ID",
|
"description": "仿真ID",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"telegram": {
|
"variableTelegram": {
|
||||||
"description": "报文(16进制字符串)",
|
"description": "可变报文",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"variableUserTelegram": {
|
||||||
|
"description": "可变用户报文",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5244,6 +5245,18 @@
|
||||||
"dto.ConfigTrainEnds": {
|
"dto.ConfigTrainEnds": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
"accCheckSpeedDiff": {
|
||||||
|
"description": "加速计速度差",
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"accCheckTime": {
|
||||||
|
"description": "加速计储蓄时间",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"accEnable": {
|
||||||
|
"description": "加速计是否有效",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
"radarCheckSpeedDiff": {
|
"radarCheckSpeedDiff": {
|
||||||
"description": "雷达测速数值",
|
"description": "雷达测速数值",
|
||||||
"type": "number"
|
"type": "number"
|
||||||
|
@ -6061,21 +6074,10 @@
|
||||||
"request_proto.PsdOperationReq": {
|
"request_proto.PsdOperationReq": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"asdCodes": {
|
|
||||||
"description": "无法关闭/无法开启故障涉及的滑动门的编号",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "integer"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"deviceId": {
|
"deviceId": {
|
||||||
"description": "设备id",
|
"description": "设备id",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
},
|
},
|
||||||
"group": {
|
|
||||||
"description": "开门操作的编组",
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"mapId": {
|
"mapId": {
|
||||||
"description": "图id",
|
"description": "图id",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
|
@ -6088,66 +6090,93 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"param": {
|
||||||
|
"description": "屏蔽门参数,当operation为SetParams时有效",
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/request_proto.PsdParam"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"simulationId": {
|
"simulationId": {
|
||||||
"description": "仿真id",
|
"description": "仿真id",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"request_proto.Psd_Operation": {
|
"request_proto.PsdParam": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"asdCodes": {
|
||||||
|
"description": "涉及的滑动门的编号",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "integer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fault": {
|
||||||
|
"description": "屏蔽门故障设置",
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/request_proto.Psd_Fault"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"force": {
|
||||||
|
"description": "屏蔽门强制设置",
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/request_proto.Psd_Force"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"request_proto.Psd_Fault": {
|
||||||
|
"type": "integer",
|
||||||
|
"enum": [
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"x-enum-comments": {
|
||||||
|
"Psd_FA_NONE": "无故障",
|
||||||
|
"Psd_FA_Obstacle": "设置故障物"
|
||||||
|
},
|
||||||
|
"x-enum-varnames": [
|
||||||
|
"Psd_FA_NONE",
|
||||||
|
"Psd_FA_Obstacle"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"request_proto.Psd_Force": {
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"enum": [
|
"enum": [
|
||||||
0,
|
0,
|
||||||
1,
|
1,
|
||||||
2,
|
2
|
||||||
3,
|
|
||||||
4,
|
|
||||||
5,
|
|
||||||
6,
|
|
||||||
10,
|
|
||||||
11,
|
|
||||||
12,
|
|
||||||
13,
|
|
||||||
14,
|
|
||||||
15,
|
|
||||||
16,
|
|
||||||
17,
|
|
||||||
18
|
|
||||||
],
|
],
|
||||||
"x-enum-comments": {
|
"x-enum-comments": {
|
||||||
"Psd_AsdCannotClose": "滑动门无法关闭",
|
"Psd_F_ASD_GM": "滑动门强制关门",
|
||||||
"Psd_AsdCannotOpen": "滑动门无法开门",
|
"Psd_F_ASD_KM": "滑动门强制开门",
|
||||||
"Psd_CancelAsdCannotClose": "取消滑动门无法关闭",
|
"Psd_F_NONE": "无强制"
|
||||||
"Psd_CancelAsdCannotOpen": "取消滑动门无法开门",
|
},
|
||||||
"Psd_CancelForce": "取消强制",
|
"x-enum-varnames": [
|
||||||
"Psd_CancelGm": "取消关门",
|
"Psd_F_NONE",
|
||||||
"Psd_CancelKm": "取消开门",
|
"Psd_F_ASD_KM",
|
||||||
"Psd_CancelQDTC": "取消启动探测",
|
"Psd_F_ASD_GM"
|
||||||
"Psd_CancelTZTC": "取消停止探测",
|
]
|
||||||
"Psd_ForceGm": "强制关门",
|
},
|
||||||
"Psd_ForceKm": "强制开门",
|
"request_proto.Psd_Operation": {
|
||||||
"Psd_Gm": "关门",
|
"type": "integer",
|
||||||
"Psd_Km": "开门",
|
"enum": [
|
||||||
"Psd_QDTC": "启动探测",
|
0,
|
||||||
"Psd_TZTC": "停止探测"
|
1
|
||||||
|
],
|
||||||
|
"x-enum-comments": {
|
||||||
|
"Psd_SetParams": "设置参数"
|
||||||
},
|
},
|
||||||
"x-enum-varnames": [
|
"x-enum-varnames": [
|
||||||
"Psd_Undefined",
|
"Psd_Undefined",
|
||||||
"Psd_Km",
|
"Psd_SetParams"
|
||||||
"Psd_CancelKm",
|
|
||||||
"Psd_Gm",
|
|
||||||
"Psd_CancelGm",
|
|
||||||
"Psd_ForceKm",
|
|
||||||
"Psd_ForceGm",
|
|
||||||
"Psd_CancelForce",
|
|
||||||
"Psd_AsdCannotOpen",
|
|
||||||
"Psd_CancelAsdCannotOpen",
|
|
||||||
"Psd_AsdCannotClose",
|
|
||||||
"Psd_CancelAsdCannotClose",
|
|
||||||
"Psd_QDTC",
|
|
||||||
"Psd_CancelQDTC",
|
|
||||||
"Psd_TZTC",
|
|
||||||
"Psd_CancelTZTC"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"request_proto.Section_Operation": {
|
"request_proto.Section_Operation": {
|
||||||
|
@ -6155,26 +6184,17 @@
|
||||||
"enum": [
|
"enum": [
|
||||||
0,
|
0,
|
||||||
1,
|
1,
|
||||||
2,
|
4
|
||||||
3,
|
|
||||||
4,
|
|
||||||
5
|
|
||||||
],
|
],
|
||||||
"x-enum-comments": {
|
"x-enum-comments": {
|
||||||
"Section_CancelDrst": "取消计轴直接复位",
|
|
||||||
"Section_CancelFaultOcc": "取消故障占用",
|
|
||||||
"Section_CancelPdrst": "取消计轴预复位",
|
|
||||||
"Section_SetDrst": "设置计轴直接复位",
|
|
||||||
"Section_SetFaultOcc": "设置故障占用",
|
"Section_SetFaultOcc": "设置故障占用",
|
||||||
"Section_SetPdrst": "设置计轴预复位"
|
"Section_SetParams": "设置参数",
|
||||||
|
"Section_Undefined": "未定义"
|
||||||
},
|
},
|
||||||
"x-enum-varnames": [
|
"x-enum-varnames": [
|
||||||
"Section_SetDrst",
|
"Section_Undefined",
|
||||||
"Section_CancelDrst",
|
"Section_SetParams",
|
||||||
"Section_SetPdrst",
|
"Section_SetFaultOcc"
|
||||||
"Section_CancelPdrst",
|
|
||||||
"Section_SetFaultOcc",
|
|
||||||
"Section_CancelFaultOcc"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"request_proto.SignalOperationReq": {
|
"request_proto.SignalOperationReq": {
|
||||||
|
|
|
@ -133,14 +133,23 @@ definitions:
|
||||||
baliseId:
|
baliseId:
|
||||||
description: 应答器ID
|
description: 应答器ID
|
||||||
type: integer
|
type: integer
|
||||||
|
fixedTelegram:
|
||||||
|
description: 固定报文(16进制字符串)
|
||||||
|
type: string
|
||||||
|
fixedUserTelegram:
|
||||||
|
description: 固定用户报文(16进制字符串)
|
||||||
|
type: string
|
||||||
mapId:
|
mapId:
|
||||||
description: 地图ID
|
description: 地图ID
|
||||||
type: integer
|
type: integer
|
||||||
simulationId:
|
simulationId:
|
||||||
description: 仿真ID
|
description: 仿真ID
|
||||||
type: string
|
type: string
|
||||||
telegram:
|
variableTelegram:
|
||||||
description: 报文(16进制字符串)
|
description: 可变报文
|
||||||
|
type: string
|
||||||
|
variableUserTelegram:
|
||||||
|
description: 可变用户报文
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
dto.BaliseMoveReqDto:
|
dto.BaliseMoveReqDto:
|
||||||
|
@ -234,6 +243,15 @@ definitions:
|
||||||
type: object
|
type: object
|
||||||
dto.ConfigTrainEnds:
|
dto.ConfigTrainEnds:
|
||||||
properties:
|
properties:
|
||||||
|
accCheckSpeedDiff:
|
||||||
|
description: 加速计速度差
|
||||||
|
type: number
|
||||||
|
accCheckTime:
|
||||||
|
description: 加速计储蓄时间
|
||||||
|
type: integer
|
||||||
|
accEnable:
|
||||||
|
description: 加速计是否有效
|
||||||
|
type: boolean
|
||||||
radarCheckSpeedDiff:
|
radarCheckSpeedDiff:
|
||||||
description: 雷达测速数值
|
description: 雷达测速数值
|
||||||
type: number
|
type: number
|
||||||
|
@ -795,71 +813,46 @@ definitions:
|
||||||
- $ref: '#/definitions/request_proto.Points_Force'
|
- $ref: '#/definitions/request_proto.Points_Force'
|
||||||
description: 道岔强制
|
description: 道岔强制
|
||||||
type: object
|
type: object
|
||||||
request_proto.Psd_Operation:
|
request_proto.Psd_Fault:
|
||||||
|
enum:
|
||||||
|
- 0
|
||||||
|
- 1
|
||||||
|
type: integer
|
||||||
|
x-enum-comments:
|
||||||
|
Psd_FA_NONE: 无故障
|
||||||
|
Psd_FA_Obstacle: 设置故障物
|
||||||
|
x-enum-varnames:
|
||||||
|
- Psd_FA_NONE
|
||||||
|
- Psd_FA_Obstacle
|
||||||
|
request_proto.Psd_Force:
|
||||||
enum:
|
enum:
|
||||||
- 0
|
- 0
|
||||||
- 1
|
- 1
|
||||||
- 2
|
- 2
|
||||||
- 3
|
|
||||||
- 4
|
|
||||||
- 5
|
|
||||||
- 6
|
|
||||||
- 10
|
|
||||||
- 11
|
|
||||||
- 12
|
|
||||||
- 13
|
|
||||||
- 14
|
|
||||||
- 15
|
|
||||||
- 16
|
|
||||||
- 17
|
|
||||||
- 18
|
|
||||||
type: integer
|
type: integer
|
||||||
x-enum-comments:
|
x-enum-comments:
|
||||||
Psd_AsdCannotClose: 滑动门无法关闭
|
Psd_F_ASD_GM: 滑动门强制关门
|
||||||
Psd_AsdCannotOpen: 滑动门无法开门
|
Psd_F_ASD_KM: 滑动门强制开门
|
||||||
Psd_CancelAsdCannotClose: 取消滑动门无法关闭
|
Psd_F_NONE: 无强制
|
||||||
Psd_CancelAsdCannotOpen: 取消滑动门无法开门
|
x-enum-varnames:
|
||||||
Psd_CancelForce: 取消强制
|
- Psd_F_NONE
|
||||||
Psd_CancelGm: 取消关门
|
- Psd_F_ASD_KM
|
||||||
Psd_CancelKm: 取消开门
|
- Psd_F_ASD_GM
|
||||||
Psd_CancelQDTC: 取消启动探测
|
request_proto.Psd_Operation:
|
||||||
Psd_CancelTZTC: 取消停止探测
|
enum:
|
||||||
Psd_ForceGm: 强制关门
|
- 0
|
||||||
Psd_ForceKm: 强制开门
|
- 1
|
||||||
Psd_Gm: 关门
|
type: integer
|
||||||
Psd_Km: 开门
|
x-enum-comments:
|
||||||
Psd_QDTC: 启动探测
|
Psd_SetParams: 设置参数
|
||||||
Psd_TZTC: 停止探测
|
|
||||||
x-enum-varnames:
|
x-enum-varnames:
|
||||||
- Psd_Undefined
|
- Psd_Undefined
|
||||||
- Psd_Km
|
- Psd_SetParams
|
||||||
- Psd_CancelKm
|
|
||||||
- Psd_Gm
|
|
||||||
- Psd_CancelGm
|
|
||||||
- Psd_ForceKm
|
|
||||||
- Psd_ForceGm
|
|
||||||
- Psd_CancelForce
|
|
||||||
- Psd_AsdCannotOpen
|
|
||||||
- Psd_CancelAsdCannotOpen
|
|
||||||
- Psd_AsdCannotClose
|
|
||||||
- Psd_CancelAsdCannotClose
|
|
||||||
- Psd_QDTC
|
|
||||||
- Psd_CancelQDTC
|
|
||||||
- Psd_TZTC
|
|
||||||
- Psd_CancelTZTC
|
|
||||||
request_proto.PsdOperationReq:
|
request_proto.PsdOperationReq:
|
||||||
properties:
|
properties:
|
||||||
asdCodes:
|
|
||||||
description: 无法关闭/无法开启故障涉及的滑动门的编号
|
|
||||||
items:
|
|
||||||
type: integer
|
|
||||||
type: array
|
|
||||||
deviceId:
|
deviceId:
|
||||||
description: 设备id
|
description: 设备id
|
||||||
type: integer
|
type: integer
|
||||||
group:
|
|
||||||
description: 开门操作的编组
|
|
||||||
type: integer
|
|
||||||
mapId:
|
mapId:
|
||||||
description: 图id
|
description: 图id
|
||||||
type: integer
|
type: integer
|
||||||
|
@ -867,33 +860,44 @@ definitions:
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: '#/definitions/request_proto.Psd_Operation'
|
- $ref: '#/definitions/request_proto.Psd_Operation'
|
||||||
description: 操作
|
description: 操作
|
||||||
|
param:
|
||||||
|
allOf:
|
||||||
|
- $ref: '#/definitions/request_proto.PsdParam'
|
||||||
|
description: 屏蔽门参数,当operation为SetParams时有效
|
||||||
simulationId:
|
simulationId:
|
||||||
description: 仿真id
|
description: 仿真id
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
|
request_proto.PsdParam:
|
||||||
|
properties:
|
||||||
|
asdCodes:
|
||||||
|
description: 涉及的滑动门的编号
|
||||||
|
items:
|
||||||
|
type: integer
|
||||||
|
type: array
|
||||||
|
fault:
|
||||||
|
allOf:
|
||||||
|
- $ref: '#/definitions/request_proto.Psd_Fault'
|
||||||
|
description: 屏蔽门故障设置
|
||||||
|
force:
|
||||||
|
allOf:
|
||||||
|
- $ref: '#/definitions/request_proto.Psd_Force'
|
||||||
|
description: 屏蔽门强制设置
|
||||||
|
type: object
|
||||||
request_proto.Section_Operation:
|
request_proto.Section_Operation:
|
||||||
enum:
|
enum:
|
||||||
- 0
|
- 0
|
||||||
- 1
|
- 1
|
||||||
- 2
|
|
||||||
- 3
|
|
||||||
- 4
|
- 4
|
||||||
- 5
|
|
||||||
type: integer
|
type: integer
|
||||||
x-enum-comments:
|
x-enum-comments:
|
||||||
Section_CancelDrst: 取消计轴直接复位
|
|
||||||
Section_CancelFaultOcc: 取消故障占用
|
|
||||||
Section_CancelPdrst: 取消计轴预复位
|
|
||||||
Section_SetDrst: 设置计轴直接复位
|
|
||||||
Section_SetFaultOcc: 设置故障占用
|
Section_SetFaultOcc: 设置故障占用
|
||||||
Section_SetPdrst: 设置计轴预复位
|
Section_SetParams: 设置参数
|
||||||
|
Section_Undefined: 未定义
|
||||||
x-enum-varnames:
|
x-enum-varnames:
|
||||||
- Section_SetDrst
|
- Section_Undefined
|
||||||
- Section_CancelDrst
|
- Section_SetParams
|
||||||
- Section_SetPdrst
|
|
||||||
- Section_CancelPdrst
|
|
||||||
- Section_SetFaultOcc
|
- Section_SetFaultOcc
|
||||||
- Section_CancelFaultOcc
|
|
||||||
request_proto.Signal_DS:
|
request_proto.Signal_DS:
|
||||||
enum:
|
enum:
|
||||||
- 0
|
- 0
|
||||||
|
@ -2722,20 +2726,13 @@ paths:
|
||||||
name: id
|
name: id
|
||||||
required: true
|
required: true
|
||||||
type: integer
|
type: integer
|
||||||
- description: 草稿数据的id
|
- description: 厂商
|
||||||
in: query
|
in: query
|
||||||
name: draftId
|
name: category
|
||||||
type: integer
|
|
||||||
- description: 强制覆盖
|
|
||||||
in: query
|
|
||||||
name: force
|
|
||||||
type: boolean
|
|
||||||
- description: 发布后的名称
|
|
||||||
in: query
|
|
||||||
name: name
|
|
||||||
type: string
|
type: string
|
||||||
- in: query
|
- description: 草稿名称
|
||||||
name: note
|
in: query
|
||||||
|
name: draftName
|
||||||
type: string
|
type: string
|
||||||
produces:
|
produces:
|
||||||
- application/json
|
- application/json
|
||||||
|
|
|
@ -195,6 +195,12 @@ type TrainEndsState struct {
|
||||||
RadarCheckSpeedDiff float32 `protobuf:"fixed32,4,opt,name=radarCheckSpeedDiff,proto3" json:"radarCheckSpeedDiff,omitempty"`
|
RadarCheckSpeedDiff float32 `protobuf:"fixed32,4,opt,name=radarCheckSpeedDiff,proto3" json:"radarCheckSpeedDiff,omitempty"`
|
||||||
// 雷达检测时间(秒)
|
// 雷达检测时间(秒)
|
||||||
RadarCheckTime int32 `protobuf:"varint,5,opt,name=radarCheckTime,proto3" json:"radarCheckTime,omitempty"`
|
RadarCheckTime int32 `protobuf:"varint,5,opt,name=radarCheckTime,proto3" json:"radarCheckTime,omitempty"`
|
||||||
|
// 加速度计是否有效
|
||||||
|
AccEnable bool `protobuf:"varint,6,opt,name=accEnable,proto3" json:"accEnable,omitempty"`
|
||||||
|
// 加速度测速差值(米/秒)
|
||||||
|
AccCheckSpeedDiff float32 `protobuf:"fixed32,7,opt,name=accCheckSpeedDiff,proto3" json:"accCheckSpeedDiff,omitempty"`
|
||||||
|
// 加速度持续时间
|
||||||
|
AccCheckTime int32 `protobuf:"varint,8,opt,name=accCheckTime,proto3" json:"accCheckTime,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *TrainEndsState) Reset() {
|
func (x *TrainEndsState) Reset() {
|
||||||
|
@ -264,6 +270,27 @@ func (x *TrainEndsState) GetRadarCheckTime() int32 {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *TrainEndsState) GetAccEnable() bool {
|
||||||
|
if x != nil {
|
||||||
|
return x.AccEnable
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *TrainEndsState) GetAccCheckSpeedDiff() float32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.AccCheckSpeedDiff
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *TrainEndsState) GetAccCheckTime() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.AccCheckTime
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
var File_common_data_proto protoreflect.FileDescriptor
|
var File_common_data_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
var file_common_data_proto_rawDesc = []byte{
|
var file_common_data_proto_rawDesc = []byte{
|
||||||
|
@ -300,7 +327,7 @@ var file_common_data_proto_rawDesc = []byte{
|
||||||
0x05, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x53, 0x69,
|
0x05, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x53, 0x69,
|
||||||
0x67, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x53, 0x69,
|
0x67, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x53, 0x69,
|
||||||
0x67, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01,
|
0x67, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01,
|
||||||
0x28, 0x02, 0x52, 0x06, 0x69, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0xec, 0x01, 0x0a, 0x0e, 0x54,
|
0x28, 0x02, 0x52, 0x06, 0x69, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0xdc, 0x02, 0x0a, 0x0e, 0x54,
|
||||||
0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a,
|
0x72, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a,
|
||||||
0x12, 0x73, 0x70, 0x65, 0x65, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x45, 0x6e, 0x61, 0x62,
|
0x12, 0x73, 0x70, 0x65, 0x65, 0x64, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x45, 0x6e, 0x61, 0x62,
|
||||||
0x6c, 0x65, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x70, 0x65, 0x65, 0x64,
|
0x6c, 0x65, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x70, 0x65, 0x65, 0x64,
|
||||||
|
@ -315,6 +342,13 @@ var file_common_data_proto_rawDesc = []byte{
|
||||||
0x64, 0x61, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x65, 0x64, 0x44, 0x69, 0x66,
|
0x64, 0x61, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x65, 0x64, 0x44, 0x69, 0x66,
|
||||||
0x66, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x61, 0x64, 0x61, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54,
|
0x66, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x61, 0x64, 0x61, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54,
|
||||||
0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x72, 0x61, 0x64, 0x61, 0x72,
|
0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x72, 0x61, 0x64, 0x61, 0x72,
|
||||||
|
0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63,
|
||||||
|
0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x63,
|
||||||
|
0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x43, 0x68,
|
||||||
|
0x65, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x65, 0x64, 0x44, 0x69, 0x66, 0x66, 0x18, 0x07, 0x20, 0x01,
|
||||||
|
0x28, 0x02, 0x52, 0x11, 0x61, 0x63, 0x63, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x65,
|
||||||
|
0x64, 0x44, 0x69, 0x66, 0x66, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x43, 0x68, 0x65, 0x63,
|
||||||
|
0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x63, 0x63,
|
||||||
0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x2f, 0x5a, 0x2d, 0x6a, 0x6f, 0x79,
|
0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x2f, 0x5a, 0x2d, 0x6a, 0x6f, 0x79,
|
||||||
0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x63, 0x6c, 0x75, 0x62, 0x2f, 0x62, 0x6a, 0x2d, 0x72, 0x74, 0x73,
|
0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x63, 0x6c, 0x75, 0x62, 0x2f, 0x62, 0x6a, 0x2d, 0x72, 0x74, 0x73,
|
||||||
0x74, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x64, 0x74, 0x6f, 0x2f, 0x63, 0x6f,
|
0x74, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x64, 0x74, 0x6f, 0x2f, 0x63, 0x6f,
|
||||||
|
|
|
@ -97,6 +97,10 @@ type ConfigTrainEnds struct {
|
||||||
RadarEnable bool `json:"radarEnable"` // 雷达是否有效
|
RadarEnable bool `json:"radarEnable"` // 雷达是否有效
|
||||||
RadarCheckSpeedDiff float32 `json:"radarCheckSpeedDiff"` // 雷达测速数值
|
RadarCheckSpeedDiff float32 `json:"radarCheckSpeedDiff"` // 雷达测速数值
|
||||||
RadarCheckTime int32 `json:"radarCheckTime"` // 雷达检测时间(秒)
|
RadarCheckTime int32 `json:"radarCheckTime"` // 雷达检测时间(秒)
|
||||||
|
|
||||||
|
AccEnable bool `json:"accEnable"` // 加速计是否有效
|
||||||
|
AccCheckSpeedDiff float32 `json:"accCheckSpeedDiff"` // 加速计速度差
|
||||||
|
AccCheckTime int32 `json:"accCheckTime"` // 加速计储蓄时间
|
||||||
}
|
}
|
||||||
type ConfigTrainData struct {
|
type ConfigTrainData struct {
|
||||||
//Mass int32 `json:"mass" form:"mass"` // 列车的质量(100=1ton)
|
//Mass int32 `json:"mass" form:"mass"` // 列车的质量(100=1ton)
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -367,6 +367,7 @@ func convertTrainState(v *state_proto.TrainState) *state_proto.TrainMapState {
|
||||||
TailRadarSpeed: v.DynamicState.TailRadarSpeed,
|
TailRadarSpeed: v.DynamicState.TailRadarSpeed,
|
||||||
DynamicInterruption: v.DynamicState.UdpInterruption,
|
DynamicInterruption: v.DynamicState.UdpInterruption,
|
||||||
Acceleration: v.DynamicState.Acceleration,
|
Acceleration: v.DynamicState.Acceleration,
|
||||||
|
Displacement: v.DynamicState.Displacement,
|
||||||
// 半实物
|
// 半实物
|
||||||
VobcLifeSignal: v.VobcState.LifeSignal,
|
VobcLifeSignal: v.VobcState.LifeSignal,
|
||||||
Tc1Active: v.VobcState.Tc1Active,
|
Tc1Active: v.VobcState.Tc1Active,
|
||||||
|
@ -425,7 +426,12 @@ func convertEnds(ends *common_proto.TrainEndsState) *state_proto.TrainEndsStateM
|
||||||
SpeedSensorEnableB: ends.SpeedSensorEnableB,
|
SpeedSensorEnableB: ends.SpeedSensorEnableB,
|
||||||
RadarEnable: ends.RadarEnable,
|
RadarEnable: ends.RadarEnable,
|
||||||
RadarCheckSpeedDiff: floatToString(ends.RadarCheckSpeedDiff),
|
RadarCheckSpeedDiff: floatToString(ends.RadarCheckSpeedDiff),
|
||||||
RadarCheckTime: ends.RadarCheckTime}
|
RadarCheckTime: ends.RadarCheckTime,
|
||||||
|
AccEnable: ends.AccEnable,
|
||||||
|
AccCheckSpeedDiff: floatToString(ends.AccCheckSpeedDiff),
|
||||||
|
AccCheckTime: ends.AccCheckTime,
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
func floatToString(f float32) string {
|
func floatToString(f float32) string {
|
||||||
return fmt.Sprintf("%v", f)
|
return fmt.Sprintf("%v", f)
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
package acc
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"joylink.club/bj-rtsts-server/third_party/message"
|
||||||
|
"joylink.club/bj-rtsts-server/third_party/udp"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestAccUdp(t *testing.T) {
|
||||||
|
|
||||||
|
fmt.Println("准备启动服务...")
|
||||||
|
addr := fmt.Sprintf("%v:%v", "127.0.0.1", "8899")
|
||||||
|
server := udp.NewServer(addr, handle)
|
||||||
|
server.Listen()
|
||||||
|
for {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func handle(d []byte) {
|
||||||
|
ri := message.RadarInfo{}
|
||||||
|
err := ri.Decode(d)
|
||||||
|
if err == nil {
|
||||||
|
|
||||||
|
jsonD, _ := json.Marshal(ri)
|
||||||
|
fmt.Println(string(jsonD))
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,88 @@
|
||||||
|
package acc
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"joylink.club/bj-rtsts-server/config"
|
||||||
|
"joylink.club/bj-rtsts-server/dto/state_proto"
|
||||||
|
"joylink.club/bj-rtsts-server/third_party/message"
|
||||||
|
"joylink.club/bj-rtsts-server/third_party/udp"
|
||||||
|
"math"
|
||||||
|
"sync"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
type AccVobc interface {
|
||||||
|
Start(accManager AccVobcManager)
|
||||||
|
Stop()
|
||||||
|
}
|
||||||
|
|
||||||
|
type AccVobcManager interface {
|
||||||
|
GetRunAccConfig() config.AccConfig
|
||||||
|
FindAccTrain() *state_proto.TrainState
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
initLock = &sync.Mutex{}
|
||||||
|
singleObj *accVobcService
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
accInterval = 15
|
||||||
|
accSpeedUnit = 9.8
|
||||||
|
)
|
||||||
|
|
||||||
|
func Default() AccVobc {
|
||||||
|
defer initLock.Unlock()
|
||||||
|
if singleObj == nil {
|
||||||
|
initLock.Lock()
|
||||||
|
singleObj = &accVobcService{}
|
||||||
|
}
|
||||||
|
return singleObj
|
||||||
|
}
|
||||||
|
|
||||||
|
type accVobcService struct {
|
||||||
|
controlContext context.CancelFunc
|
||||||
|
vobcClient udp.UdpClient
|
||||||
|
radarVobcManager AccVobcManager
|
||||||
|
}
|
||||||
|
|
||||||
|
func (acc *accVobcService) Start(accManager AccVobcManager) {
|
||||||
|
config := accManager.GetRunAccConfig()
|
||||||
|
if config.RemoteIp == "" || config.RemotePort <= 0 || !config.Open {
|
||||||
|
}
|
||||||
|
acc.vobcClient = udp.NewClient(fmt.Sprintf("%v:%v", config.RemoteIp, config.RemotePort))
|
||||||
|
ctx, cancleFunc := context.WithCancel(context.Background())
|
||||||
|
acc.controlContext = cancleFunc
|
||||||
|
acc.radarVobcManager = accManager
|
||||||
|
go acc.sendTask(ctx)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (acc *accVobcService) sendTask(ctx context.Context) {
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-ctx.Done():
|
||||||
|
return
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
trainStatus := acc.radarVobcManager.FindAccTrain()
|
||||||
|
if trainStatus != nil {
|
||||||
|
speedAcc := trainStatus.DynamicState.Acceleration
|
||||||
|
t := speedAcc / accSpeedUnit
|
||||||
|
|
||||||
|
acc.vobcClient.SendMsg(&message.Accelerometer{Acc: math.Float32bits(t)})
|
||||||
|
}
|
||||||
|
time.Sleep(time.Millisecond * accInterval)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (acc *accVobcService) Stop() {
|
||||||
|
if acc.controlContext != nil {
|
||||||
|
acc.controlContext()
|
||||||
|
acc.controlContext = nil
|
||||||
|
}
|
||||||
|
if acc.vobcClient != nil {
|
||||||
|
acc.vobcClient.Close()
|
||||||
|
acc.vobcClient = nil
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
package message
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/binary"
|
||||||
|
"fmt"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
accHeader = 0xA6
|
||||||
|
uaidDefault = 0x1C
|
||||||
|
)
|
||||||
|
|
||||||
|
type Accelerometer struct {
|
||||||
|
Acc uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
func (acc *Accelerometer) Encode() []byte {
|
||||||
|
data := make([]byte, 0)
|
||||||
|
data = append(data, accHeader)
|
||||||
|
data = append(data, uaidDefault)
|
||||||
|
data = binary.LittleEndian.AppendUint32(data, acc.Acc)
|
||||||
|
cs := checkSum(data)
|
||||||
|
data = append(data, ^cs+1)
|
||||||
|
return data
|
||||||
|
}
|
||||||
|
|
||||||
|
func checkSum(data []byte) byte {
|
||||||
|
var sum byte = 0
|
||||||
|
for _, d := range data {
|
||||||
|
sum += d
|
||||||
|
}
|
||||||
|
return sum
|
||||||
|
}
|
||||||
|
|
||||||
|
func (acc *Accelerometer) Decode(data []byte) error {
|
||||||
|
if len(data) < 7 {
|
||||||
|
return fmt.Errorf("")
|
||||||
|
}
|
||||||
|
buf := bytes.NewBuffer(data)
|
||||||
|
_, _ = buf.ReadByte()
|
||||||
|
_, _ = buf.ReadByte()
|
||||||
|
var dataInt uint32 = 0
|
||||||
|
binary.Read(buf, binary.LittleEndian, &dataInt)
|
||||||
|
//newData := math.Float32frombits(dataInt & 0xffffc000)
|
||||||
|
acc.Acc = dataInt & 0xffffc000
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -76,6 +76,9 @@ type DynamicsTrainInfo struct {
|
||||||
Acceleration float32
|
Acceleration float32
|
||||||
// 对应动力学生命周期值
|
// 对应动力学生命周期值
|
||||||
VobcLifeSignal uint16
|
VobcLifeSignal uint16
|
||||||
|
|
||||||
|
//列车位移 单位:mm
|
||||||
|
Displacement uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
// 解析动力学的列车信息
|
// 解析动力学的列车信息
|
||||||
|
@ -102,5 +105,6 @@ func (t *DynamicsTrainInfo) Decode(buf []byte) error {
|
||||||
t.TailRadarSpeed = math.Float32frombits(binary.BigEndian.Uint32(buf[56:60]))
|
t.TailRadarSpeed = math.Float32frombits(binary.BigEndian.Uint32(buf[56:60]))
|
||||||
t.Acceleration = math.Float32frombits(binary.BigEndian.Uint32(buf[60:64]))
|
t.Acceleration = math.Float32frombits(binary.BigEndian.Uint32(buf[60:64]))
|
||||||
t.VobcLifeSignal = binary.BigEndian.Uint16(buf[64:66])
|
t.VobcLifeSignal = binary.BigEndian.Uint16(buf[64:66])
|
||||||
|
t.Displacement = binary.BigEndian.Uint16(buf[66:68])
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,10 +5,21 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"joylink.club/bj-rtsts-server/third_party/message"
|
"joylink.club/bj-rtsts-server/third_party/message"
|
||||||
"joylink.club/bj-rtsts-server/third_party/udp"
|
"joylink.club/bj-rtsts-server/third_party/udp"
|
||||||
|
"math"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func TestA1(t *testing.T) {
|
||||||
|
a := 112.12
|
||||||
|
b := 0.1
|
||||||
|
fmt.Println(math.Mod(a, b))
|
||||||
|
fmt.Println(a / 0.1)
|
||||||
|
fmt.Println(math.Mod(1121, 0.1))
|
||||||
|
fmt.Println(math.Round(math.Mod(1121, 0.1)))
|
||||||
|
|
||||||
|
}
|
||||||
func TestUdp(t *testing.T) {
|
func TestUdp(t *testing.T) {
|
||||||
|
|
||||||
fmt.Println("准备启动服务...")
|
fmt.Println("准备启动服务...")
|
||||||
addr := fmt.Sprintf("%v:%v", "127.0.0.1", "8899")
|
addr := fmt.Sprintf("%v:%v", "127.0.0.1", "8899")
|
||||||
server := udp.NewServer(addr, handle)
|
server := udp.NewServer(addr, handle)
|
||||||
|
|
|
@ -26,9 +26,10 @@ type RadarVobcManager interface {
|
||||||
const radar_interval = 15
|
const radar_interval = 15
|
||||||
|
|
||||||
var (
|
var (
|
||||||
initLock = sync.Mutex{}
|
initLock = sync.Mutex{}
|
||||||
_radar *radarVobc
|
_radar *radarVobc
|
||||||
fixed_speed = 0.009155
|
fixed_speed = 0.009155
|
||||||
|
driftDefaultVal = 0.1
|
||||||
)
|
)
|
||||||
|
|
||||||
func Default() RadarVobc {
|
func Default() RadarVobc {
|
||||||
|
@ -74,10 +75,15 @@ func (rv *radarVobc) sendRadarInfo(ctx context.Context) {
|
||||||
trainStatus := rv.radarVobcManager.FindRadarTrain()
|
trainStatus := rv.radarVobcManager.FindRadarTrain()
|
||||||
if trainStatus != nil {
|
if trainStatus != nil {
|
||||||
hourSpeed := float64(trainStatus.DynamicState.Speed / 100)
|
hourSpeed := float64(trainStatus.DynamicState.Speed / 100)
|
||||||
ri := message.RadarInfo{RealSpeed: uint16(math.Round(hourSpeed / fixed_speed)), DriftCounterS1: 0, DriftCounterS2: 0}
|
trainDift := trainStatus.DynamicState.Displacement
|
||||||
|
td := float64(trainDift / 1000)
|
||||||
|
s1 := uint16(math.Round(td / driftDefaultVal))
|
||||||
|
s2 := uint16(math.Round(td / 1000 / driftDefaultVal))
|
||||||
|
|
||||||
|
ri := message.RadarInfo{RealSpeed: uint16(math.Round(hourSpeed / fixed_speed)), DriftCounterS1: s1, DriftCounterS2: s2}
|
||||||
rv.vobcClient.SendMsg(ri)
|
rv.vobcClient.SendMsg(ri)
|
||||||
time.Sleep(time.Millisecond * radar_interval)
|
|
||||||
}
|
}
|
||||||
|
time.Sleep(time.Millisecond * radar_interval)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -199,6 +199,10 @@ func copyTrainEnds(trainState *state_proto.TrainState, fieldName string, configD
|
||||||
endsVal.RadarEnable = configData.RadarEnable
|
endsVal.RadarEnable = configData.RadarEnable
|
||||||
endsVal.RadarCheckSpeedDiff = configData.RadarCheckSpeedDiff
|
endsVal.RadarCheckSpeedDiff = configData.RadarCheckSpeedDiff
|
||||||
endsVal.RadarCheckTime = configData.RadarCheckTime
|
endsVal.RadarCheckTime = configData.RadarCheckTime
|
||||||
|
endsVal.AccEnable = configData.AccEnable
|
||||||
|
endsVal.AccCheckSpeedDiff = configData.AccCheckSpeedDiff
|
||||||
|
endsVal.AccCheckTime = configData.AccCheckTime
|
||||||
|
|
||||||
}
|
}
|
||||||
func UpdateConfigTrain(vs *VerifySimulation, ct *dto.ConfigTrainReqDto) {
|
func UpdateConfigTrain(vs *VerifySimulation, ct *dto.ConfigTrainReqDto) {
|
||||||
allTrainMap := &vs.Memory.Status.TrainStateMap
|
allTrainMap := &vs.Memory.Status.TrainStateMap
|
||||||
|
@ -321,6 +325,7 @@ func UpdateTrainStateByDynamics(vs *VerifySimulation, trainId string, info *mess
|
||||||
sta.DynamicState.HeadRadarSpeed = speedParse(info.HeadRadarSpeed)
|
sta.DynamicState.HeadRadarSpeed = speedParse(info.HeadRadarSpeed)
|
||||||
sta.DynamicState.TailRadarSpeed = speedParse(info.TailRadarSpeed)
|
sta.DynamicState.TailRadarSpeed = speedParse(info.TailRadarSpeed)
|
||||||
sta.DynamicState.Acceleration = info.Acceleration
|
sta.DynamicState.Acceleration = info.Acceleration
|
||||||
|
sta.DynamicState.Displacement = int32(info.Displacement)
|
||||||
return sta
|
return sta
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -540,6 +540,11 @@ func (s *VerifySimulation) GetRunRadarConfig() config.RadarConfig {
|
||||||
return s.runConfig.Radar
|
return s.runConfig.Radar
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetRunAccConfig 获取加速计配置信息
|
||||||
|
func (s *VerifySimulation) GetRunAccConfig() config.AccConfig {
|
||||||
|
return s.runConfig.Acc
|
||||||
|
}
|
||||||
|
|
||||||
// FindRadarTrain 查找一个列车 只有1端雷达开启啊
|
// FindRadarTrain 查找一个列车 只有1端雷达开启啊
|
||||||
func (s *VerifySimulation) FindRadarTrain() *state_proto.TrainState {
|
func (s *VerifySimulation) FindRadarTrain() *state_proto.TrainState {
|
||||||
var trainStatus *state_proto.TrainState
|
var trainStatus *state_proto.TrainState
|
||||||
|
@ -560,6 +565,25 @@ func (s *VerifySimulation) FindRadarTrain() *state_proto.TrainState {
|
||||||
return trainStatus
|
return trainStatus
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FindRadarTrain 查找一个列车 只有1端雷达开启啊
|
||||||
|
func (s *VerifySimulation) FindAccTrain() *state_proto.TrainState {
|
||||||
|
var trainStatus *state_proto.TrainState
|
||||||
|
s.Memory.Status.TrainStateMap.Range(func(k any, v any) bool {
|
||||||
|
val, ok := v.(*state_proto.TrainState)
|
||||||
|
if ok {
|
||||||
|
if val.TrainEndsA.AccEnable && val.TrainEndsB.AccEnable {
|
||||||
|
//trainStatus = val
|
||||||
|
//return false
|
||||||
|
return true
|
||||||
|
} else if val.TrainEndsA.AccEnable || val.TrainEndsB.AccEnable {
|
||||||
|
trainStatus = val
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
return trainStatus
|
||||||
|
}
|
||||||
func buildProtoRepository(mapIds []int32) (*proto.Repository, error) {
|
func buildProtoRepository(mapIds []int32) (*proto.Repository, error) {
|
||||||
repo := &proto.Repository{}
|
repo := &proto.Repository{}
|
||||||
var exceptStationGiMapIds []int32
|
var exceptStationGiMapIds []int32
|
||||||
|
|
|
@ -2,6 +2,7 @@ package ts
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"joylink.club/bj-rtsts-server/third_party/acc"
|
||||||
"joylink.club/bj-rtsts-server/third_party/radar"
|
"joylink.club/bj-rtsts-server/third_party/radar"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
@ -133,6 +134,8 @@ func runThirdParty(s *memory.VerifySimulation) error {
|
||||||
}
|
}
|
||||||
//列车雷达发送vobc
|
//列车雷达发送vobc
|
||||||
radar.Default().Start(s)
|
radar.Default().Start(s)
|
||||||
|
//列车加速计发送vobc
|
||||||
|
acc.Default().Start(s)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,6 +159,8 @@ func stopThirdParty(s *memory.VerifySimulation) {
|
||||||
cidcmodbus.Stop()
|
cidcmodbus.Stop()
|
||||||
// 雷达服务停止
|
// 雷达服务停止
|
||||||
radar.Default().Stop()
|
radar.Default().Stop()
|
||||||
|
// 加速计服务停止
|
||||||
|
acc.Default().Stop()
|
||||||
}
|
}
|
||||||
|
|
||||||
func createSimulationId(projectId int32) string {
|
func createSimulationId(projectId int32) string {
|
||||||
|
|
Loading…
Reference in New Issue