package tmodel import ( "joylink.club/rtsssimulation/umi" ) // 道岔 type SwitchModel struct { DeviceModel //道岔A端口连接的轨道 PortA umi.ILinkRef //道岔B端口连接的轨道 PortB umi.ILinkRef //道岔C端口连接的轨道 PortC umi.ILinkRef } func NewSwitchModel(id string) *SwitchModel { return &SwitchModel{DeviceModel: DeviceModel{Id: id, Type: umi.Switch}} } // 道岔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 }