67 lines
1.1 KiB
C

/*
* File:
* Author: JF
*
* Created on November 30, 2018, 7:33 PM
*/
#ifndef LORA_INTERFACE_H
#define LORA_INTERFACE_H
#include "define.h"
#define MAX_LORA_BUFFER_SIZE 2048
#define LORA_RX_INTERBYTE_TIMEOUT 200 //ms
int mLoraRxSMState;
char mLoraModuleBuffer[MAX_LORA_BUFFER_SIZE];
int mBufferIndex;
enum eLoraModuleModel
{
LORA_MODULE_E32_MODEL = 32,
LORA_MODULE_E220_MODEL = 220,
LORA_MODULE_MAX_MODEL
};
enum eLoraRxSMStates
{
LORA_RX_SM_STANBY_STATE,
LORA_RX_SM_RECEIVING_STATE,
LORA_RX_SM_MAX_STATE
};
enum eLoraRxSMEvents
{
LORA_RX_SM_NEW_DATA_EVENT,
LORA_RX_SM_TICK_EVENT,
LORA_RX_SM_MAX_EVENT
};
enum eLoraInterfaceStatusCodes
{
LORA_IF_RET_OK,
LORA_IF_RET_GENERAL_ERROR,
LORA_IF_RET_BUSY_CHANNEL,
LORA_IF_MAX_STATUS_CODE
};
#define LORA_MODULE_MODEL LORA_MODULE_E220_MODEL
int InitLoraInterface();
int LoraInterfaceRxData(char Data);
int LoraRxStateMachine(char Data, int Event);
void LoraResetRxStateMachine();
int LoraInterfaceTransmitLoRaData(char *Payload, unsigned int PayloadSize);
void LoraInterfaceTick();
#endif /* LORA_MODULE_H */