Эхо LWIP: невозможно прочитать данные в Hercules в правильном формате - PullRequest
0 голосов
/ 09 октября 2018

Для аппаратной реализации я пытаюсь прочитать непрерывные данные DestinationBuffer в Hercules, используя функцию itoa.Я прочитал данные в Геркулесе с некоторыми символами барахла.Как очистить этот мусор? введите описание ссылки здесь

Фактический поток данных должен быть Данные: 1050842703, Данные: 1050842704, Данные: 1050842705, Данные: 1050842706, Данные: 1050842707, Данные: 1050842708, Данные: 1050842709, Данные: 1050842710, данные: 1050842711, данные: 1050842712,

, но я могу читать данные в Геркулесе, но без запятой.105084270310508427041050842705105084270610508427071050842708 Как разбить данные с помощью запятой.

 char *itoa(int val, int base)       
 {
  int i = 30;
  for(; val && i ; --i, val /= base)
  buf[i] = "0123456789abcdef"[val % base];
 return &buf[i+1];
 }

 err_t recv_callback(void *arg, struct tcp_pcb *tpcb,
                           struct pbuf *p, err_t err)
{
int i,j,Status;
Status=aurora_rx_main();         ///FUNCTION CALL
for(i=0;i<50;i++)
 {
    xil_printf(" Data:%d,",DestinationBuffer[i]);
 }

 int base=10; // here 10 means decimal
 char *result={0};
 if (!p) 
   {
    tcp_close(tpcb);
    tcp_recv(tpcb, NULL);
    return ERR_OK;
 }

/* indicate that the packet has been received */
tcp_recved(tpcb, p->len);
if (tcp_sndbuf(tpcb) > 50) 
     {
     for (j=0;j<=50;j++)
        {
        result= itoa(DestinationBuffer[j],base);
        err = tcp_write(tpcb,",",10,1);    // for itoa 
        err = tcp_write(tpcb,result,10,1);
        }
    } else
    xil_printf("no space in tcp_sndbuf\n\r");

/* free the received pbuf */
 pbuf_free(p);

 return ERR_OK;
} 

[Hercules Console][1]
...