Compare commits
5
Commits
773adac6f4
..
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
24d8155ca2 | ||
|
|
bbfc4e10e2 | ||
|
|
13655e40f4 | ||
|
|
647f38c4ca | ||
|
|
06ab16b771 |
@@ -10,10 +10,12 @@ bool mCAStateReceived;
|
||||
char mMasterData[100];
|
||||
int mMasterDataSize;
|
||||
char mInputString[100];
|
||||
bool mIsDataPending;
|
||||
|
||||
void InitATCmdInterpreter()
|
||||
{
|
||||
mCAStateReceived = false;
|
||||
mIsDataPending = false;
|
||||
}
|
||||
|
||||
int AnalyzeNewATString(char* Str, int StrLen, int CurCmd)
|
||||
@@ -77,7 +79,7 @@ int AnalyzeNewATString(char* Str, int StrLen, int CurCmd)
|
||||
if(strncmp("+CAOPEN:",mInputString,strlen("+CAOPEN:")) == 0)
|
||||
{
|
||||
int result = atoi(&mInputString[11]);
|
||||
if(StrLen == 12 && mInputString[11] == '0') //The connection on port 0 is established
|
||||
if(StrLen >= 12 && mInputString[11] == '0') //The connection on port 0 is established
|
||||
{
|
||||
LTEModuleMasterConnectionStatus(LTE_MODULE_MASTER_CONNECTED);
|
||||
}
|
||||
@@ -147,10 +149,11 @@ int AnalyzeNewATString(char* Str, int StrLen, int CurCmd)
|
||||
{
|
||||
if(strncmp("+CARECV:",mInputString,strlen("+CARECV:")) == 0) //+CARECV: 4,test
|
||||
{
|
||||
// printf("ATCmdInterpreter : Received +CARECV, storing data in buffer, waiting for OK\n\r");
|
||||
memset(mMasterData,0,100);
|
||||
mMasterDataSize = 0;
|
||||
char *token;
|
||||
// sscanf("%d,%s",&mInputString[9],&DataSize,Data);
|
||||
// sscanf("%d,%s",&mInputString[9],&DataSize,Data);
|
||||
token = strtok(&mInputString[9],",");
|
||||
if(token != NULL)
|
||||
{
|
||||
@@ -168,9 +171,9 @@ int AnalyzeNewATString(char* Str, int StrLen, int CurCmd)
|
||||
}
|
||||
if(strncmp(mInputString,"OK",2) == 0) //The command was executed
|
||||
{
|
||||
|
||||
// printf("ATCmdInterpreter : Received OK, calling LTEModuleDataReceived\n\r");
|
||||
LTEModuleDataReceived(mMasterData,mMasterDataSize);
|
||||
// LTECmdResponseReceived(CurCmd,LTE_MODULE_RESULT_OK);
|
||||
// LTECmdResponseReceived(CurCmd,LTE_MODULE_RESULT_OK);
|
||||
}
|
||||
else if(strncmp(mInputString,"ERROR",5) == 0) //The command was not executed
|
||||
{
|
||||
@@ -183,10 +186,25 @@ int AnalyzeNewATString(char* Str, int StrLen, int CurCmd)
|
||||
if(strncmp(mInputString,"OK",2) == 0) //The command was executed
|
||||
{
|
||||
LTECmdResponseReceived(CurCmd,LTE_MODULE_RESULT_OK);
|
||||
if(mIsDataPending == true)
|
||||
{
|
||||
mIsDataPending = false;
|
||||
LTEModuleNewDataReady();
|
||||
}
|
||||
}
|
||||
else if(strncmp(mInputString,"ERROR",5) == 0) //The command was not executed
|
||||
{
|
||||
LTECmdResponseReceived(CurCmd,LTE_MODULE_RESULT_ERROR);
|
||||
if(mIsDataPending == true)
|
||||
{
|
||||
mIsDataPending = false;
|
||||
LTEModuleNewDataReady();
|
||||
}
|
||||
}
|
||||
if(strncmp("+CADATAIND:",mInputString,strlen("+CADATAIND:")) == 0)
|
||||
{
|
||||
// We sometimes receive data while sending...
|
||||
mIsDataPending = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -197,11 +215,12 @@ int AnalyzeNewATString(char* Str, int StrLen, int CurCmd)
|
||||
{
|
||||
if(strncmp("+CADATAIND:",mInputString,strlen("+CADATAIND:")) == 0)
|
||||
{
|
||||
// printf("ATCmdInterpreter : Received +CADATAIND, calling NewDataReady\n\r");
|
||||
LTEModuleNewDataReady();
|
||||
}
|
||||
if(strncmp("+APP PDP:",mInputString,strlen("+APP PDP:")) == 0)
|
||||
{
|
||||
// LTEModuleNewDataReady();
|
||||
// LTEModuleNewDataReady();
|
||||
}
|
||||
if(strncmp("+CASTATE:",mInputString,strlen("+CASTATE:")) == 0) //+CASTATE: 0,0
|
||||
{
|
||||
@@ -214,6 +233,12 @@ int AnalyzeNewATString(char* Str, int StrLen, int CurCmd)
|
||||
LTEModuleMasterConnectionStatus(LTE_MODULE_MASTER_DISCONNECTED);
|
||||
}
|
||||
}
|
||||
if(strncmp("+CAURC:",mInputString,strlen("+CAURC:")) == 0)
|
||||
{
|
||||
// printf("ATCmdInterpreter : Received +CADATAIND, calling NewDataReady\n\r");
|
||||
//LTEModuleReset();
|
||||
LTEModuleMasterConnectionStatus(LTE_MODULE_MASTER_DISCONNECTED);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include "ChaletPowerRelay.h"
|
||||
#include "BoardCfg.h"
|
||||
#include "timer.h"
|
||||
#include "BatteryMonitor.h"
|
||||
|
||||
#define PIN_ACTIVE 1
|
||||
#define PIN_INACTIVE 0
|
||||
@@ -15,6 +16,7 @@ void InitChaletPowerRelay()
|
||||
POWER_RELAY_OFF_PIN = PIN_INACTIVE;
|
||||
PowerRelayState = CHALET_POWER_RELAY_UNKNOWN_STATE;
|
||||
TimerStop(CHALET_POWER_RELAY_COIL_TIMER);
|
||||
TimerStop(CHALET_POWER_RELAY_LVD_TIMER);
|
||||
}
|
||||
|
||||
void ChaletPowerRelayTick()
|
||||
@@ -36,7 +38,7 @@ void ChaletPowerRelayTick()
|
||||
PowerRelayState = CHALET_POWER_RELAY_OFF_STATE;
|
||||
}
|
||||
|
||||
if(IsTimerRunning(CHALET_POWER_RELAY_COIL_TIMER) == true)
|
||||
if((CHALET_POWER_RELAY_COIL_TIMER) == true)
|
||||
{
|
||||
if(IsTimerExpired(CHALET_POWER_RELAY_COIL_TIMER))
|
||||
{
|
||||
@@ -45,6 +47,36 @@ void ChaletPowerRelayTick()
|
||||
TimerStop(CHALET_POWER_RELAY_COIL_TIMER);
|
||||
}
|
||||
}
|
||||
if(IsTimerRunning(CHALET_POWER_RELAY_LVD_TIMER) == true)
|
||||
{
|
||||
if(PowerRelayState != CHALET_POWER_RELAY_ON_STATE)
|
||||
{
|
||||
TimerStop(CHALET_POWER_RELAY_LVD_TIMER);
|
||||
}
|
||||
else if(IsTimerExpired(CHALET_POWER_RELAY_LVD_TIMER))
|
||||
{
|
||||
//Check if it was just a glitch
|
||||
if(GetBatteryVoltage(0) >= POWER_RELAY_LVD_VOLTAGE_TRESHOLD)
|
||||
{
|
||||
TimerStop(CHALET_POWER_RELAY_LVD_TIMER);
|
||||
}
|
||||
else
|
||||
{
|
||||
TimerStop(CHALET_POWER_RELAY_LVD_TIMER);
|
||||
ChaletPowerRelayTurnOff();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//LVD: if battery voltage is too low, turn off the power relay
|
||||
if(PowerRelayState == CHALET_POWER_RELAY_ON_STATE && GetBatteryVoltage(0) < POWER_RELAY_LVD_VOLTAGE_TRESHOLD && GetBatteryVoltage(0) != 0.0)
|
||||
{
|
||||
//ChaletPowerRelayTurnOff();
|
||||
TimerStart(CHALET_POWER_RELAY_LVD_TIMER,CHALET_POWER_RELAY_LVD_DEBOUNCE_TIMEOUT);
|
||||
}
|
||||
}
|
||||
|
||||
if(IsTimerExpired(CHALET_POWER_RELAY_AUTOTURNOFF_TIMER))
|
||||
{
|
||||
@@ -59,6 +91,11 @@ void ChaletPowerRelayKickTimer()
|
||||
|
||||
bool ChaletPowerRelayTurnOn()
|
||||
{
|
||||
//LVD: if battery voltage is too low, turn off the power relay
|
||||
if(GetBatteryVoltage(0) < POWER_RELAY_LVD_VOLTAGE_TRESHOLD)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
POWER_RELAY_ON_PIN = PIN_ACTIVE;
|
||||
TimerStart(CHALET_POWER_RELAY_COIL_TIMER,CHALET_POWER_RELAY_COIL_TIMEOUT);
|
||||
// PowerRelayState = CHALET_POWER_RELAY_ON_STATE;
|
||||
@@ -69,6 +106,7 @@ bool ChaletPowerRelayTurnOff()
|
||||
{
|
||||
POWER_RELAY_OFF_PIN = PIN_ACTIVE;
|
||||
TimerStart(CHALET_POWER_RELAY_COIL_TIMER,CHALET_POWER_RELAY_COIL_TIMEOUT);
|
||||
TimerStop(CHALET_POWER_RELAY_LVD_TIMER);
|
||||
// PowerRelayState = CHALET_POWER_RELAY_OFF_STATE;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
#include "define.h"
|
||||
|
||||
#define CHALET_OFFLINE_POWER_RELAY_RESET_TIMEOUT 43200 //43,200 = 12 hours in seconds
|
||||
#define POWER_RELAY_LVD_VOLTAGE_TRESHOLD (float)12.00
|
||||
#define CHALET_POWER_RELAY_LVD_DEBOUNCE_TIMEOUT 1000 //ms
|
||||
|
||||
enum eChaletPowerRelayState
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#define LORAWATCHDOG_H
|
||||
#include "define.h"
|
||||
|
||||
#define LORA_WATCHDOG_MODULE_RESET_TIMEOUT 3600000 //1h Time without comm. before we reset the LoRa module
|
||||
#define LORA_WATCHDOG_MODULE_RESET_TIMEOUT 900000 // 15 minutes //3600000 //1h Time without comm. before we reset the LoRa module
|
||||
#define LORA_WATCHDOG_REBOOT_TIMEOUT 1200000 //20 minutes Time to reboot after we reset the LoRa module
|
||||
#define LORA_WATCHDOG_MODULE_OFF_TIMEOUT 4000 //Keep the LoRa module off for 2 seconds when reseting it.
|
||||
|
||||
|
||||
@@ -67,7 +67,11 @@ enum DEVICES_IDS
|
||||
ID_AVRECEIVER_INTERFACE,
|
||||
ID_CHALET_INTERFACE,
|
||||
ID_CHALET_DEVICE,
|
||||
ID_BOOTLOADER_VIRTUAL,
|
||||
ID_ISPINDEL_INTERFACE,
|
||||
ID_LORA_INTERFACE_DEVICE,
|
||||
ID_LORA_INTERFACE_INTERFACE,
|
||||
ID_AVRECEIVER_CONSOLE_INTERFACE,
|
||||
ID_AUDIO_CONSOLE_INTERFACE,
|
||||
ID_NB_DEVICE_ID
|
||||
|
||||
};
|
||||
@@ -292,7 +296,7 @@ enum CHALET_CMDS
|
||||
CHALET_DO_HARAKIRI_CONFIRMATION,
|
||||
CHALET_REBOOT_CPU_REQUEST,
|
||||
CHALET_REBOOT_CPU_RESPONSE,
|
||||
CHALET_GET_STORED_WIFI_SETTINGS_REQUEST,
|
||||
CHALET_GET_STORED_WIFI_SETTINGS_REQUEST,//14
|
||||
CHALET_GET_STORED_WIFI_SETTINGS_RESPONSE,
|
||||
CHALET_SET_STORED_WIFI_SETTINGS_REQUEST,
|
||||
CHALET_SET_STORED_WIFI_SETTINGS_RESPONSE,
|
||||
|
||||
@@ -34,15 +34,18 @@ bool mMasterConnected;
|
||||
bool mMasterSocketError;
|
||||
bool mAPNConnected;
|
||||
|
||||
void InitLTEModule()
|
||||
void InitLTEModule(bool FunctionnalReset)
|
||||
{
|
||||
mLTEModuleSMState = LTE_MODULE_SM_INIT_STATE;
|
||||
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_INIT_STATE;
|
||||
mLTEModuleOperationSMSubState = LTE_MODULE_OPERATION_NOMINAL_SUBSTATE;
|
||||
mNbCmdCharsReceived = 0;
|
||||
mIsPassthroughEnabled = false;
|
||||
mModuleSerialDebugEnabled = false;
|
||||
mPICSerialDebugEnabled = false;
|
||||
if(FunctionnalReset == false)
|
||||
{
|
||||
mModuleSerialDebugEnabled = false;
|
||||
mPICSerialDebugEnabled = false;
|
||||
}
|
||||
mCurrentCmd = LTE_MODULE_NO_CMD;
|
||||
mIsInitializing = true;
|
||||
mNbMasterReconnectCount = 0;
|
||||
@@ -50,10 +53,11 @@ void InitLTEModule()
|
||||
|
||||
mMasterConnected = false;
|
||||
mAPNConnected = false;
|
||||
LTENetworkInterfaceInit();
|
||||
}
|
||||
int LTEModuleReset()
|
||||
{
|
||||
InitLTEModule();
|
||||
InitLTEModule(true);
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
@@ -165,6 +169,8 @@ void TickLTEModule()
|
||||
|
||||
void LTEModuleNewData(unsigned char Data)
|
||||
{
|
||||
// printf("%c - 0x%x\n",Data,Data);
|
||||
|
||||
if(mIsPassthroughEnabled == true)
|
||||
{
|
||||
SyslogNewByte(Data);
|
||||
@@ -177,10 +183,139 @@ void LTEModuleNewData(unsigned char Data)
|
||||
SyslogNewByte(Data);
|
||||
}
|
||||
|
||||
if(Data == '\n') //ignore line feeds
|
||||
return;
|
||||
mATCmd[mNbCmdCharsReceived++] = Data;
|
||||
|
||||
if(Data != '\r')
|
||||
if(mLTEModuleOperationSMState == LTE_MODULE_OPERATION_SENDING_DATA_STATE && Data == '>')
|
||||
{
|
||||
LTESendMasterBufferToModule();
|
||||
}
|
||||
|
||||
if(Data == 0x0A) //Line feed... '\n' Ignore
|
||||
{
|
||||
if(mNbCmdCharsReceived < 2)
|
||||
{
|
||||
mNbCmdCharsReceived = 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(Data == 0x0D) //escape sequence \r
|
||||
{
|
||||
|
||||
//check if it's part of a data payload
|
||||
if(strncmp("+CARECV:",mATCmd,strlen("+CARECV:")) == 0)
|
||||
{
|
||||
// printf("3\n");
|
||||
char DataSzString[2];
|
||||
DataSzString[0] = mATCmd[9];
|
||||
int LenghtSize = 1;
|
||||
if(mATCmd[10] != ',')
|
||||
{
|
||||
// printf("4\n");
|
||||
DataSzString[1] = mATCmd[10];
|
||||
LenghtSize = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
// printf("5\n");
|
||||
DataSzString[1] = '\0';
|
||||
}
|
||||
|
||||
int DataSize = 0;
|
||||
DataSize = atoi(&DataSzString[0]);
|
||||
|
||||
// printf("Received escape sequence, DataSize = %d\n", DataSize);
|
||||
//
|
||||
//
|
||||
//Check if we received the whole payload.
|
||||
if(mNbCmdCharsReceived-1 < (DataSize + LenghtSize + 10))
|
||||
{
|
||||
//The \r character is part of the payload, continue receiving...
|
||||
return;
|
||||
|
||||
}
|
||||
}
|
||||
if(mLTEModuleSMState == LTE_MODULE_SM_WAIT_RDY_STATE)
|
||||
{
|
||||
if(mATCmd[0] == 'R' && mATCmd[1] == 'D' && mATCmd[2] == 'Y')
|
||||
{
|
||||
LTEModuleSM(LTE_MODULE_RX_RDY_EVENT);
|
||||
}
|
||||
}
|
||||
else if(mLTEModuleSMState == LTE_MODULE_SM_RUN_STATE)
|
||||
{
|
||||
if(mNbCmdCharsReceived > 1)
|
||||
{
|
||||
AnalyzeNewATString(mATCmd,mNbCmdCharsReceived,mCurrentCmd);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
mNbCmdCharsReceived = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
if(Data == 0x0D) //ignore line feeds '\n'
|
||||
{
|
||||
if(mLTEModuleOperationSMState == LTE_MODULE_OPERATION_WAIT_FOR_DATA_STATE)
|
||||
{
|
||||
printf("1 mNbCmdCharsReceived = %d\n",mNbCmdCharsReceived);
|
||||
// //Verify if \n is part of the payload data..
|
||||
if(mNbCmdCharsReceived > 11) //Check that we received the datasize from module
|
||||
{
|
||||
printf("2\n");
|
||||
// //Extract datasize
|
||||
if(strncmp("+CARECV:",mATCmd,strlen("+CARECV:")) == 0)
|
||||
{
|
||||
// printf("3\n");
|
||||
char DataSzString[2];
|
||||
DataSzString[0] = mATCmd[9];
|
||||
int LenghtSize = 1;
|
||||
if(mATCmd[10] != ',')
|
||||
{
|
||||
// printf("4\n");
|
||||
DataSzString[1] = mATCmd[10];
|
||||
LenghtSize = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
// printf("5\n");
|
||||
DataSzString[1] = '\0';
|
||||
}
|
||||
|
||||
int DataSize = 0;
|
||||
DataSize = atoi(&DataSzString[0]);
|
||||
|
||||
printf("Received \\n, DataSize = %d\n", DataSize);
|
||||
//
|
||||
//
|
||||
//Check if we received the whole payload.
|
||||
if(mNbCmdCharsReceived >= (DataSize + LenghtSize + 10))
|
||||
{
|
||||
// printf("6\n");
|
||||
//The whole payload is received... do not store the \n
|
||||
// printf("Received \\n, all payload received, ignoring. NbCharReceived = %d\n",mNbCmdCharsReceived);
|
||||
}
|
||||
else
|
||||
{
|
||||
// printf("7\n");
|
||||
//The \n character is part of the payload, store it and continue receiving...
|
||||
mATCmd[mNbCmdCharsReceived] = Data;
|
||||
// printf("Received \\n in payload, storing data. NbCharReceived = %d\n",mNbCmdCharsReceived);
|
||||
mNbCmdCharsReceived++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// printf("8\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if(Data != 0x0A) // '\r'
|
||||
{
|
||||
if(mLTEModuleOperationSMState == LTE_MODULE_OPERATION_SENDING_DATA_STATE && Data == '>')
|
||||
{
|
||||
@@ -199,6 +334,60 @@ void LTEModuleNewData(unsigned char Data)
|
||||
}
|
||||
else
|
||||
{
|
||||
// if(mLTEModuleOperationSMState == LTE_MODULE_OPERATION_WAIT_FOR_DATA_STATE)
|
||||
// {
|
||||
// //Verify if we really are done or if \r is part of the payload data..
|
||||
// if(mNbCmdCharsReceived > 11) //Check that we received the datasize from module
|
||||
// {
|
||||
// //Extract datasize
|
||||
// if(strncmp("+CARECV:",mATCmd,strlen("+CARECV:")) == 0)
|
||||
// {
|
||||
// char DataSzString[2];
|
||||
// DataSzString[0] = mATCmd[9];
|
||||
// int LenghtSize = 1;
|
||||
// if(mATCmd[10] != ',')
|
||||
// {
|
||||
// DataSzString[1] = mATCmd[10];
|
||||
// LenghtSize = 2;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// DataSzString[1] = '\0';
|
||||
// }
|
||||
//
|
||||
// int DataSize = 0;
|
||||
// DataSize = atoi(&DataSzString[0]);
|
||||
// printf("DataSzString : 0x%x - 0x%x\n",DataSzString[0],DataSzString[1]);
|
||||
// printf("Received \\r, DataSize = %d\n", DataSize);
|
||||
// printf("%s\n",mATCmd);
|
||||
// //Check if we received the whole payload.
|
||||
// if(mNbCmdCharsReceived >= (DataSize + LenghtSize + 10))
|
||||
// {
|
||||
// //The \r character is not part of the payload, continue normally
|
||||
// printf("Received \\r normally, all payload received, continuing. NbCharReceived = %d\n",mNbCmdCharsReceived);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// //The \r character is part of the payload, store it and continue receiving...
|
||||
// mATCmd[mNbCmdCharsReceived] = Data;
|
||||
// printf("Received \\r in payload, storing data. NbCharReceived = %d\n",mNbCmdCharsReceived);
|
||||
// mNbCmdCharsReceived++;
|
||||
//
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// //weird stuff happening...
|
||||
//
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// //Weird stuff happening...
|
||||
//
|
||||
// }
|
||||
// }
|
||||
if(mNbCmdCharsReceived != 0) //New Command received
|
||||
{
|
||||
|
||||
@@ -212,13 +401,14 @@ void LTEModuleNewData(unsigned char Data)
|
||||
else if(mLTEModuleSMState == LTE_MODULE_SM_RUN_STATE)
|
||||
{
|
||||
AnalyzeNewATString(mATCmd,mNbCmdCharsReceived,mCurrentCmd);
|
||||
mNbCmdCharsReceived = mNbCmdCharsReceived;
|
||||
|
||||
}
|
||||
|
||||
mNbCmdCharsReceived = 0;
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
void LTEEnterSerialPassthrough()
|
||||
@@ -289,6 +479,7 @@ void SendDataToLteModule(char *Data, int Size)
|
||||
SyslogNewByte(*ptr++);
|
||||
}
|
||||
}
|
||||
// printf("PIC: %s",Data);
|
||||
UartTransmitData(LTE_IF_UART_PORT,Data,Size);
|
||||
}
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@ enum eLTEModuleOperationSMEvents
|
||||
|
||||
|
||||
|
||||
void InitLTEModule();
|
||||
void InitLTEModule(bool FunctionnalReset);
|
||||
void LTEModuleSM(int SMEvent);
|
||||
void TickLTEModule();
|
||||
void LTEModuleOperationSM(int OperationEvent);
|
||||
|
||||
@@ -48,6 +48,8 @@ const uint32_t *mBootloaderMagicWord = (uint32_t *) BOOTLOAD_VERSION_ADDRESS;
|
||||
|
||||
static BYTE mHelpString[] = "Here is the list of the available commands:\n\r\n\r"
|
||||
"help : Shows this window\n\r"
|
||||
"\ncpu [command] Control CPU\n"
|
||||
" - Available [command] argument are: reboot\n"
|
||||
"\npower [state] Set chalet's 12V Inverter feed power state. This command controls the main power relay\n"
|
||||
" - Available [state] argument are: on\n"
|
||||
" off\n"
|
||||
@@ -74,6 +76,7 @@ static BYTE mHelpString1[] = "\nlte [command] [value] : bootloader mode control
|
||||
" pic (debug PIC comm only)\n"
|
||||
" both (debug both PIC and LTE module comm )\n"
|
||||
" off (disable LTE debug)\n"
|
||||
" reset (reset the lte module)\n"
|
||||
"\nHave a good day!\n";
|
||||
|
||||
BYTE *mHelpStringPtr;
|
||||
@@ -180,9 +183,31 @@ void ParseNewBuffer(void)
|
||||
if(strncmp(mCmdString,"help",strlen("help")) == 0)
|
||||
{
|
||||
SendTerminalData(mHelpString,strlen(mHelpString));
|
||||
|
||||
|
||||
SendTerminalData(mHelpString1,strlen(mHelpString1));
|
||||
}
|
||||
else if(strncmp(mCmdString,"cpu",strlen("cpu")) == 0)
|
||||
{
|
||||
if(strlen(mDataString1) == 0)
|
||||
{
|
||||
TerminalPrintString("\n[command] parameter is invalid. Type 'help' for more info\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if(strncmp(mDataString1,"reboot",strlen("reboot")) == 0)
|
||||
{
|
||||
TerminalPrintString("\nRebooting CPU... goodbye!!\n");
|
||||
TurnOFFWiFi();
|
||||
Sleep(100);
|
||||
SoftReset();
|
||||
}
|
||||
else
|
||||
{
|
||||
TerminalPrintString("\n[command] parameter is invalid. Type 'help' for valid values\n");
|
||||
}
|
||||
|
||||
TerminalPrintString("\n");
|
||||
}
|
||||
|
||||
else if(strncmp(mCmdString,"power",strlen("power")) == 0)
|
||||
{
|
||||
@@ -448,14 +473,15 @@ void ParseNewBuffer(void)
|
||||
TerminalPrintString("\n[command] parameter is invalid. Type 'help' for more info\n");
|
||||
return;
|
||||
}
|
||||
if(strlen(mDataString2) == 0)
|
||||
{
|
||||
TerminalPrintString("\n[value] parameter is invalid. Type 'help' for more info\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if(strncmp(mDataString1,"passthrough",strlen("passthrough")) == 0)
|
||||
{
|
||||
if(strlen(mDataString2) == 0)
|
||||
{
|
||||
TerminalPrintString("\n[value] parameter is invalid. Type 'help' for more info\n");
|
||||
return;
|
||||
}
|
||||
if(strncmp(mDataString2,"on",strlen("on")) == 0)
|
||||
{
|
||||
LTEEnterSerialPassthrough();
|
||||
@@ -474,6 +500,11 @@ void ParseNewBuffer(void)
|
||||
}
|
||||
if(strncmp(mDataString1,"debug",strlen("debug")) == 0)
|
||||
{
|
||||
if(strlen(mDataString2) == 0)
|
||||
{
|
||||
TerminalPrintString("\n[value] parameter is invalid. Type 'help' for more info\n");
|
||||
return;
|
||||
}
|
||||
if(strncmp(mDataString2,"module",strlen("module")) == 0)
|
||||
{
|
||||
if(LTEEnableSerialDebug(true,false) == RET_OK)
|
||||
@@ -518,6 +549,12 @@ void ParseNewBuffer(void)
|
||||
}
|
||||
|
||||
}
|
||||
if(strncmp(mDataString1,"reset",strlen("reset")) == 0)
|
||||
{
|
||||
TerminalPrintString("\nResetting LTE module...\n");
|
||||
LTEModuleReset();
|
||||
}
|
||||
|
||||
}
|
||||
else if(strncmp(mCmdString,"debug",strlen(mCmdString)) == 0)
|
||||
{
|
||||
|
||||
@@ -98,7 +98,8 @@ void InitUart(void)
|
||||
setbuf(stdout,NULL); //to use printf without \r
|
||||
fflush(stdout);
|
||||
|
||||
UartOpenComPort(NETWORK_UART_PORT,9600,UART_ONE_STOP_BIT,UART_NO_PARITY); //Open LoRa module port
|
||||
//UartOpenComPort(NETWORK_UART_PORT,9600,UART_ONE_STOP_BIT,UART_NO_PARITY); //Open LoRa module port
|
||||
UartOpenComPort(NETWORK_UART_PORT,115200,UART_ONE_STOP_BIT,UART_NO_PARITY); //Open printf port
|
||||
UartOpenComPort(LTE_IF_UART_PORT,115200,UART_ONE_STOP_BIT,UART_NO_PARITY); //Open LTE module port
|
||||
#ifdef USE_PRINTF
|
||||
//UartOpenComPort(CONSOLE_UART_PORT,115200,UART_ONE_STOP_BIT,UART_NO_PARITY); //Open console port
|
||||
|
||||
@@ -399,6 +399,7 @@ int InitWiFi()
|
||||
char IP1,IP2,IP3,IP4,GW1,GW2,GW3,GW4;
|
||||
|
||||
//Load WiFi parameters from flash if present
|
||||
#ifndef FORCE_WIFI_SETTINGS
|
||||
if(SPIFlashIsPresent() == 1)
|
||||
{
|
||||
char StoredIPConfig[11];
|
||||
@@ -456,6 +457,7 @@ int InitWiFi()
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
IP1 = STATIC_IP_ADDRESS_1;
|
||||
IP2 = STATIC_IP_ADDRESS_2;
|
||||
|
||||
@@ -100,7 +100,7 @@ void SendBootloaderByte(uint8 data);
|
||||
int IsBootloaderClientConnected();
|
||||
|
||||
|
||||
|
||||
//#define FORCE_WIFI_SETTINGS
|
||||
//#define USE_STATIC_IP
|
||||
|
||||
|
||||
@@ -168,12 +168,12 @@ int IsBootloaderClientConnected();
|
||||
//#define HOME_AP_NAME "ImprVEmard"
|
||||
//#define HOME_AP_PWD "12345fffff"
|
||||
|
||||
#define HOME_AP_NAME "ChaletVilleEmard"
|
||||
//#define HOME_AP_NAME "ImprVilleEmard"
|
||||
//#define HOME_AP_NAME "ChaletVilleEmard"
|
||||
#define HOME_AP_NAME "ImprVilleEmard"
|
||||
//#define HOME_AP_NAME "ElRouteurDuChalet"
|
||||
//#define HOME_AP_NAME "LeChalet"
|
||||
#define HOME_AP_PWD "Evinrude30"
|
||||
//#define HOME_AP_PWD "12345fffff"
|
||||
//#define HOME_AP_PWD "Evinrude30"
|
||||
#define HOME_AP_PWD "12345fffff"
|
||||
|
||||
#define TERMINAL_SERVER_PORT 85
|
||||
#define NETWORK_SERVER_PORT 86
|
||||
@@ -185,12 +185,12 @@ int IsBootloaderClientConnected();
|
||||
//Module Static IP settings
|
||||
#define STATIC_IP_ADDRESS_1 192
|
||||
#define STATIC_IP_ADDRESS_2 168
|
||||
#define STATIC_IP_ADDRESS_3 30
|
||||
#define STATIC_IP_ADDRESS_4 127
|
||||
#define STATIC_IP_ADDRESS_3 50
|
||||
#define STATIC_IP_ADDRESS_4 123
|
||||
|
||||
#define GATEWAY_ADDRESS_1 192
|
||||
#define GATEWAY_ADDRESS_2 168
|
||||
#define GATEWAY_ADDRESS_3 30
|
||||
#define GATEWAY_ADDRESS_3 50
|
||||
#define GATEWAY_ADDRESS_4 1
|
||||
|
||||
#define DEFAULT_DNS_ADD_1 8
|
||||
|
||||
@@ -112,7 +112,7 @@ int main(void)
|
||||
InitSPIFlash();
|
||||
InitLCDCtrl();
|
||||
|
||||
InitLTEModule();
|
||||
InitLTEModule(false);
|
||||
LTENetworkInterfaceInit();
|
||||
|
||||
|
||||
@@ -242,17 +242,24 @@ void InitializeBoard()
|
||||
|
||||
}
|
||||
|
||||
|
||||
void _mon_putc(char c)
|
||||
{
|
||||
// U2TXREG = c;
|
||||
// while (U2STAbits.TRMT==0);
|
||||
UartTransmitData(NETWORK_UART_PORT,&c,1);
|
||||
}
|
||||
#ifdef USE_PRINTF
|
||||
void _mon_putc(char c)
|
||||
{
|
||||
U2TXREG = c;
|
||||
while (U2STAbits.TRMT==0);
|
||||
}
|
||||
#elif defined USE_SYSLOG
|
||||
void _mon_putc(char c)
|
||||
{
|
||||
SyslogNewByte(c);
|
||||
}
|
||||
//#elif defined USE_SYSLOG
|
||||
//void _mon_putc(char c)
|
||||
//{
|
||||
// SyslogNewByte(c);
|
||||
//}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -54,6 +54,7 @@ typedef enum
|
||||
LTE_MODULE_TIMER,
|
||||
LTE_COMM_TIMER,
|
||||
LTE_NWI_TIMER,
|
||||
CHALET_POWER_RELAY_LVD_TIMER,
|
||||
TIMER_MAX_ID
|
||||
}eTimerID;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#define VERSIONNUMBER "CHALET_V01.01.6" //shall be 15 chars...
|
||||
#define VERSIONNUMBER "CHALET_V01.02.6" //shall be 15 chars...
|
||||
//Force DHCP instead of static IP.
|
||||
|
||||
//#define VERSIONNUMBER "CHALET_V01.00.1" //shall be 15 chars...
|
||||
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
Binary file not shown.
+8989
-8910
File diff suppressed because it is too large
Load Diff
+1423
-1427
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
#
|
||||
#Sat Feb 08 11:00:16 EST 2025
|
||||
#Sat Jul 04 11:51:56 EDT 2026
|
||||
ChaletDuinoV2_795F512H_.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc32\\v1.33\\bin
|
||||
default.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc32\\v1.33\\bin
|
||||
proj.dir=D\:\\Main\\PicDev\\Projets\\ChaletLora\\ChaletLora.X
|
||||
@@ -7,7 +7,7 @@ com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=bcd6e5453a11ce86a
|
||||
ChaletDuinoV2_795F512H_.com-microchip-mplab-mdbcore-ICD3Tool-ICD3DbgToolManager.md5=b8062f7a3afd14c7a6d50c4bb4696d24
|
||||
default.com-microchip-mplab-nbide-toolchain-xc32-XC32LanguageToolchain.md5=de2d3bc95a22a3f432c2e39f49efafbc
|
||||
default.com-microchip-mplab-mdbcore-ICD3Tool-ICD3DbgToolManager.md5=b8062f7a3afd14c7a6d50c4bb4696d24
|
||||
configurations-xml=1473259d34d997cd9f158c9d70cc6d8b
|
||||
configurations-xml=8f7a212dcf288040446c6f1ac78b94e3
|
||||
ChaletDuino_775F512H_.com-microchip-mplab-nbide-toolchain-xc32-XC32LanguageToolchain.md5=de2d3bc95a22a3f432c2e39f49efafbc
|
||||
host.platform=windows
|
||||
ChaletDuinoV2_795F512H_.com-microchip-mplab-nbide-toolchain-xc32-XC32LanguageToolchain.md5=de2d3bc95a22a3f432c2e39f49efafbc
|
||||
|
||||
@@ -346,35 +346,6 @@
|
||||
<property key="trace-symbols" value=""/>
|
||||
<property key="warn-section-align" value="false"/>
|
||||
</C32-LD>
|
||||
<C32CPP>
|
||||
<property key="additional-warnings" value="false"/>
|
||||
<property key="addresss-attribute-use" value="false"/>
|
||||
<property key="check-new" value="false"/>
|
||||
<property key="eh-specs" value="true"/>
|
||||
<property key="enable-app-io" value="false"/>
|
||||
<property key="enable-omit-frame-pointer" value="false"/>
|
||||
<property key="enable-symbols" value="true"/>
|
||||
<property key="enable-unroll-loops" value="false"/>
|
||||
<property key="exceptions" value="true"/>
|
||||
<property key="exclude-floating-point" value="false"/>
|
||||
<property key="extra-include-directories" value=""/>
|
||||
<property key="generate-16-bit-code" value="false"/>
|
||||
<property key="generate-micro-compressed-code" value="false"/>
|
||||
<property key="isolate-each-function" value="false"/>
|
||||
<property key="make-warnings-into-errors" value="false"/>
|
||||
<property key="optimization-level" value=""/>
|
||||
<property key="place-data-into-section" value="false"/>
|
||||
<property key="post-instruction-scheduling" value="default"/>
|
||||
<property key="pre-instruction-scheduling" value="default"/>
|
||||
<property key="preprocessor-macros" value=""/>
|
||||
<property key="rtti" value="true"/>
|
||||
<property key="strict-ansi" value="false"/>
|
||||
<property key="toplevel-reordering" value=""/>
|
||||
<property key="unaligned-access" value=""/>
|
||||
<property key="use-cci" value="false"/>
|
||||
<property key="use-iar" value="false"/>
|
||||
<property key="use-indirect-calls" value="false"/>
|
||||
</C32CPP>
|
||||
<C32Global>
|
||||
<property key="common-include-directories" value=""/>
|
||||
<property key="gp-relative-option" value=""/>
|
||||
|
||||
@@ -1,6 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
|
||||
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="11">
|
||||
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="12">
|
||||
<file>
|
||||
<url>Source/hd44780.c</url>
|
||||
<bookmark id="7">
|
||||
<name/>
|
||||
<line>340</line>
|
||||
<key/>
|
||||
</bookmark>
|
||||
</file>
|
||||
<file>
|
||||
<url>Source/SIM7080GInterface.c</url>
|
||||
<bookmark id="11">
|
||||
<name/>
|
||||
<line>123</line>
|
||||
<key/>
|
||||
</bookmark>
|
||||
<bookmark id="10">
|
||||
<name/>
|
||||
<line>390</line>
|
||||
<key/>
|
||||
</bookmark>
|
||||
<bookmark id="8">
|
||||
<name/>
|
||||
<line>634</line>
|
||||
<key/>
|
||||
</bookmark>
|
||||
<bookmark id="9">
|
||||
<name/>
|
||||
<line>751</line>
|
||||
<key/>
|
||||
</bookmark>
|
||||
</file>
|
||||
<file>
|
||||
<url>Source/BootloaderInterface.c</url>
|
||||
<bookmark id="5">
|
||||
@@ -15,40 +46,17 @@
|
||||
</bookmark>
|
||||
</file>
|
||||
<file>
|
||||
<url>Source/hd44780.c</url>
|
||||
<bookmark id="7">
|
||||
<url>Source/WiFiCtrl.c</url>
|
||||
<bookmark id="12">
|
||||
<name/>
|
||||
<line>340</line>
|
||||
<key/>
|
||||
</bookmark>
|
||||
</file>
|
||||
<file>
|
||||
<url>Source/SIM7080GInterface.c</url>
|
||||
<bookmark id="11">
|
||||
<name/>
|
||||
<line>119</line>
|
||||
<key/>
|
||||
</bookmark>
|
||||
<bookmark id="10">
|
||||
<name/>
|
||||
<line>201</line>
|
||||
<key/>
|
||||
</bookmark>
|
||||
<bookmark id="8">
|
||||
<name/>
|
||||
<line>443</line>
|
||||
<key/>
|
||||
</bookmark>
|
||||
<bookmark id="9">
|
||||
<name/>
|
||||
<line>560</line>
|
||||
<line>407</line>
|
||||
<key/>
|
||||
</bookmark>
|
||||
</file>
|
||||
</editor-bookmarks>
|
||||
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
||||
<group>
|
||||
<file>file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/SIM7080GInterface.c</file>
|
||||
<file>file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/WiFiCtrl.c</file>
|
||||
</group>
|
||||
</open-files>
|
||||
</project-private>
|
||||
|
||||
Reference in New Issue
Block a user