diff --git a/flight_quality/rules.py b/flight_quality/rules.py new file mode 100644 index 0000000..b77bb23 --- /dev/null +++ b/flight_quality/rules.py @@ -0,0 +1,15 @@ +from .model import Issue, Sample + + +def validate(samples: list[Sample]) -> list[Issue]: + issues = [] + previous_time = None + for sample in samples: + if previous_time is not None and sample.time_ms <= previous_time: + issues.append(Issue(sample.line, "TIME_ORDER", "采样时间未严格递增")) + previous_time = sample.time_ms + if not -40 <= sample.temperature_c <= 85: + issues.append(Issue(sample.line, "TEMP_RANGE", "温度超出试验量程")) + if not 9 <= sample.voltage_v <= 16: + issues.append(Issue(sample.line, "VOLT_RANGE", "电压超出试验量程")) + return issues