feat: Begins flagged measurement list view.

This commit is contained in:
2024-06-06 22:23:45 -04:00
parent d253a470ca
commit 425b1d0c8f
12 changed files with 622 additions and 34 deletions

View File

@@ -80,66 +80,66 @@ extension EstimatedPressureDependency {
}
public func estimatedPressure(
for equipmentMeasurement: EquipmentMeasurement,
at upgradedAirflow: Double
equipmentMeasurement: EquipmentMeasurement,
airflow updatedAirflow: Double
) async throws -> EquipmentMeasurement {
switch equipmentMeasurement {
case let .airHandler(airHandler):
guard let airflow = airHandler.airflow else {
guard let existingAirflow = airHandler.airflow else {
throw InvalidAirflow()
}
return try await .airHandler(
.init(
airflow: upgradedAirflow,
airflow: updatedAirflow,
returnPlenumPressure: self.estimatedPressure(
existingPressure: airHandler.$returnPlenumPressure,
existingAirflow: airflow,
targetAirflow: upgradedAirflow
existingAirflow: existingAirflow,
targetAirflow: updatedAirflow
),
postFilterPressure: self.estimatedPressure(
existingPressure: airHandler.$postFilterPressure,
existingAirflow: airflow,
targetAirflow: upgradedAirflow
existingAirflow: existingAirflow,
targetAirflow: updatedAirflow
),
postCoilPressure: self.estimatedPressure(
existingPressure: airHandler.$postCoilPressure,
existingAirflow: airflow,
targetAirflow: upgradedAirflow
existingAirflow: existingAirflow,
targetAirflow: updatedAirflow
),
supplyPlenumPressure: self.estimatedPressure(
existingPressure: airHandler.$supplyPlenumPressure,
existingAirflow: airflow,
targetAirflow: upgradedAirflow
existingAirflow: existingAirflow,
targetAirflow: updatedAirflow
)
)
)
case let .furnaceAndCoil(furnaceAndCoil):
guard let airflow = furnaceAndCoil.airflow else {
guard let existingAirflow = furnaceAndCoil.airflow else {
throw InvalidAirflow()
}
return try await .furnaceAndCoil(
.init(
airflow: upgradedAirflow,
airflow: updatedAirflow,
returnPlenumPressure: self.estimatedPressure(
existingPressure: furnaceAndCoil.$returnPlenumPressure,
existingAirflow: airflow,
targetAirflow: upgradedAirflow
existingAirflow: existingAirflow,
targetAirflow: updatedAirflow
),
postFilterPressure: self.estimatedPressure(
existingPressure: furnaceAndCoil.$postFilterPressure,
existingAirflow: airflow,
targetAirflow: upgradedAirflow
existingAirflow: existingAirflow,
targetAirflow: updatedAirflow
),
preCoilPressure: self.estimatedPressure(
existingPressure: furnaceAndCoil.$preCoilPressure,
existingAirflow: airflow,
targetAirflow: upgradedAirflow
existingAirflow: existingAirflow,
targetAirflow: updatedAirflow
),
supplyPlenumPressure: self.estimatedPressure(
existingPressure: furnaceAndCoil.$supplyPlenumPressure,
existingAirflow: airflow,
targetAirflow: upgradedAirflow
existingAirflow: existingAirflow,
targetAirflow: updatedAirflow
)
)
)
@@ -148,13 +148,13 @@ extension EstimatedPressureDependency {
}
public func estimatedPressure(
for equipmentMeasurement: EquipmentMeasurement,
at upgradedAirflow: Double,
with filterPressureDrop: Positive<Double>
equipmentMeasurement: EquipmentMeasurement,
airflow updatedAirflow: Double,
filterPressureDrop: Positive<Double>
) async throws -> EquipmentMeasurement {
let estimate = try await estimatedPressure(
for: equipmentMeasurement,
at: upgradedAirflow
equipmentMeasurement: equipmentMeasurement,
airflow: updatedAirflow
)
switch estimate {
@@ -167,8 +167,24 @@ extension EstimatedPressureDependency {
furnaceAndCoil.postFilterPressure = furnaceAndCoil.returnPlenumPressure + filterPressureDrop.positiveValue
return .furnaceAndCoil(furnaceAndCoil)
}
}
public func estimatedPressure(
equipmentMeasurement: EquipmentMeasurement,
airflow updatedAirflow: Double,
filterPressureDrop: Positive<Double>?
) async throws -> EquipmentMeasurement {
guard let filterPressureDrop else {
return try await estimatedPressure(
equipmentMeasurement: equipmentMeasurement,
airflow: updatedAirflow
)
}
return try await estimatedPressure(
equipmentMeasurement: equipmentMeasurement,
airflow: updatedAirflow,
filterPressureDrop: filterPressureDrop
)
}
}