118 lines
2.9 KiB
Swift
118 lines
2.9 KiB
Swift
import Foundation
|
|
|
|
public enum EquipmentMeasurement: Equatable {
|
|
|
|
case airHandler(AirHandler)
|
|
case furnaceAndCoil(FurnaceAndCoil)
|
|
|
|
public var equipmentType: EquipmentType {
|
|
switch self {
|
|
case .airHandler:
|
|
return .airHandler
|
|
case .furnaceAndCoil:
|
|
return .furnaceAndCoil
|
|
}
|
|
}
|
|
|
|
public var externalStaticPressure: Double {
|
|
switch self {
|
|
case let .airHandler(airHandler):
|
|
return airHandler.externalStaticPressure
|
|
case let .furnaceAndCoil(furnaceAndCoil):
|
|
return furnaceAndCoil.externalStaticPressure
|
|
}
|
|
}
|
|
|
|
public struct AirHandler: Equatable {
|
|
|
|
public var airflow: Double?
|
|
|
|
@Positive
|
|
public var returnPlenumPressure: Double?
|
|
|
|
@Positive
|
|
public var postFilterPressure: Double?
|
|
|
|
@Positive
|
|
public var postCoilPressure: Double?
|
|
|
|
@Positive
|
|
public var supplyPlenumPressure: Double?
|
|
|
|
public init(
|
|
airflow: Double? = nil,
|
|
returnPlenumPressure: Double? = nil,
|
|
postFilterPressure: Double? = nil,
|
|
postCoilPressure: Double? = nil,
|
|
supplyPlenumPressure: Double? = nil
|
|
) {
|
|
self.airflow = airflow
|
|
self.returnPlenumPressure = returnPlenumPressure
|
|
self.postFilterPressure = postFilterPressure
|
|
self.postCoilPressure = postCoilPressure
|
|
self.supplyPlenumPressure = supplyPlenumPressure
|
|
}
|
|
|
|
public var externalStaticPressure: Double {
|
|
($returnPlenumPressure.positiveValue ?? 0) + ($supplyPlenumPressure.positiveValue ?? 0)
|
|
}
|
|
}
|
|
|
|
public struct FurnaceAndCoil: Equatable {
|
|
|
|
public var airflow: Double?
|
|
|
|
@Positive
|
|
public var returnPlenumPressure: Double?
|
|
|
|
@Positive
|
|
public var postFilterPressure: Double?
|
|
|
|
@Positive
|
|
public var preCoilPressure: Double?
|
|
|
|
@Positive
|
|
public var supplyPlenumPressure: Double?
|
|
|
|
public init(
|
|
airflow: Double? = nil,
|
|
returnPlenumPressure: Double? = nil,
|
|
postFilterPressure: Double? = nil,
|
|
preCoilPressure: Double? = nil,
|
|
supplyPlenumPressure: Double? = nil
|
|
) {
|
|
self.airflow = airflow
|
|
self.returnPlenumPressure = returnPlenumPressure
|
|
self.postFilterPressure = postFilterPressure
|
|
self.preCoilPressure = preCoilPressure
|
|
self.supplyPlenumPressure = supplyPlenumPressure
|
|
}
|
|
|
|
public var externalStaticPressure: Double {
|
|
($postFilterPressure.positiveValue ?? 0) + ($preCoilPressure.positiveValue ?? 0)
|
|
}
|
|
}
|
|
}
|
|
|
|
extension EquipmentMeasurement.AirHandler {
|
|
|
|
public enum Key: String, Equatable, CaseIterable {
|
|
case returnPlenumPressure
|
|
case postFilterPressure
|
|
case postCoilPressure
|
|
case supplyPlenumPressure
|
|
case airflow
|
|
}
|
|
}
|
|
|
|
extension EquipmentMeasurement.FurnaceAndCoil {
|
|
|
|
public enum Key: String, Equatable, CaseIterable {
|
|
case returnPlenumPressure
|
|
case postFilterPressure
|
|
case preCoilPressure
|
|
case supplyPlenumPressure
|
|
case airflow
|
|
}
|
|
}
|