codex init

This commit is contained in:
2026-08-05 16:49:05 +03:00
commit 3399e194ad
23 changed files with 1484 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
#pragma once
#include "Receiver.h"
enum class MeasureState : uint8_t { IDLE, SETTLING, RUNNING, PASS, FAIL };
class Measurement {
public:
explicit Measurement(PulseReceiver &receiver) : receiver_(receiver) {}
bool start(float expectedHz, float expectedDuty, float tolerancePct,
uint32_t testTimeMs, uint8_t repeats, uint8_t settleCycles);
MeasureState update();
void abort();
MeasureState state() const { return state_; }
FailReason reason() const { return stats_.reason; }
const StageStats &stats() const { return stats_; }
private:
void fail(FailReason reason);
PulseReceiver &receiver_;
MeasureState state_ = MeasureState::IDLE;
StageStats stats_ = {};
float expectedHz_ = 0, expectedDuty_ = 0, tolerance_ = 0;
uint32_t timeMs_ = 0;
uint8_t repeats_ = 0, settleLeft_ = 0;
uint64_t measurementStartTick_ = 0, deadlineTick_ = 0, repeatTicks_ = 0;
uint32_t startedMs_ = 0, measurementStartMs_ = 0, lastPeriodMs_ = 0;
uint32_t repeatPeriods_[10] = {};
};