【atp地面设备状态】

This commit is contained in:
weizhihong 2023-12-29 10:53:36 +08:00
parent 5d66ac7bb5
commit c9e89e2b02

View File

@ -4,7 +4,6 @@ import (
"time"
"joylink.club/ecs"
"joylink.club/rtsssimulation/repository/model/proto"
)
// 控制模式
@ -32,15 +31,6 @@ type SpeedLimit struct {
var SpeedLimitType = ecs.NewComponentType[SpeedLimit]() // 限速组件
// 门状态
type DoorStatus struct {
Open bool // 站台门开信息
Close bool // 站台门关信息
Locked bool // 锁闭状态
}
var DoorStatusType = ecs.NewComponentType[DoorStatus]() // 门开关闭状态组件
// 占用类型
type OccupiedType uint8
@ -60,8 +50,8 @@ var OccupiedStatusType = ecs.NewComponentType[OccupiedStatus]() // 占用状态
// 位置:目标位置、占用位置
type DevicePosition struct {
Device *ecs.Entry // 设备
Len int64 // 占用长度
Port proto.Port // 占用起始端口
Offset int64 // 在设备上的相对a位置偏移
Direction bool // 从a到b为true;从b到a为false
}
var DevicePositionType = ecs.NewComponentType[DevicePosition]()
@ -78,13 +68,28 @@ type FaultLock struct {
Fault any // 故障信息
}
var FaultLockType = ecs.NewComponentType[FaultLock]()
var FaultLockType = ecs.NewComponentType[FaultLock]() // 故障锁闭状态组件
// 封锁状态
type BlockadeStatus struct {
}
var BlockadeStatusType = ecs.NewComponentType[BlockadeStatus]() // 区段状态
var BlockadeStatusType = ecs.NewComponentType[BlockadeStatus]() // 封锁状态组件
// 解锁状态
type UnLockStatus struct {
Delay bool // 延迟状态
DelayTime time.Duration // 延迟解锁时间
TriggerDevice *ecs.Entry // 触发解锁设备
}
var UnLockStatusType = ecs.NewComponentType[UnLockStatus]() // 解锁状态组件
// 关闭状态
type ClosedStatus struct {
}
var ClosedStatusType = ecs.NewComponentType[ClosedStatus]() // 关闭状态组件
// 站台跳停状态
type StandSkipStatus struct {
@ -107,18 +112,26 @@ var StandParkStatusType = ecs.NewComponentType[StandParkStatus]() // 站台停
type StandHoldStatus struct {
}
var StandHoldStatusType = ecs.NewComponentType[StandHoldStatus]() // 站台扣车状态
var StandHoldStatusType = ecs.NewComponentType[StandHoldStatus]() // 扣车状态组件
// 站台紧急关闭状态
type StandEmpStatus struct {
EMPJ *ecs.Entry // 紧急关闭状态
// 信号机状态
type SignalStatus struct {
ApproachLock bool // 接近锁闭
OverlapLock bool // 延续保护锁闭
}
var StandEmpStatusType = ecs.NewComponentType[StandEmpStatus]() // 站台状态
var SignalStatusType = ecs.NewComponentType[SignalStatus]() // 信号机状态组件
// 进路状态
type RouteStatus struct {
StartSignal *ecs.Entry // 起始信号机
EndSignal *ecs.Entry // 终止信号机
Sections []*ecs.Entry // 区段列表
AtsControl bool // ats自动控制
Setting bool // 进路是否排列中
Lock bool // 已锁闭
}
var RouteStatusType = ecs.NewComponentType[RouteStatus]() // 进路状态组件
var (
StandTag = ecs.NewTag() // 站台标签
SectionTag = ecs.NewTag() // 区段标签
)