crashtest-r0ket/firmware/funk/mesh.h

45 lines
971 B
C

#ifndef __MESH_H_
#define __MESH_H_
#define MESHBUFSIZE 10
#define MESHPKTSIZE 32
#define M_SENDINT 500
#define M_RECVINT 1000
#define M_RECVTIM 100
#define MESH_CHANNEL 83
#define MESH_MAC "ORBIT"
#define MO_TYPE(x) (x[0])
#define MO_TYPE_set(x,y) (x[0]=y)
#define MO_GEN(x) (x[1])
#define MO_GEN_set(x,y) (x[1]=y)
#define MO_TIME(x) (uint8ptouint32(x+2))
#define MO_TIME_set(x,y) (uint32touint8p(y,x+2))
#define MO_BODY(x) (x+6)
typedef struct {
uint8_t pkt[32];
char flags;
} MPKT;
#define MF_FREE (0)
#define MF_USED (1<<0)
#define MF_LOCK (1<<1)
extern char meshgen; // Generation
extern char meshincctr; // Time checker
extern char meshnice; // Time checker
extern char meshmsg; // Is there something interesting?
extern MPKT meshbuffer[MESHBUFSIZE];
void initMesh(void);
void mesh_cleanup(void);
void mesh_recvloop(void);
void mesh_sendloop(void);
void mesh_systick(void);
MPKT * meshGetMessage(uint8_t type);
#endif