66 lines
1.4 KiB
Go
66 lines
1.4 KiB
Go
|
package tmodel
|
|||
|
|
|||
|
import (
|
|||
|
"joylink.club/rtsssimulation/umi"
|
|||
|
)
|
|||
|
|
|||
|
// 道岔
|
|||
|
type SwitchModel struct {
|
|||
|
DeviceModel
|
|||
|
//道岔A端口连接的轨道
|
|||
|
PortA umi.ILinkRef
|
|||
|
//道岔B端口连接的轨道
|
|||
|
PortB umi.ILinkRef
|
|||
|
//道岔C端口连接的轨道
|
|||
|
PortC umi.ILinkRef
|
|||
|
//道岔转动需要的时间(从开度0-100的时间),单位ms
|
|||
|
TurnTime int64
|
|||
|
}
|
|||
|
|
|||
|
func NewSwitchModel(id string) *SwitchModel {
|
|||
|
return &SwitchModel{DeviceModel: DeviceModel{Id: id, Type: umi.Switch}}
|
|||
|
}
|
|||
|
|
|||
|
// 道岔转动从0-100耗时,单位ms
|
|||
|
func (me *SwitchModel) TurningTime() int64 {
|
|||
|
return me.TurnTime
|
|||
|
}
|
|||
|
|
|||
|
// 道岔A端口连接的轨道
|
|||
|
func (me *SwitchModel) PortALink() umi.ILinkRef {
|
|||
|
return me.PortA
|
|||
|
}
|
|||
|
|
|||
|
// 道岔B端口连接的轨道
|
|||
|
func (me *SwitchModel) PortBLink() umi.ILinkRef {
|
|||
|
return me.PortB
|
|||
|
}
|
|||
|
|
|||
|
// 道岔C端口连接的轨道
|
|||
|
func (me *SwitchModel) PortCLink() umi.ILinkRef {
|
|||
|
return me.PortC
|
|||
|
}
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////
|
|||
|
|
|||
|
// 道岔端口引用
|
|||
|
type SwitchRef struct {
|
|||
|
Switch umi.ISwitchModel
|
|||
|
//引用道岔的端口
|
|||
|
Port umi.PortEnum
|
|||
|
}
|
|||
|
|
|||
|
func NewSwitchRef(switchModel *SwitchModel, port umi.PortEnum) *SwitchRef {
|
|||
|
return &SwitchRef{Switch: switchModel, Port: port}
|
|||
|
}
|
|||
|
|
|||
|
// 被引用的道岔模型
|
|||
|
func (me *SwitchRef) SwitchModel() umi.ISwitchModel {
|
|||
|
return me.Switch
|
|||
|
}
|
|||
|
|
|||
|
// 被引用的道岔的端口
|
|||
|
func (me *SwitchRef) SwitchPort() umi.PortEnum {
|
|||
|
return me.Port
|
|||
|
}
|