rts-sim-module/component/train.go

53 lines
1.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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]()
)