Глобальная переделка. тест сделан по длине импульса и заданной частоте шим, а не меандру

This commit is contained in:
2026-08-12 18:10:05 +03:00
parent 1db89fca79
commit a17e8962b4
19 changed files with 958 additions and 642 deletions

View File

@@ -2,7 +2,7 @@
#include "Core.h"
constexpr uint16_t PROTOCOL_MAGIC = 0x4F43;
constexpr uint8_t PROTOCOL_VERSION = 8;
constexpr uint8_t PROTOCOL_VERSION = 11;
enum class MessageType : uint8_t {
DISCOVER, DISCOVER_ACK, PREPARE, READY, START_STAGE, RESULT, ACK, ABORT,
@@ -21,8 +21,9 @@ struct ProtocolPacket {
uint16_t stageCount;
uint16_t sequence;
uint32_t requestedHz;
uint32_t requestedPulseNs;
uint32_t actualHz;
uint16_t actualDutyX100;
uint32_t actualPulseNs;
uint32_t testTimeMs;
uint16_t accuracyX100;
uint8_t settleCycles;
@@ -31,14 +32,14 @@ struct ProtocolPacket {
uint8_t reason;
uint32_t periods;
uint32_t measuredHzX10;
uint16_t measuredDutyX10;
uint32_t measuredPulseNs;
uint32_t minPeriodTicks;
uint32_t maxPeriodTicks;
uint16_t crc;
};
#pragma pack(pop)
static_assert(sizeof(ProtocolPacket) == 54, "Protocol layout changed");
static_assert(sizeof(ProtocolPacket) == 62, "Protocol layout changed");
uint16_t packetCrc(const ProtocolPacket &packet);
void finalizePacket(ProtocolPacket &packet);