LTE... sur le bord de foutre le bordel ;)
This commit is contained in:
parent
cfed167881
commit
460a19c557
@ -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.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
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>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user