запущен тест между есп с перемычкой
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
#include "Receiver.h"
|
||||
|
||||
enum class MeasureState : uint8_t { IDLE, SETTLING, RUNNING, PASS, FAIL };
|
||||
enum class MeasureState : uint8_t { IDLE, SETTLING, RUNNING, STEP_READY, PASS, FAIL };
|
||||
|
||||
class Measurement {
|
||||
public:
|
||||
@@ -9,27 +9,32 @@ class Measurement {
|
||||
bool start(float expectedHz, float expectedDuty, float tolerancePct,
|
||||
uint32_t testTimeMs, uint8_t repeats, uint8_t settleCycles);
|
||||
MeasureState update();
|
||||
bool continueAfterDisplay();
|
||||
void abort();
|
||||
MeasureState state() const { return state_; }
|
||||
FailReason reason() const { return stats_.reason; }
|
||||
const StageStats &stats() const { return stats_; }
|
||||
bool statsSnapshot(StageStats &out) const;
|
||||
private:
|
||||
static void taskEntry(void *context);
|
||||
void taskLoop();
|
||||
MeasureState processOnce();
|
||||
void fail(FailReason reason);
|
||||
void completeWindow();
|
||||
void completeStep();
|
||||
void publishStats();
|
||||
PulseReceiver &receiver_;
|
||||
volatile MeasureState state_ = MeasureState::IDLE;
|
||||
TaskHandle_t task_ = nullptr;
|
||||
StageStats stats_ = {};
|
||||
StageStats publishedStats_ = {};
|
||||
mutable portMUX_TYPE statsMux_ = portMUX_INITIALIZER_UNLOCKED;
|
||||
PeriodLimits limits_ = {};
|
||||
uint32_t expectedHz_ = 0;
|
||||
uint32_t timeMs_ = 0;
|
||||
uint8_t repeats_ = 0, settleLeft_ = 0, currentRepeat_ = 0;
|
||||
uint64_t measurementStartTick_ = 0, deadlineTick_ = 0, repeatTicks_ = 0, nextRepeatTick_ = 0;
|
||||
uint8_t repeats_ = 0, settleCycles_ = 0, settleLeft_ = 0;
|
||||
uint8_t currentRepeat_ = 0, currentStep_ = 0, totalSteps_ = 0;
|
||||
uint64_t measurementStartTick_ = 0, deadlineTick_ = 0, stepTicks_ = 0;
|
||||
uint32_t startedMs_ = 0, measurementStartMs_ = 0, lastPeriodMs_ = 0;
|
||||
uint32_t expectedPeriodMs_ = 1;
|
||||
uint32_t stepTimeMs_ = 1, expectedPeriodMs_ = 1;
|
||||
uint32_t repeatPeriods_[10] = {};
|
||||
PulsePeriod periodBatch_[PERIOD_BATCH_SIZE] = {};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user