LTE Dev
This commit is contained in:
@@ -76,11 +76,15 @@ int AnalyzeNewATString(char* Str, int StrLen, int CurCmd)
|
|||||||
{
|
{
|
||||||
if(strncmp("+CAOPEN:",mInputString,strlen("+CAOPEN:")) == 0)
|
if(strncmp("+CAOPEN:",mInputString,strlen("+CAOPEN:")) == 0)
|
||||||
{
|
{
|
||||||
// int result = atoi(&mInputString[11]);
|
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);
|
LTEModuleMasterConnectionStatus(LTE_MODULE_MASTER_CONNECTED);
|
||||||
}
|
}
|
||||||
|
else if(result == 1) //socket error, probably caused by APN not connected..
|
||||||
|
{
|
||||||
|
LTEModuleMasterConnectionStatus(LTE_MODULE_MASTER_SOCKET_ERROR);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LTEModuleMasterConnectionStatus(LTE_MODULE_MASTER_DISCONNECTED);
|
LTEModuleMasterConnectionStatus(LTE_MODULE_MASTER_DISCONNECTED);
|
||||||
@@ -107,6 +111,7 @@ int AnalyzeNewATString(char* Str, int StrLen, int CurCmd)
|
|||||||
{
|
{
|
||||||
LTECmdResponseReceived(CurCmd,LTE_MODULE_RESULT_ERROR);
|
LTECmdResponseReceived(CurCmd,LTE_MODULE_RESULT_ERROR);
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
case LTE_MODULE_CHECK_MASTER_CONNECTION_CMD:
|
case LTE_MODULE_CHECK_MASTER_CONNECTION_CMD:
|
||||||
{
|
{
|
||||||
@@ -186,6 +191,21 @@ int AnalyzeNewATString(char* Str, int StrLen, int CurCmd)
|
|||||||
{
|
{
|
||||||
LTEModuleNewDataReady();
|
LTEModuleNewDataReady();
|
||||||
}
|
}
|
||||||
|
if(strncmp("+APP PDP:",mInputString,strlen("+APP PDP:")) == 0)
|
||||||
|
{
|
||||||
|
// LTEModuleNewDataReady();
|
||||||
|
}
|
||||||
|
if(strncmp("+CASTATE:",mInputString,strlen("+CASTATE:")) == 0) //+CASTATE: 0,0
|
||||||
|
{
|
||||||
|
if(mInputString[12] == '1') //The connection is established
|
||||||
|
{
|
||||||
|
LTEModuleMasterConnectionStatus(LTE_MODULE_MASTER_CONNECTED);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LTEModuleMasterConnectionStatus(LTE_MODULE_MASTER_DISCONNECTED);
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
#include "ATCmdInterpreter.h"
|
#include "ATCmdInterpreter.h"
|
||||||
|
|
||||||
static BYTE mActivateNetworkCmd[] = "AT+CNACT=0,1\r";
|
static BYTE mActivateNetworkCmd[] = "AT+CNACT=0,1\r";
|
||||||
|
static BYTE mDisconnectNetworkCmd[] = "AT+CNACT=0,0\r";
|
||||||
static BYTE mCheckAPNConnectionCmd[] = "AT+CNACT?\r";
|
static BYTE mCheckAPNConnectionCmd[] = "AT+CNACT?\r";
|
||||||
static BYTE mConnectToMasterCmd[] = "AT+CAOPEN=0,0,\"TCP\",\"grosgin.myftp.org\",6463\r";
|
static BYTE mConnectToMasterCmd[] = "AT+CAOPEN=0,0,\"TCP\",\"grosgin.myftp.org\",6463\r";
|
||||||
static BYTE mDisconnectFromMasterCmd[] = "AT+CACLOSE=0\r";
|
static BYTE mDisconnectFromMasterCmd[] = "AT+CACLOSE=0\r";
|
||||||
@@ -15,29 +16,42 @@ static BYTE mReceiveDataCmd[] = "AT+CARECV=0,100\r";
|
|||||||
|
|
||||||
int mLTEModuleSMState;
|
int mLTEModuleSMState;
|
||||||
int mLTEModuleOperationSMState;
|
int mLTEModuleOperationSMState;
|
||||||
|
int mLTEModuleOperationSMSubState;
|
||||||
int mNbCmdCharsReceived;
|
int mNbCmdCharsReceived;
|
||||||
char mATCmd[LTE_MODULE_MAX_CMD_LENGTH];
|
char mATCmd[LTE_MODULE_MAX_CMD_LENGTH];
|
||||||
bool mIsPassthroughEnabled;
|
bool mIsPassthroughEnabled;
|
||||||
bool mModuleSerialDebugEnabled;
|
bool mModuleSerialDebugEnabled;
|
||||||
bool mPICSerialDebugEnabled;
|
bool mPICSerialDebugEnabled;
|
||||||
int mCurrentCmd;
|
int mCurrentCmd;
|
||||||
|
bool mIsInitializing;
|
||||||
|
int mNbMasterReconnectCount;
|
||||||
|
|
||||||
bool mMasterConnected;
|
bool mMasterConnected;
|
||||||
|
bool mMasterSocketError;
|
||||||
bool mAPNConnected;
|
bool mAPNConnected;
|
||||||
|
|
||||||
void InitLTEModule()
|
void InitLTEModule()
|
||||||
{
|
{
|
||||||
mLTEModuleSMState = LTE_MODULE_SM_INIT_STATE;
|
mLTEModuleSMState = LTE_MODULE_SM_INIT_STATE;
|
||||||
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_INIT_STATE;
|
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_INIT_STATE;
|
||||||
|
mLTEModuleOperationSMSubState = LTE_MODULE_OPERATION_NOMINAL_SUBSTATE;
|
||||||
mNbCmdCharsReceived = 0;
|
mNbCmdCharsReceived = 0;
|
||||||
mIsPassthroughEnabled = false;
|
mIsPassthroughEnabled = false;
|
||||||
mModuleSerialDebugEnabled = false;
|
mModuleSerialDebugEnabled = false;
|
||||||
mPICSerialDebugEnabled = false;
|
mPICSerialDebugEnabled = false;
|
||||||
mCurrentCmd = LTE_MODULE_NO_CMD;
|
mCurrentCmd = LTE_MODULE_NO_CMD;
|
||||||
|
mIsInitializing = true;
|
||||||
|
mNbMasterReconnectCount = 0;
|
||||||
|
mMasterSocketError = false;
|
||||||
|
|
||||||
mMasterConnected = false;
|
mMasterConnected = false;
|
||||||
mAPNConnected = false;
|
mAPNConnected = false;
|
||||||
}
|
}
|
||||||
|
int LTEModuleReset()
|
||||||
|
{
|
||||||
|
InitLTEModule();
|
||||||
|
return RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
void LTEModuleSM(int SMEvent)
|
void LTEModuleSM(int SMEvent)
|
||||||
{
|
{
|
||||||
@@ -92,7 +106,7 @@ void LTEModuleSM(int SMEvent)
|
|||||||
char Cmd[5] = {'A','T','E','0','\r'};
|
char Cmd[5] = {'A','T','E','0','\r'};
|
||||||
//UartTransmitData(LTE_IF_UART_PORT,Cmd,5);
|
//UartTransmitData(LTE_IF_UART_PORT,Cmd,5);
|
||||||
SendDataToLteModule(Cmd,5);
|
SendDataToLteModule(Cmd,5);
|
||||||
TimerStart(LTE_MODULE_TIMER,4000);
|
TimerStart(LTE_MODULE_TIMER,LTE_MODULE_POWERUP_TIMEOUT);
|
||||||
mLTEModuleSMState = LTE_MODULE_SM_DELAY_STATE;
|
mLTEModuleSMState = LTE_MODULE_SM_DELAY_STATE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -101,7 +115,7 @@ void LTEModuleSM(int SMEvent)
|
|||||||
char Cmd[10] = {'A','T','+','C','G','N','A','P','N','\r'};
|
char Cmd[10] = {'A','T','+','C','G','N','A','P','N','\r'};
|
||||||
//UartTransmitData(LTE_IF_UART_PORT,Cmd,10);
|
//UartTransmitData(LTE_IF_UART_PORT,Cmd,10);
|
||||||
SendDataToLteModule(Cmd,10);
|
SendDataToLteModule(Cmd,10);
|
||||||
TimerStart(LTE_MODULE_TIMER,4000);
|
TimerStart(LTE_MODULE_TIMER,LTE_MODULE_POWERUP_TIMEOUT);
|
||||||
mLTEModuleSMState = LTE_MODULE_SM_DELAY_STATE;
|
mLTEModuleSMState = LTE_MODULE_SM_DELAY_STATE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -336,11 +350,11 @@ void LTECmdResponseReceived(int Cmd, int Result)
|
|||||||
{
|
{
|
||||||
if(Result == LTE_MODULE_RESULT_OK)
|
if(Result == LTE_MODULE_RESULT_OK)
|
||||||
{
|
{
|
||||||
|
LTEModuleOperationSM(LTE_MODULE_OP_SERVER_DISCONNECTED_EVENT);
|
||||||
}
|
}
|
||||||
else if(Result == LTE_MODULE_RESULT_ERROR)
|
else if(Result == LTE_MODULE_RESULT_ERROR)
|
||||||
{
|
{
|
||||||
|
LTEModuleOperationSM(LTE_MODULE_OP_SERVER_DISCONNECTED_EVENT);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -379,11 +393,12 @@ void LTEModuleAPNConnectionStatus(int Status)
|
|||||||
if(Status == LTE_MODULE_APN_CONNECTED)
|
if(Status == LTE_MODULE_APN_CONNECTED)
|
||||||
{
|
{
|
||||||
mAPNConnected = true;
|
mAPNConnected = true;
|
||||||
|
SyslogNewString("APN connected\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mAPNConnected = false;
|
mAPNConnected = false;
|
||||||
//TODO: Reconnect..
|
SyslogNewString("APN disconnected\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void LTEModuleMasterConnectionStatus(int Status)
|
void LTEModuleMasterConnectionStatus(int Status)
|
||||||
@@ -391,10 +406,18 @@ void LTEModuleMasterConnectionStatus(int Status)
|
|||||||
if(Status == LTE_MODULE_MASTER_CONNECTED)
|
if(Status == LTE_MODULE_MASTER_CONNECTED)
|
||||||
{
|
{
|
||||||
mMasterConnected = true;
|
mMasterConnected = true;
|
||||||
|
SyslogNewString("Master connected\n");
|
||||||
|
}
|
||||||
|
else if(Status == LTE_MODULE_MASTER_SOCKET_ERROR)
|
||||||
|
{
|
||||||
|
mMasterConnected = false;
|
||||||
|
mMasterSocketError = true;
|
||||||
|
SyslogNewString("Master socket error\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mMasterConnected = false;
|
mMasterConnected = false;
|
||||||
|
SyslogNewString("Master disconnected\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -405,9 +428,9 @@ void LTEModuleOperationSM(int OperationEvent)
|
|||||||
{
|
{
|
||||||
case LTE_MODULE_OPERATION_INIT_STATE:
|
case LTE_MODULE_OPERATION_INIT_STATE:
|
||||||
{
|
{
|
||||||
|
mIsInitializing = true;
|
||||||
//Send the request to connect module APN
|
//Send the request to connect module APN
|
||||||
mCurrentCmd = LTE_MODULE_CONNECT_APN_CMD;
|
LTESendCommandToModule(LTE_MODULE_CONNECT_APN_CMD);
|
||||||
SendDataToLteModule(mActivateNetworkCmd,strlen(mActivateNetworkCmd));
|
|
||||||
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_WAIT_CONNECT_APN_STATE;
|
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_WAIT_CONNECT_APN_STATE;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@@ -417,17 +440,14 @@ void LTEModuleOperationSM(int OperationEvent)
|
|||||||
if(OperationEvent == LTE_MODULE_OP_APN_CONN_OK_EVENT)
|
if(OperationEvent == LTE_MODULE_OP_APN_CONN_OK_EVENT)
|
||||||
{
|
{
|
||||||
//Send the request to confirm the state of the connection
|
//Send the request to confirm the state of the connection
|
||||||
mCurrentCmd = LTE_MODULE_CHECK_APN_CONNECTION_CMD;
|
|
||||||
SendDataToLteModule(mCheckAPNConnectionCmd,strlen(mCheckAPNConnectionCmd));
|
LTESendCommandToModule(LTE_MODULE_CHECK_APN_CONNECTION_CMD);
|
||||||
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_CHECK_APN_STATE;
|
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_CHECK_APN_STATE;
|
||||||
}
|
}
|
||||||
if(OperationEvent == LTE_MODULE_OP_APN_CONN_FAILED_EVENT)
|
if(OperationEvent == LTE_MODULE_OP_APN_CONN_FAILED_EVENT)
|
||||||
{
|
{
|
||||||
//TODO: What do we do??
|
//TODO: What do we do??
|
||||||
|
LTEModuleReset(); //Something's wrong... reset the module.
|
||||||
// mCurrentCmd = LTE_MODULE_CHECK_APN_CONNECTION_CMD;
|
|
||||||
// SendDataToLteModule(mCheckAPNConnectionCmd,strlen(mCheckAPNConnectionCmd));
|
|
||||||
// mLTEModuleOperationSMState = LTE_MODULE_OPERATION_CHECK_APN_STATE;
|
|
||||||
}
|
}
|
||||||
else if(OperationEvent == LTE_MODULE_OP_TICK_EVENT)
|
else if(OperationEvent == LTE_MODULE_OP_TICK_EVENT)
|
||||||
{
|
{
|
||||||
@@ -440,19 +460,27 @@ void LTEModuleOperationSM(int OperationEvent)
|
|||||||
{
|
{
|
||||||
if(OperationEvent == LTE_MODULE_OP_APN_CONNECTED_EVENT)
|
if(OperationEvent == LTE_MODULE_OP_APN_CONNECTED_EVENT)
|
||||||
{
|
{
|
||||||
|
if(mIsInitializing == true) //The first time, try to connect the server immediately
|
||||||
|
{
|
||||||
|
mIsInitializing = false;
|
||||||
//Send the request to connect to Mastercontroller
|
//Send the request to connect to Mastercontroller
|
||||||
mCurrentCmd = LTE_MODULE_CONNECT_TO_MASTER_CMD;
|
LTESendCommandToModule(LTE_MODULE_CONNECT_TO_MASTER_CMD);
|
||||||
SendDataToLteModule(mConnectToMasterCmd,strlen(mConnectToMasterCmd));
|
|
||||||
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_WAIT_CONNECT_SERVER_STATE;
|
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_WAIT_CONNECT_SERVER_STATE;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mCurrentCmd = LTE_MODULE_NO_CMD;
|
||||||
|
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_STANDBY_STATE;
|
||||||
|
}
|
||||||
|
}
|
||||||
if(OperationEvent == LTE_MODULE_OP_APN_DISCONNECTED_EVENT)
|
if(OperationEvent == LTE_MODULE_OP_APN_DISCONNECTED_EVENT)
|
||||||
{
|
{
|
||||||
//TODO: What do we do??
|
//TODO: What do we do??
|
||||||
|
|
||||||
//Send the request to connect to Mastercontroller
|
//Send the request to connect to Mastercontroller
|
||||||
// mCurrentCmd = LTE_MODULE_CONNECT_TO_MASTER_CMD;
|
// mCurrentCmd = LTE_MODULE_CONNECT_TO_MASTER_CMD;
|
||||||
// SendDataToLteModule(mConnectToMasterCmd,strlen(mConnectToMasterCmd));
|
// SendDataToLteModule(mConnectToMasterCmd,strlen(mConnectToMasterCmd));
|
||||||
// mLTEModuleOperationSMState = LTE_MODULE_OPERATION_WAIT_CONNECT_SERVER_STATE;
|
// mLTEModuleOperationSMState = LTE_MODULE_OPERATION_WAIT_CONNECT_SERVER_STATE;
|
||||||
}
|
}
|
||||||
else if(OperationEvent == LTE_MODULE_OP_TICK_EVENT)
|
else if(OperationEvent == LTE_MODULE_OP_TICK_EVENT)
|
||||||
{
|
{
|
||||||
@@ -472,7 +500,7 @@ void LTEModuleOperationSM(int OperationEvent)
|
|||||||
//TODO: What do we do?
|
//TODO: What do we do?
|
||||||
|
|
||||||
mCurrentCmd = LTE_MODULE_NO_CMD;
|
mCurrentCmd = LTE_MODULE_NO_CMD;
|
||||||
// mLTEModuleOperationSMState = LTE_MODULE_OPERATION_STANDBY_STATE;
|
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_STANDBY_STATE;
|
||||||
}
|
}
|
||||||
if(OperationEvent == LTE_MODULE_OP_SERVER_CONN_FAILED_EVENT)
|
if(OperationEvent == LTE_MODULE_OP_SERVER_CONN_FAILED_EVENT)
|
||||||
{
|
{
|
||||||
@@ -485,16 +513,96 @@ void LTEModuleOperationSM(int OperationEvent)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case LTE_MODULE_OPERATION_WAIT_DISCONNECT_SERVER_STATE:
|
||||||
|
{
|
||||||
|
if(OperationEvent == LTE_MODULE_OP_SERVER_DISCONNECTED_EVENT)
|
||||||
|
{
|
||||||
|
//Always reconnect after a forced disconnection..
|
||||||
|
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_WAIT_CONNECT_SERVER_STATE;
|
||||||
|
LTESendCommandToModule(LTE_MODULE_CONNECT_TO_MASTER_CMD);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
case LTE_MODULE_OPERATION_STANDBY_STATE:
|
case LTE_MODULE_OPERATION_STANDBY_STATE:
|
||||||
{
|
{
|
||||||
if(OperationEvent == LTE_MODULE_OP_TICK_EVENT)
|
if(OperationEvent == LTE_MODULE_OP_TICK_EVENT)
|
||||||
{
|
{
|
||||||
//TODO: manage timeouts
|
switch(mLTEModuleOperationSMSubState)
|
||||||
|
{
|
||||||
|
case LTE_MODULE_OPERATION_NOMINAL_SUBSTATE:
|
||||||
|
{
|
||||||
|
if(IsTimerExpired(LTE_MODULE_TIMER) == true)
|
||||||
|
{
|
||||||
|
if(mMasterConnected == true) //All is good for now...
|
||||||
|
{
|
||||||
|
mNbMasterReconnectCount = 0;
|
||||||
|
TimerStart(LTE_MODULE_TIMER,LTE_MODULE_CONNECTION_CHECK_TIMEOUT);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//Master connection is lost... try to reconnect.
|
||||||
|
if(mNbMasterReconnectCount < LTE_MODULE_MAX_MASTER_CONNECT_RETRY)
|
||||||
|
{
|
||||||
|
mNbMasterReconnectCount++;
|
||||||
|
mLTEModuleOperationSMSubState = LTE_MODULE_OPERATION_RECONNECT_MASTER_SUBSTATE;
|
||||||
|
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_WAIT_DISCONNECT_SERVER_STATE;
|
||||||
|
LTESendCommandToModule(LTE_MODULE_DISCONNECT_FROM_MASTER_CMD); //Always disconnect before reconnecting...
|
||||||
|
SyslogNewString("Master reconnection attempt\n");
|
||||||
|
}
|
||||||
|
else //We tried 10 times, check the APN
|
||||||
|
{
|
||||||
|
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_CHECK_APN_STATE;
|
||||||
|
mLTEModuleOperationSMSubState = LTE_MODULE_OPERATION_CHECK_APN_SUBSTATE;
|
||||||
|
LTESendCommandToModule(LTE_MODULE_CHECK_APN_CONNECTION_CMD);
|
||||||
|
mNbMasterReconnectCount = 0;
|
||||||
|
SyslogNewString("Master reconnection attempt count reached.. checking APN\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LTE_MODULE_OPERATION_RECONNECT_MASTER_SUBSTATE:
|
||||||
|
{
|
||||||
|
mLTEModuleOperationSMSubState = LTE_MODULE_OPERATION_NOMINAL_SUBSTATE;
|
||||||
|
//TODO: check for SOCKET ERROR result code and reset APN directly here?
|
||||||
|
// if(mMasterSocketError == true)
|
||||||
|
// {
|
||||||
|
// mMasterSocketError = false;
|
||||||
|
// mLTEModuleOperationSMState = LTE_MODULE_OPERATION_CHECK_APN_STATE;
|
||||||
|
// mLTEModuleOperationSMSubState = LTE_MODULE_OPERATION_CHECK_APN_SUBSTATE;
|
||||||
|
// LTESendCommandToModule(LTE_MODULE_CHECK_APN_CONNECTION_CMD);
|
||||||
|
// mNbMasterReconnectCount = 0;
|
||||||
|
// }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LTE_MODULE_OPERATION_CHECK_APN_SUBSTATE:
|
||||||
|
{
|
||||||
|
if(mAPNConnected == true)
|
||||||
|
{
|
||||||
|
mLTEModuleOperationSMSubState = LTE_MODULE_OPERATION_NOMINAL_SUBSTATE;
|
||||||
|
}
|
||||||
|
else //APN is disconnected.. try reconnecting.
|
||||||
|
{
|
||||||
|
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_WAIT_CONNECT_APN_STATE;
|
||||||
|
mLTEModuleOperationSMSubState = LTE_MODULE_OPERATION_RECONNECT_APN_SUBSTATE;
|
||||||
|
LTESendCommandToModule(LTE_MODULE_CONNECT_APN_CMD);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LTE_MODULE_OPERATION_RECONNECT_APN_SUBSTATE:
|
||||||
|
{
|
||||||
|
mLTEModuleOperationSMSubState = LTE_MODULE_OPERATION_NOMINAL_SUBSTATE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(OperationEvent == LTE_MODULE_OP_MASTER_DATA_READY_EVENT)
|
if(OperationEvent == LTE_MODULE_OP_MASTER_DATA_READY_EVENT)
|
||||||
{
|
{
|
||||||
mCurrentCmd = LTE_MODULE_RX_DATA_CMD;
|
LTESendCommandToModule(LTE_MODULE_RX_DATA_CMD);
|
||||||
SendDataToLteModule(mReceiveDataCmd,strlen(mReceiveDataCmd));
|
|
||||||
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_WAIT_FOR_DATA_STATE;
|
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_WAIT_FOR_DATA_STATE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -526,3 +634,74 @@ void LTEModuleDataReceived(char *Data, int Size)
|
|||||||
LTEModuleOperationSM(LTE_MODULE_OP_MASTER_DATA_RECEIVED_EVENT);
|
LTEModuleOperationSM(LTE_MODULE_OP_MASTER_DATA_RECEIVED_EVENT);
|
||||||
//Execute command..
|
//Execute command..
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int LTESendCommandToModule(int Cmd)
|
||||||
|
{
|
||||||
|
switch(Cmd)
|
||||||
|
{
|
||||||
|
|
||||||
|
case LTE_MODULE_CONNECT_APN_CMD:
|
||||||
|
{
|
||||||
|
mCurrentCmd = LTE_MODULE_CONNECT_APN_CMD;
|
||||||
|
SendDataToLteModule(mActivateNetworkCmd,strlen(mActivateNetworkCmd));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LTE_MODULE_DISCONNECT_APN_CMD:
|
||||||
|
{
|
||||||
|
mCurrentCmd = LTE_MODULE_DISCONNECT_APN_CMD;
|
||||||
|
SendDataToLteModule(mDisconnectNetworkCmd,strlen(mDisconnectNetworkCmd));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LTE_MODULE_CONNECT_TO_MASTER_CMD:
|
||||||
|
{
|
||||||
|
mCurrentCmd = LTE_MODULE_CONNECT_TO_MASTER_CMD;
|
||||||
|
SendDataToLteModule(mConnectToMasterCmd,strlen(mConnectToMasterCmd));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LTE_MODULE_DISCONNECT_FROM_MASTER_CMD:
|
||||||
|
{
|
||||||
|
mCurrentCmd = LTE_MODULE_DISCONNECT_FROM_MASTER_CMD;
|
||||||
|
SendDataToLteModule(mDisconnectFromMasterCmd,strlen(mDisconnectFromMasterCmd));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LTE_MODULE_RX_DATA_CMD:
|
||||||
|
{
|
||||||
|
mCurrentCmd = LTE_MODULE_RX_DATA_CMD;
|
||||||
|
SendDataToLteModule(mReceiveDataCmd,strlen(mReceiveDataCmd));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LTE_MODULE_TX_DATA_CMD:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LTE_MODULE_CHECK_APN_CONNECTION_CMD:
|
||||||
|
{
|
||||||
|
mCurrentCmd = LTE_MODULE_CHECK_APN_CONNECTION_CMD;
|
||||||
|
SendDataToLteModule(mCheckAPNConnectionCmd,strlen(mCheckAPNConnectionCmd));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LTE_MODULE_CHECK_MASTER_CONNECTION_CMD:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LTE_MODULE_NO_CMD:
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
mCurrentCmd = LTE_MODULE_NO_CMD;
|
||||||
|
return RET_ERROR;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LTEModuleMasterCtrlCommStatus(bool Offline)
|
||||||
|
{
|
||||||
|
if(Offline == true)
|
||||||
|
{
|
||||||
|
mMasterConnected = false;
|
||||||
|
}
|
||||||
|
// else
|
||||||
|
// mMasterConnected = true;
|
||||||
|
}
|
||||||
@@ -12,7 +12,9 @@
|
|||||||
|
|
||||||
#define LTE_MODULE_POWERUP_TIMEOUT 2000
|
#define LTE_MODULE_POWERUP_TIMEOUT 2000
|
||||||
#define LTE_MODULE_WAIT_INIT_TIMEOUT 5000
|
#define LTE_MODULE_WAIT_INIT_TIMEOUT 5000
|
||||||
|
#define LTE_MODULE_CONNECTION_CHECK_TIMEOUT 5000
|
||||||
#define LTE_MODULE_MAX_CMD_LENGTH 128
|
#define LTE_MODULE_MAX_CMD_LENGTH 128
|
||||||
|
#define LTE_MODULE_MAX_MASTER_CONNECT_RETRY 5
|
||||||
|
|
||||||
enum eLTEModuleCommands
|
enum eLTEModuleCommands
|
||||||
{
|
{
|
||||||
@@ -44,7 +46,8 @@ enum eLTEModuleAPNConnectionStatus
|
|||||||
enum eLTEModuleMasterConnectionStatus
|
enum eLTEModuleMasterConnectionStatus
|
||||||
{
|
{
|
||||||
LTE_MODULE_MASTER_DISCONNECTED,
|
LTE_MODULE_MASTER_DISCONNECTED,
|
||||||
LTE_MODULE_MASTER_CONNECTED
|
LTE_MODULE_MASTER_CONNECTED,
|
||||||
|
LTE_MODULE_MASTER_SOCKET_ERROR
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -82,12 +85,23 @@ enum eLTEModuleOperationStates
|
|||||||
LTE_MODULE_OPERATION_WAIT_CONNECT_APN_STATE,
|
LTE_MODULE_OPERATION_WAIT_CONNECT_APN_STATE,
|
||||||
LTE_MODULE_OPERATION_CHECK_APN_STATE,
|
LTE_MODULE_OPERATION_CHECK_APN_STATE,
|
||||||
LTE_MODULE_OPERATION_WAIT_CONNECT_SERVER_STATE,
|
LTE_MODULE_OPERATION_WAIT_CONNECT_SERVER_STATE,
|
||||||
|
LTE_MODULE_OPERATION_WAIT_DISCONNECT_SERVER_STATE,
|
||||||
LTE_MODULE_OPERATION_STANDBY_STATE,
|
LTE_MODULE_OPERATION_STANDBY_STATE,
|
||||||
LTE_MODULE_OPERATION_WAIT_FOR_DATA_STATE,
|
LTE_MODULE_OPERATION_WAIT_FOR_DATA_STATE,
|
||||||
|
|
||||||
LTE_MODULE_OPERATION_MAX_STATE
|
LTE_MODULE_OPERATION_MAX_STATE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum eLTEModuleOperationSubStates
|
||||||
|
{
|
||||||
|
LTE_MODULE_OPERATION_NOMINAL_SUBSTATE,
|
||||||
|
LTE_MODULE_OPERATION_RECONNECT_MASTER_SUBSTATE,
|
||||||
|
LTE_MODULE_OPERATION_CHECK_APN_SUBSTATE,
|
||||||
|
LTE_MODULE_OPERATION_RECONNECT_APN_SUBSTATE,
|
||||||
|
|
||||||
|
LTE_MODULE_OPERATION_MAX_SUBSTATE
|
||||||
|
};
|
||||||
|
|
||||||
enum eLTEModuleOperationSMEvents
|
enum eLTEModuleOperationSMEvents
|
||||||
{
|
{
|
||||||
LTE_MODULE_OP_TICK_EVENT,
|
LTE_MODULE_OP_TICK_EVENT,
|
||||||
@@ -105,6 +119,8 @@ enum eLTEModuleOperationSMEvents
|
|||||||
LTE_MODULE_OP_MAX_EVENT
|
LTE_MODULE_OP_MAX_EVENT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void InitLTEModule();
|
void InitLTEModule();
|
||||||
void LTEModuleSM(int SMEvent);
|
void LTEModuleSM(int SMEvent);
|
||||||
void TickLTEModule();
|
void TickLTEModule();
|
||||||
@@ -114,13 +130,16 @@ void LTEEnterSerialPassthrough();
|
|||||||
void LTEExitSerialPassthrough();
|
void LTEExitSerialPassthrough();
|
||||||
void LTEFwdPassthroughData(char Data);
|
void LTEFwdPassthroughData(char Data);
|
||||||
int LTEEnableSerialDebug(bool EnModule, bool EnPic);
|
int LTEEnableSerialDebug(bool EnModule, bool EnPic);
|
||||||
|
int LTESendCommandToModule(int Command);
|
||||||
void SendDataToLteModule(char *Data, int Size);
|
void SendDataToLteModule(char *Data, int Size);
|
||||||
|
int LTEModuleReset();
|
||||||
|
|
||||||
void LTECmdResponseReceived(int Cmd, int Result);
|
void LTECmdResponseReceived(int Cmd, int Result);
|
||||||
void LTEModuleAPNConnectionStatus(int Status);
|
void LTEModuleAPNConnectionStatus(int Status);
|
||||||
void LTEModuleMasterConnectionStatus(int Status);
|
void LTEModuleMasterConnectionStatus(int Status);
|
||||||
void LTEModuleNewDataReady();
|
void LTEModuleNewDataReady();
|
||||||
void LTEModuleDataReceived(char *Data, int Size);
|
void LTEModuleDataReceived(char *Data, int Size);
|
||||||
|
void LTEModuleMasterCtrlCommStatus(bool Offline);
|
||||||
|
|
||||||
#endif /* SIM7080GINTERFACE_H */
|
#endif /* SIM7080GINTERFACE_H */
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
+1239
-1220
File diff suppressed because it is too large
Load Diff
BIN
Binary file not shown.
+6081
-5974
File diff suppressed because it is too large
Load Diff
+1225
-1206
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
#Sat Dec 28 08:08:31 EST 2024
|
#Mon Dec 30 11:27:34 EST 2024
|
||||||
ChaletDuinoV2_795F512H_.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc32\\v1.33\\bin
|
ChaletDuinoV2_795F512H_.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc32\\v1.33\\bin
|
||||||
default.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
|
proj.dir=D\:\\Main\\PicDev\\Projets\\ChaletLora\\ChaletLora.X
|
||||||
@@ -13,7 +13,7 @@ host.platform=windows
|
|||||||
ChaletDuinoV2_795F512H_.com-microchip-mplab-nbide-toolchain-xc32-XC32LanguageToolchain.md5=de2d3bc95a22a3f432c2e39f49efafbc
|
ChaletDuinoV2_795F512H_.com-microchip-mplab-nbide-toolchain-xc32-XC32LanguageToolchain.md5=de2d3bc95a22a3f432c2e39f49efafbc
|
||||||
ChaletDuinoV2_795F512H_.Pack.dfplocation=C\:\\Users\\JF\\.mchp_packs\\Microchip\\PIC32MX_DFP\\1.3.231
|
ChaletDuinoV2_795F512H_.Pack.dfplocation=C\:\\Users\\JF\\.mchp_packs\\Microchip\\PIC32MX_DFP\\1.3.231
|
||||||
ChaletDuino_775F512H_.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc32\\v1.33\\bin
|
ChaletDuino_775F512H_.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc32\\v1.33\\bin
|
||||||
host.id=1ah3-org7-2o
|
host.id=2r0w-c3lh-oj
|
||||||
conf.ids=default,ChaletDuino_775F512H_,ChaletDuinoV2_795F512H_
|
conf.ids=default,ChaletDuino_775F512H_,ChaletDuinoV2_795F512H_
|
||||||
default.languagetoolchain.version=1.33
|
default.languagetoolchain.version=1.33
|
||||||
ChaletDuinoV2_795F512H_.languagetoolchain.version=1.33
|
ChaletDuinoV2_795F512H_.languagetoolchain.version=1.33
|
||||||
|
|||||||
@@ -1,6 +1,27 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
|
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
|
||||||
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="7">
|
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="9">
|
||||||
|
<file>
|
||||||
|
<url>Source/hd44780.c</url>
|
||||||
|
<bookmark id="7">
|
||||||
|
<name/>
|
||||||
|
<line>340</line>
|
||||||
|
<key/>
|
||||||
|
</bookmark>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<url>Source/SIM7080GInterface.c</url>
|
||||||
|
<bookmark id="8">
|
||||||
|
<name/>
|
||||||
|
<line>424</line>
|
||||||
|
<key/>
|
||||||
|
</bookmark>
|
||||||
|
<bookmark id="9">
|
||||||
|
<name/>
|
||||||
|
<line>525</line>
|
||||||
|
<key/>
|
||||||
|
</bookmark>
|
||||||
|
</file>
|
||||||
<file>
|
<file>
|
||||||
<url>Source/BootloaderInterface.c</url>
|
<url>Source/BootloaderInterface.c</url>
|
||||||
<bookmark id="5">
|
<bookmark id="5">
|
||||||
@@ -14,25 +35,15 @@
|
|||||||
<key/>
|
<key/>
|
||||||
</bookmark>
|
</bookmark>
|
||||||
</file>
|
</file>
|
||||||
<file>
|
|
||||||
<url>Source/hd44780.c</url>
|
|
||||||
<bookmark id="7">
|
|
||||||
<name/>
|
|
||||||
<line>340</line>
|
|
||||||
<key/>
|
|
||||||
</bookmark>
|
|
||||||
</file>
|
|
||||||
</editor-bookmarks>
|
</editor-bookmarks>
|
||||||
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
||||||
<group>
|
<group>
|
||||||
<file>file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/SIM7080GInterface.c</file>
|
<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>
|
<file>file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/ATCmdInterpreter.c</file>
|
||||||
<file>file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/InternalUart.c</file>
|
|
||||||
<file>file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/TemperatureSensor.c</file>
|
|
||||||
<file>file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/Terminal.h</file>
|
|
||||||
<file>file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/LCDCtrl.c</file>
|
|
||||||
<file>file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/SIM7080GInterface.h</file>
|
<file>file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/SIM7080GInterface.h</file>
|
||||||
<file>file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/Syslog.c</file>
|
<file>file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/winc3400_142/driver/source/nmspi.c</file>
|
||||||
|
<file>file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/LoraNetworkInterface.c</file>
|
||||||
|
<file>file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/ATCmdInterpreter.h</file>
|
||||||
</group>
|
</group>
|
||||||
</open-files>
|
</open-files>
|
||||||
</project-private>
|
</project-private>
|
||||||
|
|||||||
Reference in New Issue
Block a user