53 lines
1.5 KiB
Go
53 lines
1.5 KiB
Go
package component
|
||
|
||
import (
|
||
"fmt"
|
||
"joylink.club/ecs"
|
||
)
|
||
|
||
// TrainPositionInfo 列车当前位置信息
|
||
type TrainPositionInfo struct {
|
||
//列车头当前运行方向(true偏移量增大/false减小方向)
|
||
//link 由a->b偏移量增大
|
||
Up bool
|
||
//列车长度 mm
|
||
Len int64
|
||
//列车所在轨道link
|
||
HeadLink string
|
||
//列车所在link偏移量(mm)
|
||
HeadLinkOffset int64
|
||
//列车所在轨道link
|
||
TailLink string
|
||
//列车所在link偏移量(mm)
|
||
TailLinkOffset int64
|
||
}
|
||
|
||
func (t *TrainPositionInfo) ToString() string {
|
||
return fmt.Sprintf("Up=%t len=%d headLink=%s headOff=%d tailLink=%s tailOff=%d", t.Up, t.Len, t.HeadLink, t.HeadLinkOffset, t.TailLink, t.TailLinkOffset)
|
||
}
|
||
|
||
// TrainBtm 列车应答器传输模块
|
||
type TrainBtm struct {
|
||
//应答器计数(每过一个应答器加一,在同一个应答器内不变)
|
||
BaliseCounter int
|
||
//报文计数器(每解出一个应答器报文加一)
|
||
MessageCounter int
|
||
//车载应答器天线功率放大器开关,true-开,false-关
|
||
PowerAmplifierSwitch bool
|
||
//天线此时是否在应答器上方
|
||
AboveBalise bool
|
||
//列车在运行方向顺序扫描到的应答器
|
||
ScannedBalises []*TrainBaliseTelegram
|
||
}
|
||
|
||
// TrainBaliseTelegram 应答器报文
|
||
type TrainBaliseTelegram struct {
|
||
BaliseId string //应答器ID
|
||
Telegram []byte //一个应答器同一时刻只有一条报文处于激活有效状态
|
||
}
|
||
|
||
var (
|
||
TrainPositionInfoType = ecs.NewComponentType[TrainPositionInfo]()
|
||
TrainBtmType = ecs.NewComponentType[TrainBtm]()
|
||
)
|