rts-sim-testing-service/message_server/simulation_state_ms.go

34 lines
1.0 KiB
Go
Raw Normal View History

package message_server
import (
2023-12-20 10:37:54 +08:00
"joylink.club/bj-rtsts-server/message_server/ms_api"
"joylink.club/bj-rtsts-server/mqtt"
"joylink.club/bj-rtsts-server/ts/protos/state"
"joylink.club/bj-rtsts-server/ts/simulation/wayside/memory"
2023-10-27 16:51:48 +08:00
"joylink.club/ecs"
)
2023-12-20 10:37:54 +08:00
func NewStateMs(vs *memory.VerifySimulation) ms_api.MsgTask {
return ms_api.NewMonitorTask("仿真状态", func() {
ecs.WorldStateChangeEvent.Subscribe(vs.World, func(_ ecs.World, e ecs.WorldStateChange) {
switch e.NewState {
case ecs.WorldClose:
mqtt.PubSimulationState(vs.SimulationId, &state.SimulationStatus{
SimulationId: vs.SimulationId,
State: state.SimulationStatus_DESTROY,
})
case ecs.WorldError:
mqtt.PubSimulationState(vs.SimulationId, &state.SimulationStatus{
SimulationId: vs.SimulationId,
State: state.SimulationStatus_ERROR,
})
case ecs.WorldPause:
mqtt.PubSimulationState(vs.SimulationId, &state.SimulationStatus{
SimulationId: vs.SimulationId,
State: state.SimulationStatus_PAUSE,
})
}
})
2023-10-27 16:51:48 +08:00
})
}