📄 prettylisten.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include "sfsource.h"
#include "serialpacket.h"
#include "serialprotocol.h"
void hexprint(uint8_t *packet, int len)
{
int i;
for (i = 0; i < len; i++)
printf("%02x ", packet[i]);
}
int main(int argc, char **argv)
{
int fd;
if (argc != 3)
{
fprintf(stderr, "Usage: %s <host> <port> - dump packets from a serial forwarder\n", argv[0]);
exit(2);
}
fd = open_sf_source(argv[1], atoi(argv[2]));
if (fd < 0)
{
fprintf(stderr, "Couldn't open serial forwarder at %s:%s\n",
argv[1], argv[2]);
exit(1);
}
for (;;)
{
int len, i;
uint8_t *packet = read_sf_packet(fd, &len);
if (!packet)
exit(0);
if (len >= 1 + SPACKET_SIZE &&
packet[0] == SERIAL_TOS_SERIAL_ACTIVE_MESSAGE_ID)
{
tmsg_t *msg = new_tmsg(packet + 1, len - 1);
if (!msg)
exit(0);
printf("dest %u, src %u, length %u, group %u, type %u\n ",
spacket_header_dest_get(msg),
spacket_header_src_get(msg),
spacket_header_length_get(msg),
spacket_header_group_get(msg),
spacket_header_type_get(msg));
hexprint((uint8_t *)tmsg_data(msg) + spacket_data_offset(0),
tmsg_length(msg) - spacket_data_offset(0));
free(msg);
}
else
{
printf("non-AM packet: ");
hexprint(packet, len);
}
putchar('\n');
fflush(stdout);
free((void *)packet);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -