59 lines
1.4 KiB
Swift
59 lines
1.4 KiB
Swift
import Foundation
|
|
|
|
public struct BudgetedPercentEnvelope: Equatable {
|
|
|
|
public var coilBudget: Percentage
|
|
public var filterBudget: Percentage
|
|
public var returnPlenumBudget: Percentage
|
|
public var supplyPlenumBudget: Percentage
|
|
|
|
public var preCoilBudget: Percentage {
|
|
coilBudget + supplyPlenumBudget
|
|
}
|
|
|
|
public init(
|
|
coilBudget: Percentage,
|
|
filterBudget: Percentage,
|
|
returnPlenumBudget: Percentage,
|
|
supplyPlenumBudget: Percentage
|
|
) {
|
|
self.coilBudget = coilBudget
|
|
self.filterBudget = filterBudget
|
|
self.returnPlenumBudget = returnPlenumBudget
|
|
self.supplyPlenumBudget = supplyPlenumBudget
|
|
}
|
|
|
|
public var total: Percentage {
|
|
coilBudget + filterBudget + supplyPlenumBudget + returnPlenumBudget
|
|
}
|
|
|
|
public init(equipmentType: EquipmentType, fanType: FanType) {
|
|
switch equipmentType {
|
|
case .furnaceAndCoil:
|
|
switch fanType {
|
|
case .constantSpeed:
|
|
self.init(
|
|
coilBudget: 40%,
|
|
filterBudget: 20%,
|
|
returnPlenumBudget: 20%,
|
|
supplyPlenumBudget: 20%
|
|
)
|
|
case .variableSpeed:
|
|
self.init(
|
|
coilBudget: 30%,
|
|
filterBudget: 40%,
|
|
returnPlenumBudget: 15%,
|
|
supplyPlenumBudget: 15%
|
|
)
|
|
}
|
|
case .airHandler:
|
|
self.init(
|
|
coilBudget: .zero,
|
|
filterBudget: 50%,
|
|
returnPlenumBudget: 25%,
|
|
supplyPlenumBudget: 25%
|
|
)
|
|
}
|
|
}
|
|
}
|