LTE... sur le bord de foutre le bordel ;)
This commit is contained in:
@@ -180,6 +180,14 @@ int AnalyzeNewATString(char* Str, int StrLen, int CurCmd)
|
||||
}
|
||||
case LTE_MODULE_TX_DATA_CMD:
|
||||
{
|
||||
if(strncmp(mInputString,"OK",2) == 0) //The command was executed
|
||||
{
|
||||
LTECmdResponseReceived(CurCmd,LTE_MODULE_RESULT_OK);
|
||||
}
|
||||
else if(strncmp(mInputString,"ERROR",5) == 0) //The command was not executed
|
||||
{
|
||||
LTECmdResponseReceived(CurCmd,LTE_MODULE_RESULT_ERROR);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "Syslog.h"
|
||||
#include "WiFiCtrl.h"
|
||||
#include "ATCmdInterpreter.h"
|
||||
#include "ProtocolDefs.h"
|
||||
|
||||
static BYTE mActivateNetworkCmd[] = "AT+CNACT=0,1\r";
|
||||
static BYTE mDisconnectNetworkCmd[] = "AT+CNACT=0,0\r";
|
||||
@@ -13,6 +14,8 @@ static BYTE mConnectToMasterCmd[] = "AT+CAOPEN=0,0,\"TCP\",\"grosgin.myftp.org\"
|
||||
static BYTE mDisconnectFromMasterCmd[] = "AT+CACLOSE=0\r";
|
||||
static BYTE mReceiveDataCmd[] = "AT+CARECV=0,100\r";
|
||||
|
||||
char mMasterTxBuffer[MAX_MESSAGE_SIZE];
|
||||
int mMasterTxSize;
|
||||
|
||||
int mLTEModuleSMState;
|
||||
int mLTEModuleOperationSMState;
|
||||
@@ -178,7 +181,11 @@ void LTEModuleNewData(unsigned char Data)
|
||||
|
||||
if(Data != '\r')
|
||||
{
|
||||
if(mNbCmdCharsReceived < LTE_MODULE_MAX_CMD_LENGTH)
|
||||
if(mLTEModuleOperationSMState == LTE_MODULE_OPERATION_SENDING_DATA_STATE && Data == '>')
|
||||
{
|
||||
LTESendMasterBufferToModule();
|
||||
}
|
||||
else if(mNbCmdCharsReceived < LTE_MODULE_MAX_CMD_LENGTH)
|
||||
{
|
||||
mATCmd[mNbCmdCharsReceived] = Data;
|
||||
mNbCmdCharsReceived++;
|
||||
@@ -273,10 +280,11 @@ void SendDataToLteModule(char *Data, int Size)
|
||||
{
|
||||
if(mPICSerialDebugEnabled)
|
||||
{
|
||||
char *ptr = Data;
|
||||
int i;
|
||||
for(i = 0; i < Size; i++)
|
||||
{
|
||||
SyslogNewByte(*Data++);
|
||||
SyslogNewByte(*ptr++);
|
||||
}
|
||||
}
|
||||
UartTransmitData(LTE_IF_UART_PORT,Data,Size);
|
||||
@@ -384,6 +392,15 @@ void LTECmdResponseReceived(int Cmd, int Result)
|
||||
}
|
||||
case LTE_MODULE_TX_DATA_CMD:
|
||||
{
|
||||
if(Result == LTE_MODULE_RESULT_OK)
|
||||
{
|
||||
LTEModuleOperationSM(LTE_MODULE_OP_MASTER_DATA_SENT_EVENT);
|
||||
}
|
||||
else if(Result == LTE_MODULE_RESULT_ERROR)
|
||||
{
|
||||
//TODO: Manage a TX error...
|
||||
LTEModuleOperationSM(LTE_MODULE_OP_MASTER_DATA_SENT_EVENT);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -393,12 +410,12 @@ void LTEModuleAPNConnectionStatus(int Status)
|
||||
if(Status == LTE_MODULE_APN_CONNECTED)
|
||||
{
|
||||
mAPNConnected = true;
|
||||
SyslogNewString("APN connected\n");
|
||||
// SyslogNewString("APN connected\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
mAPNConnected = false;
|
||||
SyslogNewString("APN disconnected\n");
|
||||
// SyslogNewString("APN disconnected\n");
|
||||
}
|
||||
}
|
||||
void LTEModuleMasterConnectionStatus(int Status)
|
||||
@@ -406,18 +423,18 @@ void LTEModuleMasterConnectionStatus(int Status)
|
||||
if(Status == LTE_MODULE_MASTER_CONNECTED)
|
||||
{
|
||||
mMasterConnected = true;
|
||||
SyslogNewString("Master connected\n");
|
||||
// SyslogNewString("Master connected\n");
|
||||
}
|
||||
else if(Status == LTE_MODULE_MASTER_SOCKET_ERROR)
|
||||
{
|
||||
mMasterConnected = false;
|
||||
mMasterSocketError = true;
|
||||
SyslogNewString("Master socket error\n");
|
||||
// SyslogNewString("Master socket error\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
mMasterConnected = false;
|
||||
SyslogNewString("Master disconnected\n");
|
||||
// SyslogNewString("Master disconnected\n");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -494,6 +511,7 @@ void LTEModuleOperationSM(int OperationEvent)
|
||||
{
|
||||
mCurrentCmd = LTE_MODULE_NO_CMD;
|
||||
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_STANDBY_STATE;
|
||||
TimerStart(LTE_MODULE_TIMER,LTE_MODULE_CONNECTION_CHECK_TIMEOUT);
|
||||
}
|
||||
if(OperationEvent == LTE_MODULE_OP_SERVER_DISCONNECTED_EVENT)
|
||||
{
|
||||
@@ -501,6 +519,7 @@ void LTEModuleOperationSM(int OperationEvent)
|
||||
|
||||
mCurrentCmd = LTE_MODULE_NO_CMD;
|
||||
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_STANDBY_STATE;
|
||||
TimerStart(LTE_MODULE_TIMER,LTE_MODULE_CONNECTION_CHECK_TIMEOUT);
|
||||
}
|
||||
if(OperationEvent == LTE_MODULE_OP_SERVER_CONN_FAILED_EVENT)
|
||||
{
|
||||
@@ -535,8 +554,10 @@ void LTEModuleOperationSM(int OperationEvent)
|
||||
{
|
||||
if(mMasterConnected == true) //All is good for now...
|
||||
{
|
||||
char tmp[] = "Ca marche\n\r";
|
||||
mNbMasterReconnectCount = 0;
|
||||
TimerStart(LTE_MODULE_TIMER,LTE_MODULE_CONNECTION_CHECK_TIMEOUT);
|
||||
LTESendDataToMaster(tmp,strlen(tmp));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -547,7 +568,7 @@ void LTEModuleOperationSM(int OperationEvent)
|
||||
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");
|
||||
// SyslogNewString("Master reconnection attempt\n");
|
||||
}
|
||||
else //We tried 10 times, check the APN
|
||||
{
|
||||
@@ -555,7 +576,7 @@ void LTEModuleOperationSM(int OperationEvent)
|
||||
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");
|
||||
// SyslogNewString("Master reconnection attempt count reached.. checking APN\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -600,11 +621,19 @@ void LTEModuleOperationSM(int OperationEvent)
|
||||
}
|
||||
}
|
||||
}
|
||||
if(OperationEvent == LTE_MODULE_OP_MASTER_DATA_READY_EVENT)
|
||||
else if(OperationEvent == LTE_MODULE_OP_MASTER_DATA_READY_EVENT)
|
||||
{
|
||||
LTESendCommandToModule(LTE_MODULE_RX_DATA_CMD);
|
||||
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_WAIT_FOR_DATA_STATE;
|
||||
}
|
||||
else if(OperationEvent == LTE_MODULE_OP_MASTER_SEND_DATA_REQUEST_EVENT)
|
||||
{
|
||||
if(mMasterConnected == true)
|
||||
{
|
||||
LTESendCommandToModule(LTE_MODULE_TX_DATA_CMD);
|
||||
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_SENDING_DATA_STATE;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case LTE_MODULE_OPERATION_WAIT_FOR_DATA_STATE:
|
||||
@@ -621,6 +650,19 @@ void LTEModuleOperationSM(int OperationEvent)
|
||||
|
||||
break;
|
||||
}
|
||||
case LTE_MODULE_OPERATION_SENDING_DATA_STATE:
|
||||
{
|
||||
if(OperationEvent == LTE_MODULE_OP_TICK_EVENT)
|
||||
{
|
||||
//TODO: manage timeouts
|
||||
}
|
||||
if(OperationEvent == LTE_MODULE_OP_MASTER_DATA_SENT_EVENT)
|
||||
{
|
||||
mCurrentCmd = LTE_MODULE_NO_CMD;
|
||||
mLTEModuleOperationSMState = LTE_MODULE_OPERATION_STANDBY_STATE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -672,6 +714,10 @@ int LTESendCommandToModule(int Cmd)
|
||||
}
|
||||
case LTE_MODULE_TX_DATA_CMD:
|
||||
{
|
||||
char Cmd[25];
|
||||
sprintf(Cmd,"AT+CASEND=0,%d\r",mMasterTxSize);
|
||||
mCurrentCmd = LTE_MODULE_TX_DATA_CMD;
|
||||
SendDataToLteModule(Cmd,strlen(Cmd));
|
||||
break;
|
||||
}
|
||||
case LTE_MODULE_CHECK_APN_CONNECTION_CMD:
|
||||
@@ -704,4 +750,29 @@ void LTEModuleMasterCtrlCommStatus(bool Offline)
|
||||
}
|
||||
// else
|
||||
// mMasterConnected = true;
|
||||
}
|
||||
|
||||
//This is the function to call from outside to send data to the server
|
||||
int LTESendDataToMaster(char *Buffer, int Size)
|
||||
{
|
||||
if(Size > MAX_MESSAGE_SIZE)
|
||||
{
|
||||
return RET_ERROR;
|
||||
}
|
||||
if(mMasterConnected == false)
|
||||
{
|
||||
return RET_ERROR;
|
||||
}
|
||||
|
||||
memcpy(mMasterTxBuffer,Buffer,Size);
|
||||
mMasterTxSize = Size;
|
||||
LTEModuleOperationSM(LTE_MODULE_OP_MASTER_SEND_DATA_REQUEST_EVENT);
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
//The module is ready... send the payload so it can transmit it to the master
|
||||
int LTESendMasterBufferToModule()
|
||||
{
|
||||
SendDataToLteModule(mMasterTxBuffer,mMasterTxSize);
|
||||
return RET_OK;
|
||||
}
|
||||
@@ -88,6 +88,7 @@ enum eLTEModuleOperationStates
|
||||
LTE_MODULE_OPERATION_WAIT_DISCONNECT_SERVER_STATE,
|
||||
LTE_MODULE_OPERATION_STANDBY_STATE,
|
||||
LTE_MODULE_OPERATION_WAIT_FOR_DATA_STATE,
|
||||
LTE_MODULE_OPERATION_SENDING_DATA_STATE,
|
||||
|
||||
LTE_MODULE_OPERATION_MAX_STATE
|
||||
};
|
||||
@@ -115,6 +116,8 @@ enum eLTEModuleOperationSMEvents
|
||||
LTE_MODULE_OP_CMD_RESP_RECEIVED_EVENT,
|
||||
LTE_MODULE_OP_MASTER_DATA_READY_EVENT,
|
||||
LTE_MODULE_OP_MASTER_DATA_RECEIVED_EVENT,
|
||||
LTE_MODULE_OP_MASTER_SEND_DATA_REQUEST_EVENT,
|
||||
LTE_MODULE_OP_MASTER_DATA_SENT_EVENT,
|
||||
|
||||
LTE_MODULE_OP_MAX_EVENT
|
||||
};
|
||||
@@ -133,6 +136,8 @@ int LTEEnableSerialDebug(bool EnModule, bool EnPic);
|
||||
int LTESendCommandToModule(int Command);
|
||||
void SendDataToLteModule(char *Data, int Size);
|
||||
int LTEModuleReset();
|
||||
int LTESendDataToMaster(char *Buffer, int Size);
|
||||
int LTESendMasterBufferToModule();
|
||||
|
||||
void LTECmdResponseReceived(int Cmd, int Result);
|
||||
void LTEModuleAPNConnectionStatus(int Status);
|
||||
|
||||
Binary file not shown.
+1265
-1259
File diff suppressed because it is too large
Load Diff
BIN
Binary file not shown.
+6848
-6812
File diff suppressed because it is too large
Load Diff
+1245
-1236
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
#
|
||||
#Mon Dec 30 11:27:34 EST 2024
|
||||
#Mon Dec 30 11:51:17 EST 2024
|
||||
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
|
||||
|
||||
@@ -1,27 +1,6 @@
|
||||
<?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="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>
|
||||
<url>Source/BootloaderInterface.c</url>
|
||||
<bookmark id="5">
|
||||
@@ -35,15 +14,32 @@
|
||||
<key/>
|
||||
</bookmark>
|
||||
</file>
|
||||
<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>426</line>
|
||||
<key/>
|
||||
</bookmark>
|
||||
<bookmark id="9">
|
||||
<name/>
|
||||
<line>527</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/ATCmdInterpreter.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/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>
|
||||
</open-files>
|
||||
</project-private>
|
||||
|
||||
Reference in New Issue
Block a user