【增加修改列车状态方法】

This commit is contained in:
weizhihong 2023-08-01 17:45:26 +08:00
parent 33cceef0c8
commit ff7047cdee

View File

@ -18,7 +18,27 @@ func AddTrainState(simulation *VerifySimulation, status *state.TrainState) {
// 将信息合并到当前设备状态中
allTrainMap.Store(status.Id, status)
// 将变更信息放入变更状态队列中
simulation.Memory.ChangeStatus.SwitchStateMap.Store(status.Id, proto.Clone(status))
simulation.Memory.ChangeStatus.TrainStateMap.Store(status.Id, proto.Clone(status))
}
// 修改列车状态
func UpdateTrainState(simulation *VerifySimulation, status *state.TrainState) {
allTrainMap := &simulation.Memory.Status.TrainStateMap
d, ok := allTrainMap.Load(status.Id)
if !ok {
panic(fmt.Sprintf("列车【%s】不存在", status.Id))
}
t := d.(*state.TrainState)
// bool型信息单独处理
t.Up = status.Up
t.Upslope = status.Upslope
t.RunningUp = status.RunningUp
// 合并其他信息
proto.Merge(t, status)
// 更新全量信息
allTrainMap.Store(status.Id, t)
// 将变更信息放入变更状态队列中
simulation.Memory.ChangeStatus.TrainStateMap.Store(t.Id, proto.Clone(t))
}
// 删除列车状态