rts-sim-module/repository/electronic_component.go

70 lines
1.3 KiB
Go
Raw Normal View History

package repository
import "joylink.club/rtsssimulation/repository/model/proto"
// 组合的电子元件
type IGroupedElectronicComponent interface {
Identity
Code() string
}
// Relay 继电器
type Relay struct {
Identity
code string
model proto.Relay_Model
}
func newRelay(id string, code string, model proto.Relay_Model) *Relay {
return &Relay{
Identity: identity{
id: id,
deviceType: proto.DeviceType_DeviceType_Relay,
},
code: code,
model: model,
}
}
func (r *Relay) Code() string {
return r.code
}
func (r *Relay) Model() proto.Relay_Model {
return r.model
}
// ElectronicComponentGroup 电子元件组合
type ElectronicComponentGroup struct {
code string
components []IGroupedElectronicComponent
}
func (r *ElectronicComponentGroup) Code() string {
return r.code
}
func (r *ElectronicComponentGroup) Components() []IGroupedElectronicComponent {
return r.components
}
// PhaseFailureProtector 断相保护器
type PhaseFailureProtector struct {
Identity
code string
}
func (dbq *PhaseFailureProtector) Code() string {
return dbq.code
}
func newPhaseFailureProtector(id string, code string) *PhaseFailureProtector {
return &PhaseFailureProtector{
Identity: identity{
id: id,
deviceType: proto.DeviceType_DeviceType_PhaseFailureProtector,
},
code: code,
}
}