iscs bas 大系统
This commit is contained in:
parent
2b27052092
commit
7deeabe23e
@ -147,6 +147,7 @@ func NewFanEntity(w ecs.World, id string, fanType proto.Fan_Type) *ecs.Entry {
|
||||
if !ok {
|
||||
e := w.Entry(w.Create(component.UidType, component.FanDeviceType, component.DeviceExceptionType))
|
||||
component.UidType.SetValue(e, component.Uid{Id: id})
|
||||
component.FanDeviceType.Set(e, &component.FanDevice{Speed: 0, Forward: true, Fs: component.Off})
|
||||
//
|
||||
switch fanType {
|
||||
case proto.Fan_CommonFan:
|
||||
|
@ -62,6 +62,7 @@ func bindIscsSystem(w ecs.World) {
|
||||
iscs_sys.NewEarthingDeviceSystem(),
|
||||
//
|
||||
iscs_sys.NewNetworkSwitchSystem(),
|
||||
iscs_sys.NewWireCabinetSystem())
|
||||
iscs_sys.NewWireCabinetSystem(),
|
||||
iscs_sys.NewFanSystem())
|
||||
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ type FanSystem struct {
|
||||
query *ecs.Query
|
||||
}
|
||||
|
||||
// NewFanSystem 风机系统
|
||||
func NewFanSystem() *FanSystem {
|
||||
return &FanSystem{
|
||||
query: ecs.NewQuery(filter.Contains(component.UidType, component.FanDeviceType, component.DeviceExceptionType)),
|
||||
@ -23,17 +24,20 @@ func (s *FanSystem) Update(w ecs.World) {
|
||||
//
|
||||
speed := fan.Speed + s.calculateAc(fan, entry)*float32(w.Tick())
|
||||
//
|
||||
if speed <= 0 {
|
||||
fan.Speed = 0
|
||||
} else {
|
||||
switch {
|
||||
case entry.HasComponent(component.CommonFanTag): //一般风机(3000 r/min)
|
||||
{
|
||||
if speed > 3000 {
|
||||
fan.Speed = 3000
|
||||
speed = 3000
|
||||
}
|
||||
}
|
||||
case entry.HasComponent(component.SoftStartFanTag): //软启风机(100 r/min)
|
||||
{
|
||||
if speed > 100 {
|
||||
fan.Speed = 100
|
||||
speed = 100
|
||||
}
|
||||
}
|
||||
case entry.HasComponent(component.HighLowSpeedFanTag): //双速风机(Low 2000 r/min ; High 7000 r/min)
|
||||
@ -41,11 +45,11 @@ func (s *FanSystem) Update(w ecs.World) {
|
||||
highMode := component.FanHighLowSpeedModeType.Get(entry).HighMode
|
||||
if highMode { //高速模式
|
||||
if speed > 7000 {
|
||||
fan.Speed = 7000
|
||||
speed = 7000
|
||||
}
|
||||
} else { //低速模式
|
||||
if speed > 2000 {
|
||||
fan.Speed = 2000
|
||||
speed = 2000
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -58,13 +62,12 @@ func (s *FanSystem) Update(w ecs.World) {
|
||||
fcUnit := component.FanFcUnitType.Get(entry)
|
||||
SPEED := 60 * float32(fcUnit.F) //当前频率目标转速
|
||||
if speed > SPEED {
|
||||
fan.Speed = SPEED
|
||||
speed = SPEED
|
||||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
if speed < 0 {
|
||||
fan.Speed = 0
|
||||
fan.Speed = speed
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -79,16 +82,14 @@ func (s *FanSystem) calculateAc(fan *component.FanDevice, fanEntry *ecs.Entry) f
|
||||
softStart = component.FanSoftStartUnitType.Get(fanEntry).SoftStart
|
||||
}
|
||||
//
|
||||
if fan.Fs.Off() { //电源关闭
|
||||
ac = -4 //4 r/ms
|
||||
} else {
|
||||
if fan.Fs.On() { //电源---正转或反转启动
|
||||
if softStart {
|
||||
ac = 0.02 // r/ms
|
||||
} else {
|
||||
ac = 1.5 // r/ms
|
||||
}
|
||||
}
|
||||
} else { //电源关闭
|
||||
ac = -3 // r/ms
|
||||
}
|
||||
return ac
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user