【删除多余方法】
This commit is contained in:
parent
bef31c4dbb
commit
60f58060ad
@ -556,68 +556,3 @@ func turnoutOffsetToKilometer(repo *repository.Repository, uid string, runDirect
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 根据起始与末尾端查找经过的设备ID列表
|
||||
// 入参:起始设备uid、起始设备端口、终点设备uid、在区段(a->b)或道岔(->岔心)上的找寻方向
|
||||
// 输出:占用物理区段的ID
|
||||
func QueryDeviceRoutePath(sim *VerifySimulation, startUid, endUid, startPort string, pointTo bool) (paths []string, err error) {
|
||||
suid, port, direction := startUid, startPort, pointTo
|
||||
pathMap := make(map[string]bool)
|
||||
for {
|
||||
device := sim.Repo.FindById(suid)
|
||||
var nextRelation repository.DevicePort
|
||||
switch device.Type() {
|
||||
case proto2.DeviceType_DeviceType_PhysicalSection: // 区段
|
||||
d := device.(*repository.PhysicalSection)
|
||||
pathMap[d.Id()] = true
|
||||
nextRelation = d.ARelation()
|
||||
if direction {
|
||||
nextRelation = d.BRelation()
|
||||
}
|
||||
case proto2.DeviceType_DeviceType_Turnout: // 道岔
|
||||
d := device.(*repository.Turnout)
|
||||
physicalSection := d.GetPhysicalSection()
|
||||
if physicalSection == nil {
|
||||
err = sys_error.New(fmt.Sprintf("道岔%s没有绑定物理区段", device.Id()))
|
||||
break
|
||||
}
|
||||
pathMap[physicalSection.Id()] = true
|
||||
var nextPort proto2.Port
|
||||
switch port {
|
||||
case "A":
|
||||
nextPort = proto2.Port_A
|
||||
case "B":
|
||||
nextPort = proto2.Port_B
|
||||
case "C":
|
||||
nextPort = proto2.Port_C
|
||||
}
|
||||
if direction { // -> 岔心
|
||||
nextPort, err = getTurnoutNextPort(sim, d.Id(), port)
|
||||
}
|
||||
nextRelation = d.GindDevicePortByPort(nextPort)
|
||||
default:
|
||||
err = sys_error.New(fmt.Sprintf("查找路径设备类型%s无处理处理", device.Type().String()))
|
||||
}
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
if suid == endUid {
|
||||
break
|
||||
}
|
||||
if nextRelation == nil {
|
||||
break
|
||||
}
|
||||
suid = nextRelation.Device().Id() // 下一个设备ID
|
||||
port = nextRelation.Port().String() // 下一个道岔端
|
||||
switch nextRelation.Device().Type() { // 查找方向
|
||||
case proto2.DeviceType_DeviceType_PhysicalSection:
|
||||
direction = nextRelation.Port() == proto2.Port_A
|
||||
case proto2.DeviceType_DeviceType_Turnout:
|
||||
direction = true
|
||||
}
|
||||
}
|
||||
for k := range pathMap {
|
||||
paths = append(paths, k)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user