计轴
This commit is contained in:
parent
81760f5c89
commit
618af297ae
@ -52,6 +52,9 @@ type AxleManageDevice struct {
|
||||
Adrs map[string]*AxleDeviceRuntime //key-sectionId
|
||||
}
|
||||
|
||||
func (d *AxleManageDevice) FindAdr(sectionId string) *AxleDeviceRuntime {
|
||||
return d.Adrs[sectionId]
|
||||
}
|
||||
func NewAxleManageDevice(centralizedStation string) *AxleManageDevice {
|
||||
return &AxleManageDevice{CentralizedStation: centralizedStation, Adrs: make(map[string]*AxleDeviceRuntime)}
|
||||
}
|
||||
|
@ -24,7 +24,10 @@ func LoadAxlePhysicalSections(w ecs.World) error {
|
||||
if len(strings.TrimSpace(section.CentralizedStation())) == 0 {
|
||||
return fmt.Errorf("区段[%s]未设置所属集中站", section.Id())
|
||||
}
|
||||
amdEntry := newAxleManageDevice(w, data, section.CentralizedStation())
|
||||
amdEntry := FindAxleManageDevice(data, section.CentralizedStation())
|
||||
if amdEntry == nil {
|
||||
amdEntry = newAxleManageDevice(w, data, section.CentralizedStation())
|
||||
}
|
||||
amd := component.AxleManageDeviceType.Get(amdEntry)
|
||||
//
|
||||
createAxleSectionEntity(w, section, data)
|
||||
|
@ -24,8 +24,8 @@ func AxleSectionDrstDrive(w ecs.World, sectionId string, set bool) error {
|
||||
return ecs.NewErrResult(fmt.Errorf("计轴管理设备[%s]实体不存在", sectionModel.CentralizedStation()))
|
||||
}
|
||||
faDcAxleDevice := component.AxleManageDeviceType.Get(faDcAxleDeviceEntry)
|
||||
axleRuntime, ok := faDcAxleDevice.Adrs[sectionId]
|
||||
if !ok {
|
||||
axleRuntime := faDcAxleDevice.FindAdr(sectionId)
|
||||
if axleRuntime == nil {
|
||||
return ecs.NewErrResult(fmt.Errorf("计轴管理设备[%s]中不存在区段[%s]的计轴设备", sectionModel.CentralizedStation(), sectionId))
|
||||
}
|
||||
axleRuntime.Drst = set
|
||||
|
@ -34,7 +34,7 @@ func (s *FaDcAxleDeviceSystem) Update(w ecs.World) {
|
||||
s.calculateSectionState(sectionState, axleDevice, axleRuntime)
|
||||
s.calculateAxleCount(sectionState, axleDevice, axleRuntime)
|
||||
|
||||
if "北京_12_酒仙桥_12G" == axleSectionId && true {
|
||||
if "北京_12_酒仙桥_12G" == axleSectionId && false {
|
||||
sectionFault := axleSectionEntry.HasComponent(component.AxleSectionFaultTag)
|
||||
slog.Info(axleSectionId,
|
||||
"Drst", axleRuntime.Drst,
|
||||
@ -61,7 +61,6 @@ func (s *FaDcAxleDeviceSystem) calculateAxleCount(sectionState *component.Physic
|
||||
|
||||
// 计算计轴区段状态
|
||||
func (s *FaDcAxleDeviceSystem) calculateSectionState(sectionState *component.PhysicalSectionState, axleDevice *component.AxlePhysicalSection, axleRuntime *component.AxleDeviceRuntime) {
|
||||
|
||||
isIdle := axleDevice.Count <= 0 && !axleRuntime.DoingPdrst //区段空闲:区段内车轴数为零且没有预复位
|
||||
sectionState.Occ = !isIdle
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user