2023-03-26 15:19:11 -04:00

110 lines
2.1 KiB
C

/*
* File:
* Author: JF
*
* Created on November 30, 2018, 7:33 PM
*/
#ifndef E220_MODULE_H
#define E220_MODULE_H
#include "define.h"
#define E220_CONFIG_SIZE 6 //Nb of bytes composing the configuration of the module
#define E220_UART_RATE_MASK 0x07
enum eE220UartRates
{
E220_UART_1200 = 0,
E220_UART_2400,
E220_UART_4800,
E220_UART_9600,
E220_UART_19200,
E220_UART_38400,
E220_UART_57600,
E220_UART_115200
};
#define E220_UART_PARITY_MASK 0x03
enum eE220ParityBit
{
E220_UART_8N1=0,
E220_UART_8O1,
E220_UART_8E1,
E220_UART_8N1_bis
};
#define E220_AIR_RATE_MASK 0x07
enum e220AirDataRates
{
E220_AIR_RATE_24K = 0,
E220_AIR_RATE_24K_1,
E220_AIR_RATE_24K_2,
E220_AIR_RATE_48K,
E220_AIR_RATE_96K,
E220_AIR_RATE_192K,
E220_AIR_RATE_384K,
E220_AIR_RATE_625K
};
#define E220_PACKET_SIZE_MASK 0x03
enum e220PacketSizes
{
E220_PACKET_200,
E220_PACKET_128,
E220_PACKET_64,
E220_PACKET_32
};
#define E220_TX_POWER_MASK 0x03
enum e220TransmitPower
{
E220_TX_PWR_30,
E220_TX_PWR_27,
E220_TX_PWR_24,
E220_TX_PWR_21
};
#define E220_WOR_CYCLE_MASK 0x07
enum e220WORCycles
{
E220_WOR_500MS,
E220_WOR_1000MS,
E220_WOR_1500MS,
E220_WOR_2000MS,
E220_WOR_2500MS,
E220_WOR_3000MS,
E220_WOR_3500MS,
E220_WOR_4000MS
};
int InitLoraModule();
int SetLoraModuleTxMode();
int SetLoraModuleConfigMode();
int ReadLoraModuleConfig();
int AnalyzeLoraModuleConfigData(char *Data, int size);
int ReadLoraModuleRSSI();
int AnalyzeLoraModuleRSSI(char *Data, int size);
unsigned short mModuleInternalAddress;
unsigned char mModuleUARTParity;
unsigned char mModuleUARTRate;
unsigned char mModuleAirRate;
unsigned char mModuleSubPacket;
unsigned char mModuleRSSIEnabled;
unsigned char mModuleTxPower;
unsigned char mModuleInternalChannel;
unsigned char mModuleRSSIByteEnabled;
unsigned char mModuleTxMethod;
unsigned char mModuleLBTEnabled;
unsigned char mModuleWORCycle;
unsigned char mModuleAmbientRSSI;
unsigned char mModuleLastRxRSSI;
#endif /* E220_MODULE_H */