70 lines
1.3 KiB
Go
70 lines
1.3 KiB
Go
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,
|
|
}
|
|
}
|