2023-09-06 16:20:36 +08:00
|
|
|
|
package repository
|
2023-08-29 14:59:31 +08:00
|
|
|
|
|
|
|
|
|
import "joylink.club/rtsssimulation/repository/model/proto"
|
|
|
|
|
|
2023-08-29 18:01:32 +08:00
|
|
|
|
// 身份信息
|
|
|
|
|
type Identity interface {
|
2023-08-29 14:59:31 +08:00
|
|
|
|
Id() string
|
2023-09-06 16:20:36 +08:00
|
|
|
|
Type() proto.DeviceType
|
2023-08-29 14:59:31 +08:00
|
|
|
|
}
|
|
|
|
|
|
2023-08-29 18:01:32 +08:00
|
|
|
|
// 身份信息
|
|
|
|
|
type identity struct {
|
2023-09-06 16:20:36 +08:00
|
|
|
|
id string
|
|
|
|
|
deviceType proto.DeviceType
|
2023-08-29 14:59:31 +08:00
|
|
|
|
}
|
|
|
|
|
|
2023-08-29 18:01:32 +08:00
|
|
|
|
func (m identity) Id() string {
|
2023-08-29 14:59:31 +08:00
|
|
|
|
return m.id
|
|
|
|
|
}
|
|
|
|
|
|
2023-09-06 16:20:36 +08:00
|
|
|
|
func (m identity) Type() proto.DeviceType {
|
|
|
|
|
return m.deviceType
|
2023-08-29 14:59:31 +08:00
|
|
|
|
}
|
2023-09-22 10:53:51 +08:00
|
|
|
|
|
2023-09-22 11:02:10 +08:00
|
|
|
|
//////////////////////////system中使用///////////////////////////////////
|
2023-09-22 10:53:51 +08:00
|
|
|
|
|
|
|
|
|
// IRelayCRole 获取继电器在具体电路中的角色(组合类型、功能名称)
|
|
|
|
|
// 如信号机3XH-1电路中点灯继电器:组合类型-"3XH-1" 功能名称-"DDJ"
|
|
|
|
|
// 对应设备电路中有继电器的设备模型须实现该接口
|
|
|
|
|
type IRelayCRole interface {
|
|
|
|
|
//FindCircuitRoleById 根据继电器id获取在具体电路中的电路角色
|
|
|
|
|
//relayId-继电器id
|
|
|
|
|
//relayGroup-继电器组合类型
|
|
|
|
|
//relayName-继电器在电路中的名称
|
|
|
|
|
//find-true找到,false未找到
|
|
|
|
|
FindCircuitRoleById(relayId string) (relayGroup string, relayName string, find bool)
|
|
|
|
|
//FindRelayModelByCRole 根据继电器具体电路角色来获取继电器设备模型
|
|
|
|
|
//relayGroup-继电器组合类型
|
|
|
|
|
//relayName-继电器在电路中的名称
|
|
|
|
|
FindRelayModelByCRole(relayGroup string, relayName string) Identity
|
|
|
|
|
}
|
2023-09-22 11:02:10 +08:00
|
|
|
|
|
|
|
|
|
// IModelManager 模型管理接口
|
|
|
|
|
type IModelManager interface {
|
|
|
|
|
//FindById 根据模型的复合id获取模型数据
|
|
|
|
|
FindById(id string) Identity
|
|
|
|
|
}
|
2023-09-22 14:39:36 +08:00
|
|
|
|
|
|
|
|
|
// IPsdModel 仿真底层屏蔽门模型
|
|
|
|
|
// 用户所有屏蔽门模型定义须实现该接口
|
|
|
|
|
type IPsdModel interface {
|
|
|
|
|
//FindSPsdCells 获取车站上行侧所有屏蔽门子门
|
|
|
|
|
FindSPsdCells() []Identity
|
|
|
|
|
//FindS4KmUpPsdCells 4编组运行方向为上行且在车站上行侧时,对应所有屏蔽门子门
|
|
|
|
|
FindS4KmUpPsdCells() []Identity
|
|
|
|
|
//FindS8KmUpPsdCells 8编组运行方向为上行且在车站上行侧时,对应所有屏蔽门子门
|
|
|
|
|
FindS8KmUpPsdCells() []Identity
|
|
|
|
|
//FindS4KmDownPsdCells 4编组运行方向为下行且在车站上行侧时,对应所有屏蔽门子门
|
|
|
|
|
FindS4KmDownPsdCells() []Identity
|
|
|
|
|
//FindS8KmDownPsdCells 8编组运行方向为下行且在车站上行侧时,对应所有屏蔽门子门
|
|
|
|
|
FindS8KmDownPsdCells() []Identity
|
|
|
|
|
//FindXPsdCells 获取车站上行侧所有屏蔽门子门
|
|
|
|
|
FindXPsdCells() []Identity
|
|
|
|
|
//FindX4KmUpPsdCells 4编组运行方向为上行且在车站下行侧时,对应所有屏蔽门子门
|
|
|
|
|
FindX4KmUpPsdCells() []Identity
|
|
|
|
|
//FindX8KmUpPsdCells 8编组运行方向为上行且在车站下行侧时,对应所有屏蔽门子门
|
|
|
|
|
FindX8KmUpPsdCells() []Identity
|
|
|
|
|
//FindX4KmDownPsdCells 4编组运行方向为下行且在车站下行侧时,对应所有屏蔽门子门
|
|
|
|
|
FindX4KmDownPsdCells() []Identity
|
|
|
|
|
//FindX8KmDownPsdCells 8编组运行方向为下行且在车站下行侧时,对应所有屏蔽门子门
|
|
|
|
|
FindX8KmDownPsdCells() []Identity
|
|
|
|
|
}
|