diff --git a/src/main/common/streambuf.c b/src/main/common/streambuf.c index c055ad61ae..976439ae81 100644 --- a/src/main/common/streambuf.c +++ b/src/main/common/streambuf.c @@ -20,6 +20,13 @@ #include "streambuf.h" +sbuf_t *sbufInit(sbuf_t *sbuf, uint8_t *ptr, uint8_t *end) +{ + sbuf->ptr = ptr; + sbuf->end = end; + return sbuf; +} + void sbufWriteU8(sbuf_t *dst, uint8_t val) { *dst->ptr++ = val; @@ -65,6 +72,11 @@ void sbufWriteString(sbuf_t *dst, const char *string) sbufWriteData(dst, string, strlen(string)); } +void sbufWriteStringWithZeroTerminator(sbuf_t *dst, const char *string) +{ + sbufWriteData(dst, string, strlen(string) + 1); +} + uint8_t sbufReadU8(sbuf_t *src) { return *src->ptr++; diff --git a/src/main/common/streambuf.h b/src/main/common/streambuf.h index dad54adddb..790423350e 100644 --- a/src/main/common/streambuf.h +++ b/src/main/common/streambuf.h @@ -27,6 +27,7 @@ typedef struct sbuf_s { uint8_t *end; } sbuf_t; +sbuf_t *sbufInit(sbuf_t *sbuf, uint8_t *ptr, uint8_t *end); void sbufWriteU8(sbuf_t *dst, uint8_t val); void sbufWriteU16(sbuf_t *dst, uint16_t val); void sbufWriteU32(sbuf_t *dst, uint32_t val); @@ -34,6 +35,7 @@ void sbufWriteU16BigEndian(sbuf_t *dst, uint16_t val); void sbufWriteU32BigEndian(sbuf_t *dst, uint32_t val); void sbufWriteData(sbuf_t *dst, const void *data, int len); void sbufWriteString(sbuf_t *dst, const char *string); +void sbufWriteStringWithZeroTerminator(sbuf_t *dst, const char *string); uint8_t sbufReadU8(sbuf_t *src); uint16_t sbufReadU16(sbuf_t *src); diff --git a/src/main/config/parameter_group.c b/src/main/config/parameter_group.c index a61b454820..30bf48430a 100644 --- a/src/main/config/parameter_group.c +++ b/src/main/config/parameter_group.c @@ -39,7 +39,7 @@ static uint8_t *pgOffset(const pgRegistry_t* reg) return reg->address; } -static void pgResetInstance(const pgRegistry_t *reg, uint8_t *base) +void pgResetInstance(const pgRegistry_t *reg, uint8_t *base) { const uint16_t regSize = pgSize(reg); diff --git a/src/main/config/parameter_group.h b/src/main/config/parameter_group.h index 16ab6c52fe..f64493ee87 100644 --- a/src/main/config/parameter_group.h +++ b/src/main/config/parameter_group.h @@ -187,5 +187,6 @@ const pgRegistry_t* pgFind(pgn_t pgn); void pgLoad(const pgRegistry_t* reg, const void *from, int size, int version); int pgStore(const pgRegistry_t* reg, void *to, int size); void pgResetAll(); +void pgResetInstance(const pgRegistry_t *reg, uint8_t *base); bool pgResetCopy(void *copy, pgn_t pgn); void pgReset(const pgRegistry_t* reg); diff --git a/src/main/fc/settings.h b/src/main/fc/settings.h index 6dcf5d37f0..2b395105bc 100644 --- a/src/main/fc/settings.h +++ b/src/main/fc/settings.h @@ -119,7 +119,7 @@ typedef union { cliArrayLengthConfig_t array; } cliValueConfig_t; -typedef struct { +typedef struct clivalue_s { const char *name; const uint8_t type; // see cliValueFlag_e const cliValueConfig_t config;