Доработки по тесту драйвера
This commit is contained in:
@@ -31,8 +31,10 @@ struct DriverStats {
|
||||
uint32_t droppedItems;
|
||||
uint32_t unexpectedResponses;
|
||||
uint64_t errorElapsedTicks;
|
||||
uint32_t errorTriggerTicks;
|
||||
uint32_t errorDelayTicks;
|
||||
uint32_t errorPulseTicks;
|
||||
bool errorTriggerValid;
|
||||
bool errorDelayValid;
|
||||
bool errorPulseValid;
|
||||
DriverEdgeStats turnOn;
|
||||
@@ -59,10 +61,13 @@ class DriverTest {
|
||||
const DriverStats &stats() const { return publishedStats_; }
|
||||
|
||||
private:
|
||||
enum class Source : uint8_t { TX, RX };
|
||||
enum class Source : uint8_t { TX, RX, WINDOW_END };
|
||||
struct RawEvent { uint32_t tick; bool rising; Source source; };
|
||||
struct TimedEvent { uint64_t tick; bool rising; Source source; };
|
||||
struct PendingTx { uint64_t tick; bool lightOn; };
|
||||
struct PendingTx {
|
||||
uint64_t tick;
|
||||
bool lightOn;
|
||||
};
|
||||
struct Response {
|
||||
bool active;
|
||||
bool associated;
|
||||
@@ -80,7 +85,7 @@ class DriverTest {
|
||||
static void analyzerTaskEntry(void *context);
|
||||
static void pollTaskEntry(void *context);
|
||||
void analyzerTaskLoop();
|
||||
void pollTaskLoop();
|
||||
void IRAM_ATTR pollTaskLoop();
|
||||
void processEvent(const TimedEvent &event);
|
||||
void processSettling(const TimedEvent &event);
|
||||
void processRunning(const TimedEvent &event);
|
||||
@@ -94,7 +99,7 @@ class DriverTest {
|
||||
uint64_t mergeGuardTicks() const;
|
||||
void acceptAcknowledgement(uint64_t delay, uint64_t width, bool lightOn);
|
||||
void fail(FailReason reason, uint64_t tick = 0, uint64_t delay = 0,
|
||||
uint64_t pulseWidth = 0);
|
||||
uint64_t pulseWidth = 0, uint64_t triggerAfterTx = 0);
|
||||
void publishStats();
|
||||
void rememberTrace(const TimedEvent &event);
|
||||
bool armCapture();
|
||||
@@ -130,10 +135,13 @@ class DriverTest {
|
||||
volatile bool captureReady_ = false;
|
||||
volatile bool core0WdtDisabled_ = false;
|
||||
uint32_t captureHz_ = 0;
|
||||
uint32_t captureFrequencyHz_ = 0;
|
||||
uint32_t capturePulseNs_ = 0;
|
||||
uint32_t pollPeriodCycles_ = 0;
|
||||
uint32_t pollWindowBeforeCycles_ = 0;
|
||||
uint32_t pollWindowAfterCycles_ = 0;
|
||||
bool pollTxStartRawHigh_ = false;
|
||||
bool captureTxLightOn_ = true;
|
||||
portMUX_TYPE pollMux_ = portMUX_INITIALIZER_UNLOCKED;
|
||||
|
||||
PendingTx pending_[MAX_PENDING] = {};
|
||||
@@ -141,21 +149,25 @@ class DriverTest {
|
||||
Response response_ = {};
|
||||
uint64_t ackStartMaxTicks_ = 0;
|
||||
uint64_t faultLongTicks_ = 0;
|
||||
uint64_t shortCircuitTicks_ = 0;
|
||||
uint64_t stuckTicks_ = 0;
|
||||
uint64_t testTicks_ = 0;
|
||||
uint64_t subsampleTicks_ = 0;
|
||||
uint64_t settlingTimeoutUs_ = 0;
|
||||
uint64_t settlingDeadlineUs_ = 0;
|
||||
uint64_t measurementStartTick_ = 0;
|
||||
uint64_t deadlineTick_ = 0;
|
||||
uint64_t pointOriginTick_ = 0;
|
||||
uint64_t lastEventTick_ = 0;
|
||||
uint64_t lastActiveTxTick_ = 0;
|
||||
uint8_t settleCycles_ = 0;
|
||||
uint8_t settledCycles_ = 0;
|
||||
uint8_t completedSubsamples_ = 0;
|
||||
bool rxActiveRawHigh_ = true;
|
||||
bool txPulseLightOn_ = true;
|
||||
bool rxActive_ = false;
|
||||
bool measurementClosed_ = false;
|
||||
bool havePointOrigin_ = false;
|
||||
bool haveLastActiveTx_ = false;
|
||||
bool haveRawTick_ = false;
|
||||
uint32_t lastRawTick_ = 0;
|
||||
uint64_t tickEpoch_ = 0;
|
||||
|
||||
Reference in New Issue
Block a user