#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... 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: { // //First 4 bytes of data are the payload size. // int DataSize = 0; // DataSize = (unsigned int)Data[0]; // DataSize <<= 8; // DataSize |= (unsigned int)Data[1]; // DataSize <<= 8; // DataSize |= (unsigned int)Data[2]; // DataSize <<= 8; // DataSize |= (unsigned int)Data[3]; LoraInterfaceTransmitLoRaData(Data,DataSize); 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); }