balise detect 预测实现

This commit is contained in:
xzb 2023-12-05 13:49:21 +08:00
parent 82367536da
commit 90c803f71d

View File

@ -16,22 +16,23 @@ func NewBaliseSystem() *BaliseSystem {
}
func (s *BaliseSystem) Update(w ecs.World) {
s.baliseQuery.Each(w, func(entry *ecs.Entry) {
baliseState := component.BaliseStateType.Get(entry)
baliseState.ValidTelegram = s.findValidTelegram(w, entry)
s.updateValidTelegram(w, entry)
})
}
// 获取应答器有效报文
func (s *BaliseSystem) findValidTelegram(w ecs.World, entry *ecs.Entry) []byte {
// 更新应答器有效报文
func (s *BaliseSystem) updateValidTelegram(w ecs.World, entry *ecs.Entry) {
wd := entity.GetWorldData(w)
id := component.UidType.Get(entry).Id
baliseState := component.BaliseStateType.Get(entry)
if entry.HasComponent(component.BaliseFB) { //固定应答器
baliseModel := wd.Repo.FindTransponder(id)
telegram := baliseModel.FixedTelegram()
if telegram != nil {
return telegram
} else { //测试用
return []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
if len(baliseState.ValidTelegram) == 0 {
baliseModel := wd.Repo.FindTransponder(id)
telegram := baliseModel.FixedTelegram()
if len(telegram) == 0 { //测试用
telegram = []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
}
baliseState.ValidTelegram = telegram
}
} else if entry.HasComponent(component.BaliseDB) { //休眠唤醒应答器
@ -42,5 +43,4 @@ func (s *BaliseSystem) findValidTelegram(w ecs.World, entry *ecs.Entry) []byte {
} else if entry.HasComponent(component.BaliseWB) { //轮径校正应答器
}
return nil
}