LoraInterface/LoraInterface.X/Source/NetworkInterface.c
2022-12-20 13:05:34 -05:00

94 lines
2.4 KiB
C

#include "NetworkInterface.h"
#include "ProtocolDefs.h"
#include "NetworkProtocol.h"
#include "InternalUart.h"
#include "define.h"
#include "BoardCfg.h"
#include "Uart.h"
#include "SPI_Flash.h"
#include "FlashMapping.h"
#include "versionbuild.h"
#include "WiFiCtrl.h"
#include "LoraInterface.h"
//
//enum eWiFiState
//{
// WIFI_MODULE_OFF_STATE = 0,
// WIFI_CONNECTED_STATE,
// WIFI_DISCONNECTED_STATE,
// WIFI_INIT_ERROR_STATE,
// WIFI_UNKNOWN_STATE
//};
unsigned char mLoraPreamble[3]={0x00,LORA_MASTER_ADDRESS,LORA_CHANNEL};
static const char mFirmwareVersion[15] = VERSIONNUMBER;
unsigned int mTotalMasterNbRequests = 0;
void ExecuteMasterCommand(int Command, unsigned char *Data, int DataSize)
{
//Whatever was the command, we are online...
LORA_MODULE_RX_LED_PIN = LED_OFF;
// KickLoraWatchdog();
// printf("EXEC\n\n");
// ChaletPowerRelayKickTimer();
mTotalMasterNbRequests++;
switch(Command)
{
case LORA_IF_GET_STATUS_REQUEST:
{
char ModuleModel = LORA_MODULE_MODEL;
SendNetworkCommand(LORA_IF_GET_STATUS_RESPONSE,&ModuleModel,1);
break;
}
case LORA_IF_SEND_FRAME_REQUEST:
{
break;
}
case LORA_IF_GET_MODULE_CONFIG_REQUEST:
{
break;
}
case LORA_IF_GET_RSSI_REQUEST:
{
break;
}
case LORA_IF_SET_MODULE_CONFIG_REQUEST:
{
break;
}
case LORA_IF_SET_MODULE_CONFIG_RESPONSE:
case LORA_IF_GET_RSSI_RESPONSE:
case LORA_IF_GET_MODULE_CONFIG_RESPONSE:
case LORA_IF_NEW_FRAME_RESPONSE:
case LORA_IF_SEND_FRAME_RESPONSE:
case LORA_IF_GET_STATUS_RESPONSE:
{
break;
}
}
}
void SendNetworkCommand(int Command, unsigned char *Data, unsigned int DataSize)
{
unsigned char *Payload;
unsigned int PayloadSize;
Payload = ProtocolGetFrame(ID_MASTER,MASTER_ADDRESS,ID_LORA_INTERFACE,Command,Data,DataSize,0,&PayloadSize);
UartTransmitData(NETWORK_UART_PORT,Payload,PayloadSize);
}
void SendNetworkCommandBlocking(int Command, unsigned char *Data, unsigned int DataSize)
{
unsigned char *Payload;
unsigned int PayloadSize;
//unsigned char DestDevice,unsigned char DestAddress, unsigned char SenderDevice, unsigned char Cmd, unsigned char *Data,unsigned int Size,unsigned char Flags, int *FrameSize)
Payload = ProtocolGetFrame(ID_MASTER,MASTER_ADDRESS,ID_LORA_INTERFACE,Command,Data,DataSize,0,&PayloadSize);
SendInternalUartDataBlocking(Payload,PayloadSize,NETWORK_UART_PORT);
}