⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frame.h

📁 主要用于无线传感网络的编写的书籍.对于初学者有着很大的用处
💻 H
字号:
#ifndef __FRAME__#define __FRAME__#include "../../types/types.h"/*************************************************************************** *          | ..o0 Using frame.c 0o.. | *          --------------------------- * readFrame will read one frame from the serial_port_fd and return after it *   finishes.  Returns SUCCESS or FAILURE. * * handleFrame will check the frame types and crc against that found in the  *   tinyos java tool definitions.  Returns DROPPACKET or GOODPACKET. * * readGoodFrame will read frames with readFrame and check them with handleFrame *   until it gets a valid frame.  Returns SUCCESS or FAILURE. * ***************************************************************************/// the following definitions are made to match those in tools/java/net/tinyos/packet/Packetizer.java// #define ACK_TIMEOUT 1000 // in ms, not currently used#define SYNC_BYTE   0x7E#define ESCAPE_BYTE 0x7D#define MTU         36  // NOTE: does NOT count the "type" field in the frame// possible types (from Packetizer.java)#define P_ACK           64#define P_PACKET_ACK    65#define P_PACKET_NO_ACK 66#define P_UNKNOWN       255#define MINIMUM_FRAME_SIZE 4 // in bytes#define GOODFRAME_MAXTRIES 10// handleFrame possible actions#define DROPPACKET 0#define GOODPACKET 1#define CRCGOOD 1#define CRCBAD  0#ifndef SUCCESS#define SUCCESS 1#endif #ifndef FAILURE#define FAILURE 0#endif#ifndef TRUE#define TRUE 1#endif#ifndef FALSE#define FALSE 0#endiftypedef struct {  uint8_t type;  uint8_t data[MTU];  uint16_t crc;  int data_size; // in bytes} __attribute__((packed)) frame;// print a frame to stdoutvoid printFrame(int dbg_type, int dbg_level, frame *f);// read a frame from serial_port_fd, return SUCCESS or FAILUREint readFrame(int serial_port_fd, frame *f);// check the frame for a valid CRC, returns DROPPACKET or GOODPACKETint handleFrame(frame *f);// reads frames until handleFrame returns GOODPACKET.  returns SUCCESS or FAILUREint readGoodFrame(int serial_port_fd, frame *f);// sends frame over serial portint writeFrame(int serial_port_fd, uint8_t *data, int data_size);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -