19 int16_t len = vsnprintf(NULL, 0, str, ap);
22 if (len < 0)
return len;
25 if (
sizeof buffer >= len + 1UL) {
27 len = vsprintf(buffer, str, ap);
32 char* p_buf = (
char*)malloc(len + 1);
33 if (!p_buf)
return -1;
35 len = vsprintf(p_buf, str, ap);
45#define cs_write_test(...)
53 return (opt ?
static_cast<long int>(opt.value()) : -1);
62#define TEST_PUSH_DATA(form, self, expressionnamestr, expr) \
63 cs_write_test(form, self, __PRETTY_FUNCTION__, expressionnamestr, expr)
68#if CS_UART_BINARY_PROTOCOL_ENABLED == 0
69#define TEST_PUSH_EXPR_S(self, expressionnamestr, expr) \
70 TEST_PUSH_DATA("%x@%s@%s@%s\r\n", self, expressionnamestr, expr)
71#define TEST_PUSH_EXPR_D(self, expressionnamestr, expr) \
72 TEST_PUSH_DATA("%x@%s@%s@%d\r\n", self, expressionnamestr, expr)
73#define TEST_PUSH_EXPR_X(self, expressionnamestr, expr) \
74 TEST_PUSH_DATA("%x@%s@%s@%x\r\n", self, expressionnamestr, expr)
76#define TEST_PUSH_EXPR_S(self, expressionnamestr, expr) \
77 TEST_PUSH_DATA("%x@%s@%s@%s", self, expressionnamestr, expr)
78#define TEST_PUSH_EXPR_D(self, expressionnamestr, expr) \
79 TEST_PUSH_DATA("%x@%s@%s@%d", self, expressionnamestr, expr)
80#define TEST_PUSH_EXPR_X(self, expressionnamestr, expr) \
81 TEST_PUSH_DATA("%x@%s@%s@%x", self, expressionnamestr, expr)
85#define TEST_PUSH_EXPR_B(self, expressionnamestr, expr) \
86 TEST_PUSH_EXPR_S(self, expressionnamestr, (expr ? "True" : "False"))
89#define TEST_PUSH_EXPR_O(self, expressionnamestr, expr) \
90 TEST_PUSH_EXPR_D(self, expressionnamestr, OptionalUnsignedToInt(expr))
95#define TEST_PUSH_S(self, variablename) TEST_PUSH_EXPR_S(self, #variablename, self->variablename)
96#define TEST_PUSH_D(self, variablename) TEST_PUSH_EXPR_D(self, #variablename, self->variablename)
97#define TEST_PUSH_X(self, variablename) TEST_PUSH_EXPR_X(self, #variablename, self->variablename)
98#define TEST_PUSH_B(self, variablename) TEST_PUSH_EXPR_B(self, #variablename, self->variablename)
99#define TEST_PUSH_O(self, variablename) TEST_PUSH_EXPR_O(self, #variablename, self->variablename)
106#if CS_UART_BINARY_PROTOCOL_ENABLED == 0
107#define TEST_PUSH_STATIC_S(context, expressionnamestr, expr) \
108 TEST_PUSH_DATA("%s@%s@%s@%s\r\n", context, expressionnamestr, expr)
109#define TEST_PUSH_STATIC_D(context, expressionnamestr, expr) \
110 TEST_PUSH_DATA("%s@%s@%s@%d\r\n", context, expressionnamestr, expr)
111#define TEST_PUSH_STATIC_X(context, expressionnamestr, expr) \
112 TEST_PUSH_DATA("%s@%s@%s@%x\r\n", context, expressionnamestr, expr)
113#define TEST_PUSH_STATIC_B(context, expressionnamestr, expr) \
114 TEST_PUSH_DATA("%s@%s@%s@%s\r\n", context, expressionnamestr, (expr ? "True" : "False"))
116#define TEST_PUSH_STATIC_S(context, expressionnamestr, expr) \
117 TEST_PUSH_DATA("%s@%s@%s@%s", context, expressionnamestr, expr)
118#define TEST_PUSH_STATIC_D(context, expressionnamestr, expr) \
119 TEST_PUSH_DATA("%s@%s@%s@%d", context, expressionnamestr, expr)
120#define TEST_PUSH_STATIC_X(context, expressionnamestr, expr) \
121 TEST_PUSH_DATA("%s@%s@%s@%x", context, expressionnamestr, expr)
122#define TEST_PUSH_STATIC_B(context, expressionnamestr, expr) \
123 TEST_PUSH_DATA("%s@%s@%s@%s", context, expressionnamestr, (expr ? "True" : "False"))
ret_code_t writeMsg(UartOpcodeTx opCode, uint8_t *data, uint16_t size, UartProtocol::Encrypt encrypt=UartProtocol::ENCRYPT_ACCORDING_TO_TYPE)
Write a msg over UART.
static UartHandler & getInstance()
Gets a static singleton (no dynamic memory allocation) of this class.
Definition: cs_UartHandler.h:31
#define cs_write_test(...)
Definition: cs_Test.h:45
long int OptionalUnsignedToInt(std::optional< U > opt)
Cast optional into integer for easy printing.
Definition: cs_Test.h:52
@ UART_OPCODE_TX_FIRMWARESTATE
Definition: cs_UartOpcodes.h:143