prettylisten.c

来自「tinyos-2.0源代码!转载而已!要的尽管拿!」· C语言 代码 · 共 68 行

C
68
字号
#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("addr %u, length %u, group %u, type %u\n  ",		 spacket_header_addr_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 + =
减小字号Ctrl + -
显示快捷键?