funkbridge/rfm12.h
2014-12-26 16:20:44 +01:00

40 lines
1.0 KiB
C

#ifndef __RFM12_H__
#define __RFM12_H__
/* ************************************************************************ */
#define RFM12_PKT_SYNC_SIZE 2
#define RFM12_PKT_HEADER_SIZE 4
#define RFM12_PKT_MAX_DATA_SIZE 42
struct rfm12_packet
{
/* tx-only sync bytes */
uint8_t sync[RFM12_PKT_SYNC_SIZE];
/* Header */
uint8_t dest_address;
uint8_t source_address;
uint8_t data_length;
uint8_t header_checksum;
/* Data */
uint8_t data[RFM12_PKT_MAX_DATA_SIZE];
uint16_t data_crc;
};
/* ************************************************************************ */
void rfm12_init (uint8_t own_address);
void rfm12_tick (uint8_t channel_free_time);
struct rfm12_packet * rfm12_get_txpkt (void);
uint8_t rfm12_start_tx (void);
struct rfm12_packet * rfm12_get_rxpkt (void);
void rfm12_clear_rx (void);
/* ************************************************************************ */
#endif /* __RFM12_H__ */