как отобразить значения из буфера

Я пытаюсь отобразить значения в буфере.

Клиентский узел отправляет свою температуру и длину данных в качестве полезной нагрузки в буфере на сервер. Сервер должен получать и отображать те же значения, что и в.

У меня есть следующее:

    handler(void)
{
memset(buf, 0, MAX_PAYLOAD_LEN);//set payload
if(uip_newdata()) { //if new data is received from client
leds_on(LEDS_RED);
len = uip_datalen();
memcpy(buf, uip_appdata, len);
printf("buffer = %s", buf);
PRINTF("%u\n\r bytes from [", len);
PRINT6ADDR(&UIP_IP_BUF->srcipaddr);
PRINTF("]:%u\n\r", UIP_HTONS(UIP_UDP_BUF->srcport));
}

У меня такое ощущение, что строка memcpy или строка «printf» неверна, потому что другой printf работает.

Пожалуйста помоги
Json

0

Решение

Я не знаю, какие данные вы хотели бы извлечь из буфера, но если в начале он содержит ‘\ 0’, то printf («buffer =% s», buf); не будет показывать никаких данных.

Когда я хочу отладить буфер и знаю, что вывод не содержит символов ASCII, я использую следующий пример:

char buf[MAX_BUF_LEN];

do_fill_buffer_stuff(buf);
// Print the output of the buffer as Hexadecimal values:
for (int i = 0; i < MAX_BUF_LEN; i++) {
printf("%02x ", buf[i] & 0xff);
}
printf("\n");

Это даст вам ряд шестнадцатеричных значений, присутствующих в вашем буфере.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]