Développement module LTE
This commit is contained in:
parent
fc54e7cb98
commit
d1c1f053c5
@ -41,12 +41,7 @@ extern "C" {
|
|||||||
#define HEARTBEAT_LED_1_CLEAR_REG LATECLR
|
#define HEARTBEAT_LED_1_CLEAR_REG LATECLR
|
||||||
#define HEARTBEAT_LED_1_TOGGLE_MASK _LATE_LATE5_MASK
|
#define HEARTBEAT_LED_1_TOGGLE_MASK _LATE_LATE5_MASK
|
||||||
|
|
||||||
//#define LORA_ACTIVITY_LED_PIN_DIR TRISFbits.TRISF1
|
|
||||||
//#define LORA_ACTIVITY_LED_PIN LATFbits.LATF1
|
|
||||||
//#define LORA_ACTIVITY_LED_TOGGLE_REG LATFINV
|
|
||||||
//#define LORA_ACTIVITY_LED_SET_REG LATFSET
|
|
||||||
//#define LORA_ACTIVITY_LED_CLEAR_REG LATFCLR
|
|
||||||
//#define LORA_ACTIVITY_LED_TOGGLE_MASK _LATE_LATF1_MASK
|
|
||||||
|
|
||||||
// #define GP_DEBUG_1_PIN_DIR TRISEbits.TRISE5
|
// #define GP_DEBUG_1_PIN_DIR TRISEbits.TRISE5
|
||||||
// #define GP_DEBUG_1_PIN LATEbits.LATE5
|
// #define GP_DEBUG_1_PIN LATEbits.LATE5
|
||||||
@ -129,15 +124,22 @@ extern "C" {
|
|||||||
#define LORA_MODULE_M1_PIN LATDbits.LATD9
|
#define LORA_MODULE_M1_PIN LATDbits.LATD9
|
||||||
#define LORA_MODULE_INT_PIN_DIR TRISDbits.TRISD8
|
#define LORA_MODULE_INT_PIN_DIR TRISDbits.TRISD8
|
||||||
#define LORA_MODULE_INT_PIN PORTDbits.RD8
|
#define LORA_MODULE_INT_PIN PORTDbits.RD8
|
||||||
//#define LORA_MODULE_RX_LED_PIN_DIR TRISCbits.TRISC14
|
//#define LORA_MODULE_RX_LED_PIN_DIR TRISCbits.TRISC14
|
||||||
//#define LORA_MODULE_RX_LED_PIN LATCbits.LATC14
|
//#define LORA_MODULE_RX_LED_PIN LATCbits.LATC14
|
||||||
//#define LORA_MODULE_TX_LED_PIN_DIR TRISCbits.TRISC13
|
//#define LORA_MODULE_TX_LED_PIN_DIR TRISCbits.TRISC13
|
||||||
//#define LORA_MODULE_TX_LED_PIN LATCbits.LATC13
|
//#define LORA_MODULE_TX_LED_PIN LATCbits.LATC13
|
||||||
#define LORA_MODULE_RX_LED_PIN_DIR TRISCbits.TRISC14
|
#define LORA_MODULE_RX_LED_PIN_DIR TRISCbits.TRISC14
|
||||||
#define LORA_MODULE_RX_LED_PIN LATCbits.LATC14
|
#define LORA_MODULE_RX_LED_PIN LATCbits.LATC14
|
||||||
#define LORA_MODULE_TX_LED_PIN_DIR TRISCbits.TRISC13
|
#define LORA_MODULE_TX_LED_PIN_DIR TRISCbits.TRISC13
|
||||||
#define LORA_MODULE_TX_LED_PIN LATCbits.LATC13
|
#define LORA_MODULE_TX_LED_PIN LATCbits.LATC13
|
||||||
|
|
||||||
|
// SIMCOM LTE Module
|
||||||
|
#define LTE_MODULE_TX_LED_PIN_DIR TRISFbits.TRISF1
|
||||||
|
#define LTE_MODULE_TX_LED_PIN LATFbits.LATF1
|
||||||
|
#define LTE_MODULE_RX_LED_PIN_DIR TRISBbits.TRISB4
|
||||||
|
#define LTE_MODULE_RX_LED_PIN LATBbits.LATB4
|
||||||
|
#define LTE_MODULE_PWR_PIN_DIR TRISDbits.TRISD10
|
||||||
|
#define LTE_MODULE_PWR_PIN LATDbits.LATD10
|
||||||
|
|
||||||
//LCD Screen
|
//LCD Screen
|
||||||
#define LCD_RS_PIN_DIR TRISDbits.TRISD5
|
#define LCD_RS_PIN_DIR TRISDbits.TRISD5
|
||||||
|
|||||||
@ -132,6 +132,14 @@ int InitBoard()
|
|||||||
// AD1CON1bits.SAMP = 1;
|
// AD1CON1bits.SAMP = 1;
|
||||||
|
|
||||||
|
|
||||||
|
////////////////LTE MODULE /////////////
|
||||||
|
LTE_MODULE_TX_LED_PIN_DIR = PIN_OUTPUT;
|
||||||
|
LTE_MODULE_TX_LED_PIN = LED_OFF;
|
||||||
|
LTE_MODULE_RX_LED_PIN_DIR = PIN_OUTPUT;
|
||||||
|
LTE_MODULE_RX_LED_PIN = LED_OFF;
|
||||||
|
LTE_MODULE_PWR_PIN_DIR = PIN_OUTPUT;
|
||||||
|
LTE_MODULE_PWR_PIN = 1;
|
||||||
|
|
||||||
//////////////// LORA //////////////////
|
//////////////// LORA //////////////////
|
||||||
LORA_MODULE_RELAY_PIN_DIR = PIN_OUTPUT;
|
LORA_MODULE_RELAY_PIN_DIR = PIN_OUTPUT;
|
||||||
LORA_MODULE_RELAY_PIN = 0;
|
LORA_MODULE_RELAY_PIN = 0;
|
||||||
|
|||||||
@ -1,26 +1,26 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* *
|
* *
|
||||||
* Copyright 2010 Rheinmetall Canada Inc. *
|
* Copyright 2010 Rheinmetall Canada Inc. *
|
||||||
* *
|
* *
|
||||||
* No part of this document may be reproduced, stored in *
|
* No part of this document may be reproduced, stored in *
|
||||||
* a retrieval system, or transmitted, in any form or by any means, *
|
* a retrieval system, or transmitted, in any form or by any means, *
|
||||||
* electronic, mechanical, photocopying, recording, or otherwise, *
|
* electronic, mechanical, photocopying, recording, or otherwise, *
|
||||||
* without the prior written permission of Rheinmetall Canada Inc. *
|
* without the prior written permission of Rheinmetall Canada Inc. *
|
||||||
* *
|
* *
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
/*
|
/*
|
||||||
Description:
|
Description:
|
||||||
This is a template file for standard C code file.
|
This is a template file for standard C code file.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
/* ¤Revision:
|
/* ¤Revision:
|
||||||
000 20100616 JFM,
|
000 20100616 JFM,
|
||||||
Original version.
|
Original version.
|
||||||
|
|
||||||
### YYYYMMDD Initial, Bug Identification
|
### YYYYMMDD Initial, Bug Identification
|
||||||
Change description.
|
Change description.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
@ -47,24 +47,24 @@ void InternalUartInit(void)
|
|||||||
{
|
{
|
||||||
//Setup port 1
|
//Setup port 1
|
||||||
//
|
//
|
||||||
// U1MODEbits.ON = 0; //disable module
|
// U1MODEbits.ON = 0; //disable module
|
||||||
// U1STA = 0;
|
// U1STA = 0;
|
||||||
// U1STAbits.UTXEN = 0; //disable transmitter
|
// U1STAbits.UTXEN = 0; //disable transmitter
|
||||||
// IPC6bits.U1IP = 7; //priority 7
|
// IPC6bits.U1IP = 7; //priority 7
|
||||||
// IPC6bits.U1IS = 3; //sub-priority 3
|
// IPC6bits.U1IS = 3; //sub-priority 3
|
||||||
// U1STAbits.UTXSEL = 0b01; //interrupt when all characters are transmitted
|
// U1STAbits.UTXSEL = 0b01; //interrupt when all characters are transmitted
|
||||||
//// U1STAbits.UTXSEL = 0b01; // //JFM 2012-08-27
|
//// U1STAbits.UTXSEL = 0b01; // //JFM 2012-08-27
|
||||||
// IFS0bits.U1TXIF = 0; //clear interrupt flag
|
// IFS0bits.U1TXIF = 0; //clear interrupt flag
|
||||||
// IEC0bits.U1TXIE = 1; //enable tx interrupt
|
// IEC0bits.U1TXIE = 1; //enable tx interrupt
|
||||||
// U1STAbits.URXISEL = 0b00; //interrupt for each character received
|
// U1STAbits.URXISEL = 0b00; //interrupt for each character received
|
||||||
// IFS0bits.U1RXIF = 0;
|
// IFS0bits.U1RXIF = 0;
|
||||||
//#ifdef POLL_UART1_RX
|
//#ifdef POLL_UART1_RX
|
||||||
// IEC0bits.U1RXIE = 0; //disable rx interrupts
|
// IEC0bits.U1RXIE = 0; //disable rx interrupts
|
||||||
//#else
|
//#else
|
||||||
// IEC0bits.U1RXIE = 1; //enable rx interrupts
|
// IEC0bits.U1RXIE = 1; //enable rx interrupts
|
||||||
//#endif
|
//#endif
|
||||||
// U1STAbits.URXEN = 1; //enable receiver
|
// U1STAbits.URXEN = 1; //enable receiver
|
||||||
// U1MODEbits.ON = 0; //disable module
|
// U1MODEbits.ON = 0; //disable module
|
||||||
|
|
||||||
//Setup port 2
|
//Setup port 2
|
||||||
//
|
//
|
||||||
@ -72,7 +72,7 @@ void InternalUartInit(void)
|
|||||||
U2STA = 0;
|
U2STA = 0;
|
||||||
U2STAbits.UTXEN = 0; //disable transmitter
|
U2STAbits.UTXEN = 0; //disable transmitter
|
||||||
IPC8bits.U2IP = 7; //priority 7
|
IPC8bits.U2IP = 7; //priority 7
|
||||||
IPC8bits.U2IS = 0; //sub-priority 2
|
IPC8bits.U2IS = 2; //sub-priority 2
|
||||||
U2STAbits.UTXSEL = 0b01; //interrupt when all characters are transmitted
|
U2STAbits.UTXSEL = 0b01; //interrupt when all characters are transmitted
|
||||||
IFS1bits.U2TXIF = 0; //clear interrupt flag
|
IFS1bits.U2TXIF = 0; //clear interrupt flag
|
||||||
IEC1bits.U2TXIE = 0; //enable tx interrupt
|
IEC1bits.U2TXIE = 0; //enable tx interrupt
|
||||||
@ -86,8 +86,29 @@ void InternalUartInit(void)
|
|||||||
U2STAbits.URXEN = 1; //enable receiver
|
U2STAbits.URXEN = 1; //enable receiver
|
||||||
U2STAbits.UTXEN = 1;
|
U2STAbits.UTXEN = 1;
|
||||||
U2MODEbits.ON = 0; //disable module
|
U2MODEbits.ON = 0; //disable module
|
||||||
|
|
||||||
|
|
||||||
|
//Setup port 5
|
||||||
|
//
|
||||||
|
U5MODEbits.ON = 0; //disable module
|
||||||
|
U5STA = 0;
|
||||||
|
U5STAbits.UTXEN = 0; //disable transmitter
|
||||||
|
IPC12bits.U5IP = 7; //priority 7
|
||||||
|
IPC12bits.U5IS = 1; //sub-priority 1
|
||||||
|
U5STAbits.UTXSEL = 0b01; //interrupt when all characters are transmitted
|
||||||
|
IFS2bits.U5TXIF = 0; //clear interrupt flag
|
||||||
|
IEC2bits.U5TXIE = 0; //enable tx interrupt
|
||||||
|
U5STAbits.URXISEL = 0b00; //interrupt for each character received
|
||||||
|
IFS2bits.U5RXIF = 0;
|
||||||
|
#ifdef POLL_UART2_RX
|
||||||
|
IEC1bits.U2RXIE = 0; //disable rx interrupts
|
||||||
|
#else
|
||||||
|
IEC2bits.U5RXIE = 1; //enable rx interrupts
|
||||||
|
#endif
|
||||||
|
U5STAbits.URXEN = 1; //enable receiver
|
||||||
|
U5STAbits.UTXEN = 1;
|
||||||
|
U5MODEbits.ON = 0; //disable module
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
for(i = 0; i < MAX_INTERNAL_UART_PORT; i++)
|
for(i = 0; i < MAX_INTERNAL_UART_PORT; i++)
|
||||||
{
|
{
|
||||||
@ -170,7 +191,7 @@ int OpenInternalPort(int p_iUartPort,int p_iUartHandle,char *p_pcHeadPtr, char *
|
|||||||
{
|
{
|
||||||
if(p_iUartPort > MAX_INTERNAL_UART_PORT)
|
if(p_iUartPort > MAX_INTERNAL_UART_PORT)
|
||||||
return UART_INVALID_PORT;
|
return UART_INVALID_PORT;
|
||||||
|
|
||||||
int iBRG = (PERIPHERAL_FREQ/(4*p_iBaudRate)) - 1;
|
int iBRG = (PERIPHERAL_FREQ/(4*p_iBaudRate)) - 1;
|
||||||
int iMask = 0;
|
int iMask = 0;
|
||||||
|
|
||||||
@ -219,20 +240,30 @@ int OpenInternalPort(int p_iUartPort,int p_iUartHandle,char *p_pcHeadPtr, char *
|
|||||||
U1MODEbits.ON = 1; //enable module
|
U1MODEbits.ON = 1; //enable module
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case INTERNAL_UART_PORT_2:
|
case INTERNAL_UART_PORT_2:
|
||||||
|
{
|
||||||
|
INTERNAL_UART2_TX_PIN_DIR = PIN_OUTPUT;
|
||||||
|
INTERNAL_UART2_TX_PIN = 1;
|
||||||
|
U2MODE = iMask;
|
||||||
|
U2MODEbits.BRGH = 1;
|
||||||
|
U2BRG = iBRG;
|
||||||
|
U2MODEbits.ON = 1; //enable module
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case INTERNAL_UART_PORT_5:
|
||||||
{
|
{
|
||||||
INTERNAL_UART2_TX_PIN_DIR = PIN_OUTPUT;
|
INTERNAL_UART5_TX_PIN_DIR = PIN_OUTPUT;
|
||||||
INTERNAL_UART2_TX_PIN = 1;
|
INTERNAL_UART5_TX_PIN = 1;
|
||||||
U2MODE = iMask;
|
U5MODE = iMask;
|
||||||
U2MODEbits.BRGH = 1;
|
U5MODEbits.BRGH = 1;
|
||||||
U2BRG = iBRG;
|
U5BRG = iBRG;
|
||||||
U2MODEbits.ON = 1; //enable module
|
U5MODEbits.ON = 1; //enable module
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
astInternalUartData[p_iUartPort].iIsOpened = 1;
|
astInternalUartData[p_iUartPort].iIsOpened = 1;
|
||||||
|
|
||||||
return UART_OK;
|
return UART_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -257,7 +288,7 @@ int SendInternalUartData(char *p_pcDataBuf, int p_iDataSize, int p_iUartPort, ch
|
|||||||
//if(p_stUartDataPtr->iNbFIFOPendingBytes != 0) //If FIFO not empty
|
//if(p_stUartDataPtr->iNbFIFOPendingBytes != 0) //If FIFO not empty
|
||||||
if(p_stUartDataPtr->iIsBusy == 1)
|
if(p_stUartDataPtr->iIsBusy == 1)
|
||||||
return UART_PORT_BUSY; //no space is available so flag the port as BUSY...
|
return UART_PORT_BUSY; //no space is available so flag the port as BUSY...
|
||||||
|
|
||||||
iBufSize = p_iDataSize;
|
iBufSize = p_iDataSize;
|
||||||
if(iBufSize > INTERNAL_UART_BUFFER_DEPTH)
|
if(iBufSize > INTERNAL_UART_BUFFER_DEPTH)
|
||||||
iBufSize = INTERNAL_UART_BUFFER_DEPTH;
|
iBufSize = INTERNAL_UART_BUFFER_DEPTH;
|
||||||
@ -293,7 +324,7 @@ int SendInternalUartData(char *p_pcDataBuf, int p_iDataSize, int p_iUartPort, ch
|
|||||||
int i;
|
int i;
|
||||||
for(i = 0; i < iBufSize; i++)
|
for(i = 0; i < iBufSize; i++)
|
||||||
{
|
{
|
||||||
// KickWatchdog();
|
// KickWatchdog();
|
||||||
U1TXREG = *p_stUartDataPtr->pcTxDataPtr++;
|
U1TXREG = *p_stUartDataPtr->pcTxDataPtr++;
|
||||||
while(U1STAbits.TRMT == 0);
|
while(U1STAbits.TRMT == 0);
|
||||||
}
|
}
|
||||||
@ -302,23 +333,47 @@ int SendInternalUartData(char *p_pcDataBuf, int p_iDataSize, int p_iUartPort, ch
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case INTERNAL_UART_PORT_2:
|
case INTERNAL_UART_PORT_2:
|
||||||
|
{
|
||||||
|
if(IEC1bits.U2TXIE)
|
||||||
|
{
|
||||||
|
//We consider at this point that the data has been sent for the upper layer.
|
||||||
|
DataSentNotification(p_stUartDataPtr->iUartHandle,iBufSize);
|
||||||
|
U2STAbits.UTXEN = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for(i = 0; i < iBufSize; i++)
|
||||||
|
{
|
||||||
|
// KickWatchdog();
|
||||||
|
U2TXREG = *p_stUartDataPtr->pcTxDataPtr++;
|
||||||
|
while(U2STAbits.TRMT == 0);
|
||||||
|
LORA_MODULE_TX_LED_PIN = ~ LORA_MODULE_TX_LED_PIN;
|
||||||
|
}
|
||||||
|
p_stUartDataPtr->iIsBusy = 0;
|
||||||
|
DataSentNotification(p_stUartDataPtr->iUartHandle,iBufSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case INTERNAL_UART_PORT_5:
|
||||||
{
|
{
|
||||||
if(IEC1bits.U2TXIE)
|
if(IEC2bits.U5TXIE)
|
||||||
{
|
{
|
||||||
//We consider at this point that the data has been sent for the upper layer.
|
//We consider at this point that the data has been sent for the upper layer.
|
||||||
DataSentNotification(p_stUartDataPtr->iUartHandle,iBufSize);
|
DataSentNotification(p_stUartDataPtr->iUartHandle,iBufSize);
|
||||||
U2STAbits.UTXEN = 1;
|
U5STAbits.UTXEN = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for(i = 0; i < iBufSize; i++)
|
for(i = 0; i < iBufSize; i++)
|
||||||
{
|
{
|
||||||
// KickWatchdog();
|
// KickWatchdog();
|
||||||
U2TXREG = *p_stUartDataPtr->pcTxDataPtr++;
|
U5TXREG = *p_stUartDataPtr->pcTxDataPtr++;
|
||||||
while(U2STAbits.TRMT == 0);
|
while(U5STAbits.TRMT == 0);
|
||||||
LORA_MODULE_TX_LED_PIN = ~ LORA_MODULE_TX_LED_PIN;
|
LTE_MODULE_TX_LED_PIN = ~ LTE_MODULE_TX_LED_PIN;
|
||||||
}
|
}
|
||||||
p_stUartDataPtr->iIsBusy = 0;
|
p_stUartDataPtr->iIsBusy = 0;
|
||||||
DataSentNotification(p_stUartDataPtr->iUartHandle,iBufSize);
|
DataSentNotification(p_stUartDataPtr->iUartHandle,iBufSize);
|
||||||
@ -334,24 +389,64 @@ int SendInternalUartData(char *p_pcDataBuf, int p_iDataSize, int p_iUartPort, ch
|
|||||||
int SendInternalUartDataBlocking(char *p_pcDataBuf, int p_iDataSize, int p_iUartPort)
|
int SendInternalUartDataBlocking(char *p_pcDataBuf, int p_iDataSize, int p_iUartPort)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int temp = IEC1;
|
|
||||||
IEC1bits.U2TXIE = 0;
|
switch(p_iUartPort)
|
||||||
for(i = 0; i < p_iDataSize; i++)
|
{
|
||||||
{
|
case INTERNAL_UART_PORT_1:
|
||||||
LORA_MODULE_TX_LED_PIN = ~ LORA_MODULE_TX_LED_PIN;
|
{
|
||||||
U2TXREG = *p_pcDataBuf++;
|
int temp = IEC1;
|
||||||
while(U2STAbits.TRMT == 0);
|
IEC0bits.U1TXIE = 0;
|
||||||
|
for(i = 0; i < p_iDataSize; i++)
|
||||||
|
{
|
||||||
|
// LORA_MODULE_TX_LED_PIN = ~ LORA_MODULE_TX_LED_PIN;
|
||||||
|
U1TXREG = *p_pcDataBuf++;
|
||||||
|
while(U1STAbits.TRMT == 0);
|
||||||
|
}
|
||||||
|
// LORA_MODULE_TX_LED_PIN = LED_OFF;
|
||||||
|
IFS0bits.U1TXIF = 0;
|
||||||
|
IEC1 = temp;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case INTERNAL_UART_PORT_2:
|
||||||
|
{
|
||||||
|
int temp = IEC1;
|
||||||
|
IEC1bits.U2TXIE = 0;
|
||||||
|
for(i = 0; i < p_iDataSize; i++)
|
||||||
|
{
|
||||||
|
LORA_MODULE_TX_LED_PIN = ~ LORA_MODULE_TX_LED_PIN;
|
||||||
|
U2TXREG = *p_pcDataBuf++;
|
||||||
|
while(U2STAbits.TRMT == 0);
|
||||||
|
}
|
||||||
|
LORA_MODULE_TX_LED_PIN = LED_OFF;
|
||||||
|
IFS1bits.U2TXIF = 0;
|
||||||
|
IEC1 = temp;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case INTERNAL_UART_PORT_5:
|
||||||
|
{
|
||||||
|
int temp = IEC2;
|
||||||
|
IEC2bits.U5TXIE = 0;
|
||||||
|
for(i = 0; i < p_iDataSize; i++)
|
||||||
|
{
|
||||||
|
LTE_MODULE_TX_LED_PIN = ~ LTE_MODULE_TX_LED_PIN;
|
||||||
|
U2TXREG = *p_pcDataBuf++;
|
||||||
|
while(U5STAbits.TRMT == 0);
|
||||||
|
}
|
||||||
|
LTE_MODULE_TX_LED_PIN = LED_OFF;
|
||||||
|
IFS2bits.U5TXIF = 0;
|
||||||
|
IEC2 = temp;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
LORA_MODULE_TX_LED_PIN = LED_OFF;
|
|
||||||
IFS1bits.U2TXIF = 0;
|
|
||||||
IEC1 = temp;
|
|
||||||
return UART_OK;
|
return UART_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TickInternalUart(void)
|
void TickInternalUart(void)
|
||||||
{
|
{
|
||||||
#ifdef POLL_UART1_RX
|
#ifdef POLL_UART1_RX
|
||||||
|
|
||||||
if(U1STAbits.URXDA == 1)
|
if(U1STAbits.URXDA == 1)
|
||||||
{
|
{
|
||||||
if(U1STAbits.OERR) //Buffer overrun error. Data is lost.
|
if(U1STAbits.OERR) //Buffer overrun error. Data is lost.
|
||||||
@ -363,14 +458,14 @@ void TickInternalUart(void)
|
|||||||
while(U1STAbits.URXDA && i < INTERNAL_UART_BUFFER_DEPTH)
|
while(U1STAbits.URXDA && i < INTERNAL_UART_BUFFER_DEPTH)
|
||||||
{
|
{
|
||||||
char NewByte = U1RXREG;
|
char NewByte = U1RXREG;
|
||||||
// DriveProtocolRxData(&NewByte,1);
|
// DriveProtocolRxData(&NewByte,1);
|
||||||
acIntUartRxBuff[INTERNAL_UART_PORT_1][i++] = NewByte;
|
acIntUartRxBuff[INTERNAL_UART_PORT_1][i++] = NewByte;
|
||||||
}
|
}
|
||||||
// UartReceiveData(UART_1,&acIntUartRxBuff[INTERNAL_UART_PORT_1][0], i);
|
// UartReceiveData(UART_1,&acIntUartRxBuff[INTERNAL_UART_PORT_1][0], i);
|
||||||
// DriveProtocolRxData(&acIntUartRxBuff[INTERNAL_UART_PORT_1][0], i);
|
// DriveProtocolRxData(&acIntUartRxBuff[INTERNAL_UART_PORT_1][0], i);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef POLL_UART2_RX
|
#ifdef POLL_UART2_RX
|
||||||
if(U2STAbits.URXDA == 1)
|
if(U2STAbits.URXDA == 1)
|
||||||
{
|
{
|
||||||
@ -378,34 +473,34 @@ void TickInternalUart(void)
|
|||||||
while(U2STAbits.URXDA == 1 && i < INTERNAL_UART_BUFFER_DEPTH)
|
while(U2STAbits.URXDA == 1 && i < INTERNAL_UART_BUFFER_DEPTH)
|
||||||
{
|
{
|
||||||
char NewByte = U2RXREG;
|
char NewByte = U2RXREG;
|
||||||
// acIntUartRxBuff[INTERNAL_UART_PORT_2][i++] = NewByte;
|
// acIntUartRxBuff[INTERNAL_UART_PORT_2][i++] = NewByte;
|
||||||
LORA_MODULE_RX_LED_PIN = ~LORA_MODULE_RX_LED_PIN;
|
LORA_MODULE_RX_LED_PIN = ~LORA_MODULE_RX_LED_PIN;
|
||||||
ProtocolAnalyzeNewData(NewByte);
|
ProtocolAnalyzeNewData(NewByte);
|
||||||
|
|
||||||
|
|
||||||
// LoraData <<= 8;
|
// LoraData <<= 8;
|
||||||
// unsigned int toto = NewByte;
|
// unsigned int toto = NewByte;
|
||||||
// toto &= 0x000000FF;
|
// toto &= 0x000000FF;
|
||||||
// LoraData |= toto;
|
// LoraData |= toto;
|
||||||
//
|
//
|
||||||
// if(LoraData == 0xDEADBEEF)
|
// if(LoraData == 0xDEADBEEF)
|
||||||
// {
|
// {
|
||||||
// HEARTBEAT_LED_1_PIN = ~HEARTBEAT_LED_1_PIN;
|
// HEARTBEAT_LED_1_PIN = ~HEARTBEAT_LED_1_PIN;
|
||||||
// LORA_ACTIVITY_LED_PIN = ~LORA_ACTIVITY_LED_PIN;
|
// LORA_ACTIVITY_LED_PIN = ~LORA_ACTIVITY_LED_PIN;
|
||||||
// LoraData = 0;
|
// LoraData = 0;
|
||||||
// }
|
// }
|
||||||
// HEARTBEAT_LED_2_PIN = ~HEARTBEAT_LED_2_PIN;
|
// HEARTBEAT_LED_2_PIN = ~HEARTBEAT_LED_2_PIN;
|
||||||
}
|
}
|
||||||
if(U2STAbits.OERR) //Buffer overrun error. Data is lost.
|
if(U2STAbits.OERR) //Buffer overrun error. Data is lost.
|
||||||
{
|
{
|
||||||
U2STAbits.OERR = 0;
|
U2STAbits.OERR = 0;
|
||||||
printf("Overrun\n");
|
printf("Overrun\n");
|
||||||
}
|
}
|
||||||
// UartReceiveData(UART_2,&acIntUartRxBuff[INTERNAL_UART_PORT_2][0], i);
|
// UartReceiveData(UART_2,&acIntUartRxBuff[INTERNAL_UART_PORT_2][0], i);
|
||||||
// CUProtocolRxData(&acIntUartRxBuff[INTERNAL_UART_PORT_2][0], i);
|
// CUProtocolRxData(&acIntUartRxBuff[INTERNAL_UART_PORT_2][0], i);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@ -434,16 +529,16 @@ void __ISR(_UART_1_VECTOR, ipl7) InternalUart1AInterrupt(void)
|
|||||||
|
|
||||||
}
|
}
|
||||||
while((U1STAbits.UTXBF == 0) && //while there is space in buffer
|
while((U1STAbits.UTXBF == 0) && //while there is space in buffer
|
||||||
(p_acUartDataPtr->iNbFIFOPendingBytes != 0)); //and data to send
|
(p_acUartDataPtr->iNbFIFOPendingBytes != 0)); //and data to send
|
||||||
|
|
||||||
// HCAM
|
// HCAM
|
||||||
// if(p_acUartDataPtr->iNbFIFOPendingBytes == 0)
|
// if(p_acUartDataPtr->iNbFIFOPendingBytes == 0)
|
||||||
// {
|
// {
|
||||||
// // U1STAbits.UTXEN = 0; //all data sent, stop transmitter
|
// // U1STAbits.UTXEN = 0; //all data sent, stop transmitter
|
||||||
// p_acUartDataPtr->iIsBusy = 0;
|
// p_acUartDataPtr->iIsBusy = 0;
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if(IFS0bits.U1RXIF && IEC0bits.U1RXIE)
|
if(IFS0bits.U1RXIF && IEC0bits.U1RXIE)
|
||||||
@ -467,7 +562,7 @@ void __ISR(_UART_1_VECTOR, ipl7) InternalUart1AInterrupt(void)
|
|||||||
NewByte = U1RXREG;
|
NewByte = U1RXREG;
|
||||||
acIntUartRxBuff[INTERNAL_UART_PORT_1][i++] = NewByte;
|
acIntUartRxBuff[INTERNAL_UART_PORT_1][i++] = NewByte;
|
||||||
}
|
}
|
||||||
|
|
||||||
UartReceiveData(p_acUartDataPtr->iUartHandle,&acIntUartRxBuff[INTERNAL_UART_PORT_1][0], i);
|
UartReceiveData(p_acUartDataPtr->iUartHandle,&acIntUartRxBuff[INTERNAL_UART_PORT_1][0], i);
|
||||||
|
|
||||||
|
|
||||||
@ -498,7 +593,7 @@ void __ISR(_UART_2_VECTOR, ipl7) InternalUart2Interrupt(void)
|
|||||||
LORA_MODULE_TX_LED_PIN = ~ LORA_MODULE_TX_LED_PIN;
|
LORA_MODULE_TX_LED_PIN = ~ LORA_MODULE_TX_LED_PIN;
|
||||||
}
|
}
|
||||||
while((U2STAbits.UTXBF == 0) && //while there is space in buffer
|
while((U2STAbits.UTXBF == 0) && //while there is space in buffer
|
||||||
(p_acUartDataPtr->iNbFIFOPendingBytes != 0)); //and data to send
|
(p_acUartDataPtr->iNbFIFOPendingBytes != 0)); //and data to send
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -523,7 +618,57 @@ void __ISR(_UART_2_VECTOR, ipl7) InternalUart2Interrupt(void)
|
|||||||
LORA_MODULE_RX_LED_PIN = ~LORA_MODULE_RX_LED_PIN;
|
LORA_MODULE_RX_LED_PIN = ~LORA_MODULE_RX_LED_PIN;
|
||||||
}
|
}
|
||||||
UartReceiveData(p_acUartDataPtr->iUartHandle,&acIntUartRxBuff[INTERNAL_UART_PORT_2][0], i);
|
UartReceiveData(p_acUartDataPtr->iUartHandle,&acIntUartRxBuff[INTERNAL_UART_PORT_2][0], i);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void __ISR(_UART_5_VECTOR, ipl7) InternalUart5Interrupt(void)
|
||||||
|
{
|
||||||
|
stInternalUartData *p_acUartDataPtr = &astInternalUartData[INTERNAL_UART_PORT_5];
|
||||||
|
if(IFS2bits.U5TXIF && IEC2bits.U5TXIE)
|
||||||
|
{
|
||||||
|
IFS2bits.U5TXIF = 0;
|
||||||
|
//Check if there is still data to send in FIFO
|
||||||
|
if(p_acUartDataPtr->iNbFIFOPendingBytes == 0)
|
||||||
|
{
|
||||||
|
U5STAbits.UTXEN = 0; //all data sent, stop transmitter
|
||||||
|
p_acUartDataPtr->iIsBusy = 0;
|
||||||
|
//LORA_MODULE_TX_LED_PIN = LED_OFF;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
do
|
||||||
|
{
|
||||||
|
U5TXREG = *p_acUartDataPtr->pcTxDataPtr++; //send data
|
||||||
|
p_acUartDataPtr->iNbFIFOPendingBytes--;
|
||||||
|
LTE_MODULE_TX_LED_PIN = ~ LTE_MODULE_TX_LED_PIN;
|
||||||
|
}
|
||||||
|
while((U5STAbits.UTXBF == 0) && //while there is space in buffer
|
||||||
|
(p_acUartDataPtr->iNbFIFOPendingBytes != 0)); //and data to send
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if(IFS2bits.U5RXIF && IEC2bits.U5RXIE)
|
||||||
|
{
|
||||||
|
IFS2bits.U5RXIF = 0;
|
||||||
|
char NewByte;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if(U5STAbits.OERR) //Buffer overrun error. Data is lost.
|
||||||
|
{
|
||||||
|
U5STAbits.OERR = 0;
|
||||||
|
IFS2bits.U5RXIF = 0;
|
||||||
|
printf("UART5 OERR\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
i = 0;
|
||||||
|
while(U5STAbits.URXDA)
|
||||||
|
{
|
||||||
|
NewByte = U5RXREG;
|
||||||
|
acIntUartRxBuff[INTERNAL_UART_PORT_5][i++] = NewByte;
|
||||||
|
LTE_MODULE_RX_LED_PIN = ~LTE_MODULE_RX_LED_PIN;
|
||||||
|
}
|
||||||
|
UartReceiveData(p_acUartDataPtr->iUartHandle,&acIntUartRxBuff[INTERNAL_UART_PORT_5][0], i);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -560,12 +705,12 @@ void ResetUart1(void)
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void ResetUart2(void)
|
void ResetUart2(void)
|
||||||
{
|
{
|
||||||
//Setup port 2
|
//Setup port 2
|
||||||
//
|
//
|
||||||
U2MODEbits.ON = 0; //disable module
|
U2MODEbits.ON = 0; //disable module
|
||||||
|
|
||||||
U2STAbits.UTXEN = 0; //disable transmitter
|
U2STAbits.UTXEN = 0; //disable transmitter
|
||||||
|
|
||||||
IEC1bits.U2TXIE = 0; //disable tx interrupt
|
IEC1bits.U2TXIE = 0; //disable tx interrupt
|
||||||
IFS1bits.U2TXIF = 0; //clear interrupt flag
|
IFS1bits.U2TXIF = 0; //clear interrupt flag
|
||||||
IEC1bits.U2TXIE = 0; //enable tx interrupt
|
IEC1bits.U2TXIE = 0; //enable tx interrupt
|
||||||
@ -586,6 +731,35 @@ void ResetUart2(void)
|
|||||||
U2MODEbits.ON = 1; //disable module
|
U2MODEbits.ON = 1; //disable module
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ResetUart5(void)
|
||||||
|
{
|
||||||
|
//Setup port 2
|
||||||
|
//
|
||||||
|
U5MODEbits.ON = 0; //disable module
|
||||||
|
|
||||||
|
U5STAbits.UTXEN = 0; //disable transmitter
|
||||||
|
|
||||||
|
IEC2bits.U5TXIE = 0; //disable tx interrupt
|
||||||
|
IFS2bits.U5TXIF = 0; //clear interrupt flag
|
||||||
|
IEC2bits.U5TXIE = 0; //enable tx interrupt
|
||||||
|
IEC2bits.U5RXIE = 0; //disable rx interrupts
|
||||||
|
IFS2bits.U5RXIF = 1;
|
||||||
|
#ifdef POLL_UART2_RX
|
||||||
|
IEC2bits.U5RXIE = 0; //disable rx interrupts
|
||||||
|
#else
|
||||||
|
IEC2bits.U5RXIE = 1; //enable rx interrupts
|
||||||
|
#endif
|
||||||
|
U5STAbits.URXEN = 1; //enable receiver
|
||||||
|
|
||||||
|
|
||||||
|
astInternalUartData[INTERNAL_UART_PORT_5].pcTxDataPtr = &astInternalUartData[INTERNAL_UART_PORT_5].acIntUartTxFIFO[0];
|
||||||
|
astInternalUartData[INTERNAL_UART_PORT_5].iTxDataSize = 0;
|
||||||
|
astInternalUartData[INTERNAL_UART_PORT_5].iIsBusy = 0;
|
||||||
|
|
||||||
|
U5MODEbits.ON = 1; //enable module
|
||||||
|
|
||||||
|
}
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
void process(void)
|
void process(void)
|
||||||
|
|||||||
@ -40,13 +40,16 @@
|
|||||||
#define INTERNAL_UART2_TX_PIN_DIR TRISFbits.TRISF5
|
#define INTERNAL_UART2_TX_PIN_DIR TRISFbits.TRISF5
|
||||||
#define INTERNAL_UART2_TX_PIN LATFbits.LATF5
|
#define INTERNAL_UART2_TX_PIN LATFbits.LATF5
|
||||||
|
|
||||||
|
#define INTERNAL_UART5_TX_PIN_DIR TRISBbits.TRISB14
|
||||||
|
#define INTERNAL_UART5_TX_PIN LATBbits.LATB14
|
||||||
|
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
/* Type definitions */
|
/* Type definitions */
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
INTERNAL_UART_PORT_1,
|
INTERNAL_UART_PORT_1,
|
||||||
INTERNAL_UART_PORT_2,
|
INTERNAL_UART_PORT_2,
|
||||||
|
INTERNAL_UART_PORT_5,
|
||||||
MAX_INTERNAL_UART_PORT
|
MAX_INTERNAL_UART_PORT
|
||||||
}eInternalUartPorts;
|
}eInternalUartPorts;
|
||||||
|
|
||||||
@ -92,6 +95,7 @@ int SendInternalUartDataBlocking(char *p_pcDataBuf, int p_iDataSize, int p_iUart
|
|||||||
void TickInternalUart(void);
|
void TickInternalUart(void);
|
||||||
void ResetUart1(void);
|
void ResetUart1(void);
|
||||||
void ResetUart2(void);
|
void ResetUart2(void);
|
||||||
|
void ResetUart5(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
//EOF
|
//EOF
|
||||||
|
|||||||
226
ChaletLora.X/Source/SIM7080GInterface.c
Normal file
226
ChaletLora.X/Source/SIM7080GInterface.c
Normal file
@ -0,0 +1,226 @@
|
|||||||
|
#include "SIM7080GInterface.h"
|
||||||
|
#include "BoardCfg.h"
|
||||||
|
#include "timer.h"
|
||||||
|
#include "Uart.h"
|
||||||
|
#include "Syslog.h"
|
||||||
|
#include "WiFiCtrl.h"
|
||||||
|
|
||||||
|
int mLTEModuleSMState;
|
||||||
|
int mNbCmdCharsReceived;
|
||||||
|
char mATCmd[LTE_MODULE_MAX_CMD_LENGTH];
|
||||||
|
bool mIsPassthroughEnabled;
|
||||||
|
bool mModuleSerialDebugEnabled;
|
||||||
|
bool mPICSerialDebugEnabled;
|
||||||
|
|
||||||
|
void InitLTEModule()
|
||||||
|
{
|
||||||
|
mLTEModuleSMState = LTE_MODULE_SM_INIT_STATE;
|
||||||
|
mNbCmdCharsReceived = 0;
|
||||||
|
mIsPassthroughEnabled = false;
|
||||||
|
mModuleSerialDebugEnabled = false;
|
||||||
|
mPICSerialDebugEnabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LTEModuleSM(int SMEvent)
|
||||||
|
{
|
||||||
|
switch(mLTEModuleSMState)
|
||||||
|
{
|
||||||
|
case LTE_MODULE_SM_INIT_STATE:
|
||||||
|
{
|
||||||
|
LTE_MODULE_PWR_PIN = 0;
|
||||||
|
TimerStart(LTE_MODULE_TIMER,LTE_MODULE_POWERUP_TIMEOUT);
|
||||||
|
mLTEModuleSMState = LTE_MODULE_SM_POWERUP_STATE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LTE_MODULE_SM_POWERUP_STATE:
|
||||||
|
{
|
||||||
|
if(IsTimerExpired(LTE_MODULE_TIMER) == true)
|
||||||
|
{
|
||||||
|
LTE_MODULE_PWR_PIN = 1;
|
||||||
|
TimerStart(LTE_MODULE_TIMER,LTE_MODULE_WAIT_INIT_TIMEOUT);
|
||||||
|
mLTEModuleSMState = LTE_MODULE_SM_WAIT_RDY_STATE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LTE_MODULE_SM_WAIT_RDY_STATE:
|
||||||
|
{
|
||||||
|
if(SMEvent == LTE_MODULE_RX_RDY_EVENT)
|
||||||
|
{
|
||||||
|
mLTEModuleSMState = LTE_MODULE_SM_SETECHOOFF_STATE;
|
||||||
|
}
|
||||||
|
else if(SMEvent == LTE_MODULE_SM_TICK_EVENT)
|
||||||
|
{
|
||||||
|
//TODO: it module takes too much time... reset..
|
||||||
|
// if(IsTimerExpired(LTE_MODULE_TIMER) == true)
|
||||||
|
// {
|
||||||
|
// mLTEModuleSMState = LTE_MODULE_SM_SETAPN_STATE;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LTE_MODULE_SM_SETECHOOFF_STATE:
|
||||||
|
{
|
||||||
|
char Cmd[5] = {'A','T','E','0','\r'};
|
||||||
|
//UartTransmitData(LTE_IF_UART_PORT,Cmd,5);
|
||||||
|
SendDataToLteModule(Cmd,5);
|
||||||
|
mLTEModuleSMState = LTE_MODULE_SM_RUN_STATE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LTE_MODULE_SM_SETAPN_STATE:
|
||||||
|
{
|
||||||
|
char Cmd[10] = {'A','T','+','C','G','N','A','P','N','\r'};
|
||||||
|
//UartTransmitData(LTE_IF_UART_PORT,Cmd,10);
|
||||||
|
SendDataToLteModule(Cmd,10);
|
||||||
|
mLTEModuleSMState = LTE_MODULE_SM_RUN_STATE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LTE_MODULE_SM_RUN_STATE:
|
||||||
|
{
|
||||||
|
if(SMEvent == LTE_MODULE_ENTER_PASSTHROUGH_EVENT)
|
||||||
|
{
|
||||||
|
mLTEModuleSMState = LTE_MODULE_SM_PASSTHROUGH_STATE;
|
||||||
|
SyslogNewString("LTE Module entering passthrough mode...");
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LTE_MODULE_SM_PASSTHROUGH_STATE:
|
||||||
|
{
|
||||||
|
if(SMEvent == LTE_MODULE_EXIT_PASSTHROUGH_EVENT)
|
||||||
|
{
|
||||||
|
SyslogNewString("LTE Module exiting passthrough mode...");
|
||||||
|
mLTEModuleSMState = LTE_MODULE_SM_RUN_STATE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TickLTEModule()
|
||||||
|
{
|
||||||
|
LTEModuleSM(LTE_MODULE_SM_TICK_EVENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void LTEModuleNewData(unsigned char Data)
|
||||||
|
{
|
||||||
|
if(mIsPassthroughEnabled == true)
|
||||||
|
{
|
||||||
|
SyslogNewByte(Data);
|
||||||
|
// SendSyslogByte(Data);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(mModuleSerialDebugEnabled == true)
|
||||||
|
{
|
||||||
|
SyslogNewByte(Data);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(Data == '\n') //ignore line feeds
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(Data != '\r')
|
||||||
|
{
|
||||||
|
if(mNbCmdCharsReceived < LTE_MODULE_MAX_CMD_LENGTH)
|
||||||
|
{
|
||||||
|
mATCmd[mNbCmdCharsReceived] = Data;
|
||||||
|
mNbCmdCharsReceived++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//error...
|
||||||
|
mNbCmdCharsReceived = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(mNbCmdCharsReceived != 0) //New Command received
|
||||||
|
{
|
||||||
|
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
//Fwd cmd to interpreter...
|
||||||
|
mNbCmdCharsReceived = mNbCmdCharsReceived;
|
||||||
|
}
|
||||||
|
|
||||||
|
mNbCmdCharsReceived = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void LTEEnterSerialPassthrough()
|
||||||
|
{
|
||||||
|
LTEModuleSM(LTE_MODULE_ENTER_PASSTHROUGH_EVENT);
|
||||||
|
mIsPassthroughEnabled = true;
|
||||||
|
SyslogSetLTEPassthrough(true);
|
||||||
|
mPICSerialDebugEnabled = false;
|
||||||
|
mModuleSerialDebugEnabled = false;
|
||||||
|
}
|
||||||
|
void LTEExitSerialPassthrough()
|
||||||
|
{
|
||||||
|
LTEModuleSM(LTE_MODULE_EXIT_PASSTHROUGH_EVENT);
|
||||||
|
mIsPassthroughEnabled = false;
|
||||||
|
SyslogSetLTEPassthrough(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void LTEFwdPassthroughData(char Data)
|
||||||
|
{
|
||||||
|
if(mIsPassthroughEnabled == true)
|
||||||
|
{
|
||||||
|
UartTransmitData(LTE_IF_UART_PORT,&Data,1);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int LTEEnableSerialDebug(bool EnModule, bool EnPic)
|
||||||
|
{
|
||||||
|
if(EnModule == true)
|
||||||
|
{
|
||||||
|
if(mIsPassthroughEnabled == true)
|
||||||
|
{
|
||||||
|
return RET_ERROR;
|
||||||
|
}
|
||||||
|
mModuleSerialDebugEnabled = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mModuleSerialDebugEnabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(EnPic == true)
|
||||||
|
{
|
||||||
|
if(mIsPassthroughEnabled == true)
|
||||||
|
{
|
||||||
|
return RET_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
mPICSerialDebugEnabled = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mPICSerialDebugEnabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SendDataToLteModule(char *Data, int Size)
|
||||||
|
{
|
||||||
|
if(mPICSerialDebugEnabled)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for(i = 0; i < Size; i++)
|
||||||
|
{
|
||||||
|
SyslogNewByte(*Data++);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
UartTransmitData(LTE_IF_UART_PORT,Data,Size);
|
||||||
|
}
|
||||||
54
ChaletLora.X/Source/SIM7080GInterface.h
Normal file
54
ChaletLora.X/Source/SIM7080GInterface.h
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* File: SIM7080GInterface.h
|
||||||
|
* Author: JF
|
||||||
|
*
|
||||||
|
* Created on August 13, 2024, 1:43 PM
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef SIM7080GINTERFACE_H
|
||||||
|
#define SIM7080GINTERFACE_H
|
||||||
|
|
||||||
|
#include "define.h"
|
||||||
|
|
||||||
|
#define LTE_MODULE_POWERUP_TIMEOUT 2000
|
||||||
|
#define LTE_MODULE_WAIT_INIT_TIMEOUT 5000
|
||||||
|
#define LTE_MODULE_MAX_CMD_LENGTH 128
|
||||||
|
|
||||||
|
enum eLTEModuleStates
|
||||||
|
{
|
||||||
|
LTE_MODULE_SM_INIT_STATE,
|
||||||
|
LTE_MODULE_SM_POWERUP_STATE,
|
||||||
|
LTE_MODULE_SM_WAIT_RDY_STATE,
|
||||||
|
LTE_MODULE_SM_SETECHOOFF_STATE,
|
||||||
|
LTE_MODULE_SM_SETAPN_STATE,
|
||||||
|
LTE_MODULE_SM_RUN_STATE,
|
||||||
|
LTE_MODULE_SM_PASSTHROUGH_STATE,
|
||||||
|
|
||||||
|
LTE_MODULE_SM_MAX_STATE
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
enum eLTEModuleEvents
|
||||||
|
{
|
||||||
|
LTE_MODULE_SM_TICK_EVENT,
|
||||||
|
LTE_MODULE_RX_DATA_EVENT,
|
||||||
|
LTE_MODULE_RX_RDY_EVENT,
|
||||||
|
LTE_MODULE_ENTER_PASSTHROUGH_EVENT,
|
||||||
|
LTE_MODULE_EXIT_PASSTHROUGH_EVENT,
|
||||||
|
|
||||||
|
LTE_MODULE_MAX_EVENT
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
void InitLTEModule();
|
||||||
|
void LTEModuleSM(int SMEvent);
|
||||||
|
void TickLTEModule();
|
||||||
|
void LTEModuleNewData(unsigned char Data);
|
||||||
|
void LTEEnterSerialPassthrough();
|
||||||
|
void LTEExitSerialPassthrough();
|
||||||
|
void LTEFwdPassthroughData(char Data);
|
||||||
|
int LTEEnableSerialDebug(bool EnModule, bool EnPic);
|
||||||
|
void SendDataToLteModule(char *Data, int Size);
|
||||||
|
|
||||||
|
#endif /* SIM7080GINTERFACE_H */
|
||||||
|
|
||||||
@ -6,15 +6,18 @@
|
|||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
#include "WiFiCtrl.h"
|
#include "WiFiCtrl.h"
|
||||||
#include "timer.h"
|
#include "timer.h"
|
||||||
|
#include "SIM7080GInterface.h"
|
||||||
|
|
||||||
//#define SYSLOG_BUFFER_SIZE 1024
|
//#define SYSLOG_BUFFER_SIZE 1024
|
||||||
#define SYSLOG_BUFFER_SIZE 500
|
#define SYSLOG_BUFFER_SIZE 500
|
||||||
char mSyslogBuffer[SYSLOG_BUFFER_SIZE];
|
char mSyslogBuffer[SYSLOG_BUFFER_SIZE];
|
||||||
int mSyslogBufPtr;
|
int mSyslogBufPtr;
|
||||||
|
bool mSyslogLTEPassthroughEnabled;
|
||||||
|
|
||||||
int InitSyslog()
|
int InitSyslog()
|
||||||
{
|
{
|
||||||
mSyslogBufPtr = 0;
|
mSyslogBufPtr = 0;
|
||||||
|
mSyslogLTEPassthroughEnabled = 0;
|
||||||
memset(mSyslogBuffer,0,SYSLOG_BUFFER_SIZE);
|
memset(mSyslogBuffer,0,SYSLOG_BUFFER_SIZE);
|
||||||
TimerStart(SYSLOG_TX_TIMER,SYSLOG_TX_TIMEOUT);
|
TimerStart(SYSLOG_TX_TIMER,SYSLOG_TX_TIMEOUT);
|
||||||
|
|
||||||
@ -89,4 +92,30 @@ int SyslogIsBufferEmpty()
|
|||||||
|
|
||||||
return RET_ERROR;
|
return RET_ERROR;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SyslogSetLTEPassthrough(bool Enable)
|
||||||
|
{
|
||||||
|
mSyslogLTEPassthroughEnabled = Enable;
|
||||||
|
if(Enable == true)
|
||||||
|
{
|
||||||
|
SendSyslogData("\nEntering LTE passthrough mode\n",strlen("\nEntering LTE passthrough mode\n"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SendSyslogData("\nExiting LTE passthrough mode\n",strlen("\nExiting LTE passthrough mode\n"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void RxSyslogBuf(unsigned char *DataBuf, int size)
|
||||||
|
{
|
||||||
|
if(mSyslogLTEPassthroughEnabled == true)
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
for(i = 0; i < size; i++)
|
||||||
|
{
|
||||||
|
LTEFwdPassthroughData(*DataBuf++);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#ifndef SYSLOG_H
|
#ifndef SYSLOG_H
|
||||||
#define SYSLOG_H
|
#define SYSLOG_H
|
||||||
|
#include "define.h"
|
||||||
#define SYSLOG_TX_TIMEOUT 200 //ms
|
#define SYSLOG_TX_TIMEOUT 200 //ms
|
||||||
|
|
||||||
|
|
||||||
@ -9,6 +9,8 @@ void SyslogTick();
|
|||||||
int SyslogNewByte(char byte);
|
int SyslogNewByte(char byte);
|
||||||
int SyslogNewString(char *string);
|
int SyslogNewString(char *string);
|
||||||
int SyslogIsBufferEmpty();
|
int SyslogIsBufferEmpty();
|
||||||
|
void SyslogSetLTEPassthrough(bool Enable);
|
||||||
|
void RxSyslogBuf(unsigned char *DataBuf, int size);
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@ -23,6 +23,7 @@
|
|||||||
#include "ChaletPowerRelay.h"
|
#include "ChaletPowerRelay.h"
|
||||||
#include "BatteryMonitor.h"
|
#include "BatteryMonitor.h"
|
||||||
#include "BootloaderInterface.h"
|
#include "BootloaderInterface.h"
|
||||||
|
#include "SIM7080GInterface.h"
|
||||||
|
|
||||||
//#include "SDCardMgr.h"
|
//#include "SDCardMgr.h"
|
||||||
#ifdef TERMINAL_USE_TELNET
|
#ifdef TERMINAL_USE_TELNET
|
||||||
@ -63,9 +64,16 @@ static BYTE mHelpString[] = "Here is the list of the available commands:\n\r\n\
|
|||||||
"\nbootloader [command] : bootloader mode control\n"
|
"\nbootloader [command] : bootloader mode control\n"
|
||||||
" - Available [command] argument are: start (enable bootloader and opens port)\n"
|
" - Available [command] argument are: start (enable bootloader and opens port)\n"
|
||||||
" stop (disables bootloader if not busy)\n"
|
" stop (disables bootloader if not busy)\n"
|
||||||
" state (prints actual state of the bootloader)\n"
|
" state (prints actual state of the bootloader)\n";
|
||||||
|
static BYTE mHelpString1[] = "\nlte [command] [value] : bootloader mode control\n"
|
||||||
//"\ndebug : print some real-time stuff..."
|
" - Available [command] argument are: passthrough (enable using syslog as a passthrough interface with lte module)\n"
|
||||||
|
" -Available passthrough [value]: on (enable passthrough)\n"
|
||||||
|
" off (disable passthrough)\n"
|
||||||
|
" debug (enable using syslog as a debug interface with lte module)\n"
|
||||||
|
" -Available debug [value]: module (debug LTE module comm only)\n"
|
||||||
|
" pic (debug PIC comm only)\n"
|
||||||
|
" both (debug both PIC and LTE module comm )\n"
|
||||||
|
" off (disable LTE debug)\n"
|
||||||
"\nHave a good day!\n";
|
"\nHave a good day!\n";
|
||||||
|
|
||||||
BYTE *mHelpStringPtr;
|
BYTE *mHelpStringPtr;
|
||||||
@ -83,7 +91,7 @@ void InitTerminal(void)
|
|||||||
|
|
||||||
void TickTerminal()
|
void TickTerminal()
|
||||||
{
|
{
|
||||||
switch(mTerminalPendingAction)
|
switch(mTerminalPendingAction)
|
||||||
{
|
{
|
||||||
case TERMINAL_ACTION_NONE:
|
case TERMINAL_ACTION_NONE:
|
||||||
{
|
{
|
||||||
@ -171,12 +179,9 @@ void ParseNewBuffer(void)
|
|||||||
|
|
||||||
if(strncmp(mCmdString,"help",strlen("help")) == 0)
|
if(strncmp(mCmdString,"help",strlen("help")) == 0)
|
||||||
{
|
{
|
||||||
mHelpStringPtr = mHelpString;
|
|
||||||
static BYTE* Ptr= mHelpString;
|
|
||||||
|
|
||||||
SendTerminalData(mHelpString,strlen(mHelpString));
|
SendTerminalData(mHelpString,strlen(mHelpString));
|
||||||
|
|
||||||
Ptr = mHelpStringPtr;
|
SendTerminalData(mHelpString1,strlen(mHelpString1));
|
||||||
}
|
}
|
||||||
|
|
||||||
else if(strncmp(mCmdString,"power",strlen("power")) == 0)
|
else if(strncmp(mCmdString,"power",strlen("power")) == 0)
|
||||||
@ -222,7 +227,7 @@ void ParseNewBuffer(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TerminalPrintString("WiFi already connected...\n");
|
TerminalPrintString("WiFi already connected...\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(strncmp(mDataString1,"off",strlen("off")) == 0)
|
else if(strncmp(mDataString1,"off",strlen("off")) == 0)
|
||||||
@ -289,7 +294,7 @@ void ParseNewBuffer(void)
|
|||||||
TerminalPrintString("mA\n");
|
TerminalPrintString("mA\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(strncmp(mDataString1,"voltage",strlen("voltage")) == 0)
|
if(strncmp(mDataString1,"voltage",strlen("voltage")) == 0)
|
||||||
{
|
{
|
||||||
char voltage[15];
|
char voltage[15];
|
||||||
@ -311,27 +316,27 @@ void ParseNewBuffer(void)
|
|||||||
char SOC[15];
|
char SOC[15];
|
||||||
sprintf(SOC,"%d",GetBatterySOC());
|
sprintf(SOC,"%d",GetBatterySOC());
|
||||||
TerminalPrintString("Battery SOC: ");
|
TerminalPrintString("Battery SOC: ");
|
||||||
// TerminalPrintString(SOC);
|
// TerminalPrintString(SOC);
|
||||||
TerminalPrintString("%\n");
|
TerminalPrintString("%\n");
|
||||||
}
|
}
|
||||||
TerminalPrintString("\n");
|
TerminalPrintString("\n");
|
||||||
}
|
}
|
||||||
else if(strncmp(mCmdString,"status",strlen("status")) == 0)
|
else if(strncmp(mCmdString,"status",strlen("status")) == 0)
|
||||||
{
|
{
|
||||||
// TerminalPrintString("General status:\nBattery: TBD \nWiFi: TBD\nOther Stuff: TBD\n");
|
// TerminalPrintString("General status:\nBattery: TBD \nWiFi: TBD\nOther Stuff: TBD\n");
|
||||||
TerminalPrintString("General status:\n");
|
TerminalPrintString("General status:\n");
|
||||||
|
|
||||||
if(GetChaletPowerRelayState() == CHALET_POWER_RELAY_OFF_STATE)
|
if(GetChaletPowerRelayState() == CHALET_POWER_RELAY_OFF_STATE)
|
||||||
{
|
{
|
||||||
TerminalPrintString("Inverter power relay: OFF\n");
|
TerminalPrintString("Inverter power relay: OFF\n");
|
||||||
}
|
}
|
||||||
else if(GetChaletPowerRelayState() == CHALET_POWER_RELAY_ON_STATE)
|
else if(GetChaletPowerRelayState() == CHALET_POWER_RELAY_ON_STATE)
|
||||||
{
|
{
|
||||||
TerminalPrintString("Inverter power relay: ON\n");
|
TerminalPrintString("Inverter power relay: ON\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TerminalPrintString("Inverter power relay: UNKNOWN\n");
|
TerminalPrintString("Inverter power relay: UNKNOWN\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(GetWiFiSate())
|
switch(GetWiFiSate())
|
||||||
@ -359,7 +364,7 @@ void ParseNewBuffer(void)
|
|||||||
case WIFI_UNKNOWN_STATE:
|
case WIFI_UNKNOWN_STATE:
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
TerminalPrintString("WiFi: Unknown state\n");
|
TerminalPrintString("WiFi: Unknown state\n");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -392,9 +397,9 @@ void ParseNewBuffer(void)
|
|||||||
sprintf(SOC,"%d%%\n",GetBatterySOC());
|
sprintf(SOC,"%d%%\n",GetBatterySOC());
|
||||||
TerminalPrintString("Battery SOC: ");
|
TerminalPrintString("Battery SOC: ");
|
||||||
TerminalPrintString(SOC);
|
TerminalPrintString(SOC);
|
||||||
// TerminalPrintString("\n");
|
// TerminalPrintString("\n");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TerminalPrintString("\n");
|
TerminalPrintString("\n");
|
||||||
@ -410,7 +415,7 @@ void ParseNewBuffer(void)
|
|||||||
if(strncmp(mDataString1,"start",strlen("start")) == 0)
|
if(strncmp(mDataString1,"start",strlen("start")) == 0)
|
||||||
{
|
{
|
||||||
//start bootloader server
|
//start bootloader server
|
||||||
// OpenBootloaderServer();
|
// OpenBootloaderServer();
|
||||||
BootloaderActivateBootloader();
|
BootloaderActivateBootloader();
|
||||||
TerminalPrintString("Activating bootloader\n");
|
TerminalPrintString("Activating bootloader\n");
|
||||||
}
|
}
|
||||||
@ -418,7 +423,7 @@ void ParseNewBuffer(void)
|
|||||||
{
|
{
|
||||||
//CloseBootloaderServer();
|
//CloseBootloaderServer();
|
||||||
TerminalPrintString("Deactivating bootloader\n");
|
TerminalPrintString("Deactivating bootloader\n");
|
||||||
BootloaderDeactivateBootloader();
|
BootloaderDeactivateBootloader();
|
||||||
}
|
}
|
||||||
else if(strncmp(mDataString1,"status",strlen("status")) == 0)
|
else if(strncmp(mDataString1,"status",strlen("status")) == 0)
|
||||||
{
|
{
|
||||||
@ -428,14 +433,92 @@ void ParseNewBuffer(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if(IsBootloaderClientConnected())
|
if(IsBootloaderClientConnected())
|
||||||
{
|
{
|
||||||
TerminalPrintString("\nBootloader client not connected\n");
|
TerminalPrintString("\nBootloader client not connected\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
else if(strncmp(mCmdString,"lte",strlen("lte")) == 0)
|
||||||
|
{
|
||||||
|
if(strlen(mDataString1) == 0)
|
||||||
|
{
|
||||||
|
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(strncmp(mDataString2,"on",strlen("on")) == 0)
|
||||||
|
{
|
||||||
|
LTEEnterSerialPassthrough();
|
||||||
|
TerminalPrintString("LTE passthrough enabled in Syslog window\n");
|
||||||
|
}
|
||||||
|
else if (strncmp(mDataString2,"off",strlen("off")) == 0)
|
||||||
|
{
|
||||||
|
LTEExitSerialPassthrough();
|
||||||
|
TerminalPrintString("LTE passthrough disabled\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TerminalPrintString("\nInvalid [value] parameter (use on or off)\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if(strncmp(mDataString1,"debug",strlen("debug")) == 0)
|
||||||
|
{
|
||||||
|
if(strncmp(mDataString2,"module",strlen("module")) == 0)
|
||||||
|
{
|
||||||
|
if(LTEEnableSerialDebug(true,false) == RET_OK)
|
||||||
|
{
|
||||||
|
TerminalPrintString("LTE module debug enabled in Syslog window\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TerminalPrintString("Cannot put LTE module in debug mode (passthrought enabled?)\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(strncmp(mDataString2,"pic",strlen("pic")) == 0)
|
||||||
|
{
|
||||||
|
if(LTEEnableSerialDebug(false,true) == RET_OK)
|
||||||
|
{
|
||||||
|
TerminalPrintString("LTE PIC comm debug enabled in Syslog window\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TerminalPrintString("Cannot put LTE PIC comm in debug mode (passthrought enabled?)\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(strncmp(mDataString2,"both",strlen("both")) == 0)
|
||||||
|
{
|
||||||
|
if(LTEEnableSerialDebug(true,true) == RET_OK)
|
||||||
|
{
|
||||||
|
TerminalPrintString("LTE module and PIC comm debug enabled in Syslog window\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TerminalPrintString("Cannot put LTE comm in debug mode (passthrought enabled?)\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (strncmp(mDataString2,"off",strlen("off")) == 0)
|
||||||
|
{
|
||||||
|
LTEEnableSerialDebug(false,false);
|
||||||
|
TerminalPrintString("LTE debug disabled\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TerminalPrintString("\nInvalid [value] parameter (use on or off)\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
else if(strncmp(mCmdString,"debug",strlen(mCmdString)) == 0)
|
else if(strncmp(mCmdString,"debug",strlen(mCmdString)) == 0)
|
||||||
{
|
{
|
||||||
// if(strlen(mDataString1) == 0)
|
// if(strlen(mDataString1) == 0)
|
||||||
|
|||||||
@ -39,6 +39,7 @@
|
|||||||
#include "digitalio.h"
|
#include "digitalio.h"
|
||||||
//#include "DriveProtocol.h"
|
//#include "DriveProtocol.h"
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
|
#include "SIM7080GInterface.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -47,8 +48,8 @@
|
|||||||
|
|
||||||
stUartData astUartData[MAX_UART_HANDLE];
|
stUartData astUartData[MAX_UART_HANDLE];
|
||||||
|
|
||||||
const char *gUartStrings[MAX_UART_HANDLE] = { "PRINTF" //UART_1
|
const char *gUartStrings[MAX_UART_HANDLE] = { "LORA" //UART_1
|
||||||
//,"CU", //UART_2
|
,"LTE", //UART_5
|
||||||
// ,"CONSOLE" //UART_3
|
// ,"CONSOLE" //UART_3
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -86,8 +87,8 @@ void InitUart(void)
|
|||||||
astUartData[UART_1].iIsInternal = 1;
|
astUartData[UART_1].iIsInternal = 1;
|
||||||
astUartData[UART_1].iPhysicalUartPort = INTERNAL_UART_PORT_2; // (232)
|
astUartData[UART_1].iPhysicalUartPort = INTERNAL_UART_PORT_2; // (232)
|
||||||
|
|
||||||
// astUartData[UART_2].iIsInternal = 1;
|
astUartData[UART_2].iIsInternal = 1;
|
||||||
//astUartData[UART_2].iPhysicalUartPort = INTERNAL_UART_PORT_2; // (232)
|
astUartData[UART_2].iPhysicalUartPort = INTERNAL_UART_PORT_5; // (232)
|
||||||
|
|
||||||
#ifndef NO_EXTERNAL_UART
|
#ifndef NO_EXTERNAL_UART
|
||||||
astUartData[UART_3].iIsInternal = 0;
|
astUartData[UART_3].iIsInternal = 0;
|
||||||
@ -97,7 +98,8 @@ void InitUart(void)
|
|||||||
setbuf(stdout,NULL); //to use printf without \r
|
setbuf(stdout,NULL); //to use printf without \r
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
|
||||||
UartOpenComPort(NETWORK_UART_PORT,9600,UART_ONE_STOP_BIT,UART_NO_PARITY); //Open console port
|
UartOpenComPort(NETWORK_UART_PORT,9600,UART_ONE_STOP_BIT,UART_NO_PARITY); //Open LoRa module port
|
||||||
|
UartOpenComPort(LTE_IF_UART_PORT,115200,UART_ONE_STOP_BIT,UART_NO_PARITY); //Open LTE module port
|
||||||
#ifdef USE_PRINTF
|
#ifdef USE_PRINTF
|
||||||
//UartOpenComPort(CONSOLE_UART_PORT,115200,UART_ONE_STOP_BIT,UART_NO_PARITY); //Open console port
|
//UartOpenComPort(CONSOLE_UART_PORT,115200,UART_ONE_STOP_BIT,UART_NO_PARITY); //Open console port
|
||||||
|
|
||||||
@ -132,7 +134,13 @@ int UartResetPort(int p_iUartHandle)
|
|||||||
{
|
{
|
||||||
ResetUart2();
|
ResetUart2();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case INTERNAL_UART_PORT_5:
|
||||||
|
{
|
||||||
|
ResetUart5();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -595,7 +603,19 @@ int UartTick(void)
|
|||||||
//RxTerminalData(aTempBuffer[i]);
|
//RxTerminalData(aTempBuffer[i]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case LTE_IF_UART_PORT:
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
for(i = 0; i< iNbPendingData; i++)
|
||||||
|
{
|
||||||
|
LTE_MODULE_RX_LED_PIN = ~LTE_MODULE_RX_LED_PIN;
|
||||||
|
LTEModuleNewData(aTempBuffer[i]);
|
||||||
|
//ProtocolAnalyzeNewData(aTempBuffer[i]);
|
||||||
|
//RxTerminalData(aTempBuffer[i]);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -38,8 +38,8 @@
|
|||||||
//
|
//
|
||||||
enum eUartHandles
|
enum eUartHandles
|
||||||
{
|
{
|
||||||
UART_1, //(232) Uart 1 - Drive
|
UART_1, //(232) internet Uart 2 - Lora IF
|
||||||
//UART_2, //(232) Uart 2 - CU
|
UART_2, //(232) internal Uart 5 - SIM7080G LTE IF
|
||||||
//UART_3, // !!!EXTERNAL!!! SPI daughter board...
|
//UART_3, // !!!EXTERNAL!!! SPI daughter board...
|
||||||
MAX_UART_HANDLE,
|
MAX_UART_HANDLE,
|
||||||
|
|
||||||
|
|||||||
@ -214,7 +214,7 @@ static void socket_cb(SOCKET sock, uint8 u8Msg, void *pvMsg)
|
|||||||
{
|
{
|
||||||
//Fwd data to stdin...
|
//Fwd data to stdin...
|
||||||
recv(SyslogSocket, SyslogRxBuf, sizeof(SyslogRxBuf), 0);
|
recv(SyslogSocket, SyslogRxBuf, sizeof(SyslogRxBuf), 0);
|
||||||
//Syslog shall ignore data...
|
RxSyslogBuf(SyslogRxBuf, pstrRecvMsg->s16BufferSize);
|
||||||
}
|
}
|
||||||
else if(sock == NetworkSocket)
|
else if(sock == NetworkSocket)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -157,7 +157,7 @@ enum eWiFiState
|
|||||||
#define NETWORK_UART_PORT UART_1
|
#define NETWORK_UART_PORT UART_1
|
||||||
|
|
||||||
|
|
||||||
#define LORA_MODULE_UART_PORT UART_2
|
#define LTE_IF_UART_PORT UART_2
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
@ -42,6 +42,7 @@
|
|||||||
#include "TemperatureSensor.h"
|
#include "TemperatureSensor.h"
|
||||||
#include "LoraWatchdog.h"
|
#include "LoraWatchdog.h"
|
||||||
#include "LCDCtrl.h"
|
#include "LCDCtrl.h"
|
||||||
|
#include "SIM7080GInterface.h"
|
||||||
|
|
||||||
#include "BootloaderInterface.h"
|
#include "BootloaderInterface.h"
|
||||||
|
|
||||||
@ -106,6 +107,7 @@ int main(void)
|
|||||||
|
|
||||||
InitSPIFlash();
|
InitSPIFlash();
|
||||||
InitLCDCtrl();
|
InitLCDCtrl();
|
||||||
|
InitLTEModule();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -207,6 +209,7 @@ int main(void)
|
|||||||
BootloaderInterfaceTick();
|
BootloaderInterfaceTick();
|
||||||
TickLoraWatchdog();
|
TickLoraWatchdog();
|
||||||
TickLCDCtrl();
|
TickLCDCtrl();
|
||||||
|
TickLTEModule();
|
||||||
|
|
||||||
if(IsTimerExpired(HEARTBEAT_LED_TMR))
|
if(IsTimerExpired(HEARTBEAT_LED_TMR))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -51,6 +51,7 @@ typedef enum
|
|||||||
BOOTLOADER_FLASH_POLL_TIMER,
|
BOOTLOADER_FLASH_POLL_TIMER,
|
||||||
LORA_WATCHDOG_TIMER,
|
LORA_WATCHDOG_TIMER,
|
||||||
LCD_CTRL_TIMER,
|
LCD_CTRL_TIMER,
|
||||||
|
LTE_MODULE_TIMER,
|
||||||
TIMER_MAX_ID
|
TIMER_MAX_ID
|
||||||
}eTimerID;
|
}eTimerID;
|
||||||
|
|
||||||
|
|||||||
BIN
ChaletLora.X/dist/ChaletDuinoV2_795F512H_/debug/ChaletLora.X.debug.elf
vendored
Normal file
BIN
ChaletLora.X/dist/ChaletDuinoV2_795F512H_/debug/ChaletLora.X.debug.elf
vendored
Normal file
Binary file not shown.
5482
ChaletLora.X/dist/ChaletDuinoV2_795F512H_/debug/ChaletLora.X.debug.map
vendored
Normal file
5482
ChaletLora.X/dist/ChaletDuinoV2_795F512H_/debug/ChaletLora.X.debug.map
vendored
Normal file
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
@ -51,17 +51,17 @@ OBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE}
|
|||||||
DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}
|
DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}
|
||||||
|
|
||||||
# Source Files Quoted if spaced
|
# Source Files Quoted if spaced
|
||||||
SOURCEFILES_QUOTED_IF_SPACED=Source/ChaletduinoV2Board.c Source/winc3400_142/common/source/nm_common.c Source/winc3400_142/driver/source/m2m_flash.c Source/winc3400_142/driver/source/m2m_hif.c Source/winc3400_142/driver/source/m2m_ota.c Source/winc3400_142/driver/source/m2m_periph.c Source/winc3400_142/driver/source/m2m_ssl.c Source/winc3400_142/driver/source/m2m_wifi.c Source/winc3400_142/driver/source/nmasic.c Source/winc3400_142/driver/source/nmbus.c Source/winc3400_142/driver/source/nmdrv.c Source/winc3400_142/driver/source/nmspi.c Source/winc3400_142/socket/source/inet_addr.c Source/winc3400_142/socket/source/inet_ntop.c Source/winc3400_142/socket/source/socket.c Source/winc3400_142/spi_flash/source/spi_flash.c Source/DigitalIO.c Source/InternalUart.c Source/NetworkProtocol.c Source/Terminal.c Source/Uart.c Source/Util.c Source/exceptions.c Source/interrupts.c Source/main.c Source/system.c Source/template.c Source/timer.c Source/WiFiCtrl.c Source/SPI.c Source/ChaletPowerRelay.c Source/HarakiriRelay.c Source/BatteryMonitor.c Source/ina219.c Source/I2C.c Source/SPI_Flash.c Source/Syslog.c Source/Watchdog.c Source/BootloaderInterface.c Source/TemperatureSensor.c Source/TC77.c Source/BootloaderProtocol.c Source/crc32.c Source/LoraWatchdog.c Source/hd44780.c Source/LCDCtrl.c Source/LoraNetworkInterface.c
|
SOURCEFILES_QUOTED_IF_SPACED=Source/ChaletduinoV2Board.c Source/winc3400_142/common/source/nm_common.c Source/winc3400_142/driver/source/m2m_flash.c Source/winc3400_142/driver/source/m2m_hif.c Source/winc3400_142/driver/source/m2m_ota.c Source/winc3400_142/driver/source/m2m_periph.c Source/winc3400_142/driver/source/m2m_ssl.c Source/winc3400_142/driver/source/m2m_wifi.c Source/winc3400_142/driver/source/nmasic.c Source/winc3400_142/driver/source/nmbus.c Source/winc3400_142/driver/source/nmdrv.c Source/winc3400_142/driver/source/nmspi.c Source/winc3400_142/socket/source/inet_addr.c Source/winc3400_142/socket/source/inet_ntop.c Source/winc3400_142/socket/source/socket.c Source/winc3400_142/spi_flash/source/spi_flash.c Source/DigitalIO.c Source/InternalUart.c Source/NetworkProtocol.c Source/Terminal.c Source/Uart.c Source/Util.c Source/exceptions.c Source/interrupts.c Source/main.c Source/system.c Source/template.c Source/timer.c Source/WiFiCtrl.c Source/SPI.c Source/ChaletPowerRelay.c Source/HarakiriRelay.c Source/BatteryMonitor.c Source/ina219.c Source/I2C.c Source/SPI_Flash.c Source/Syslog.c Source/Watchdog.c Source/BootloaderInterface.c Source/TemperatureSensor.c Source/TC77.c Source/BootloaderProtocol.c Source/crc32.c Source/LoraWatchdog.c Source/hd44780.c Source/LCDCtrl.c Source/LoraNetworkInterface.c Source/SIM7080GInterface.c
|
||||||
|
|
||||||
# Object Files Quoted if spaced
|
# Object Files Quoted if spaced
|
||||||
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/Source/ChaletduinoV2Board.o ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o ${OBJECTDIR}/Source/DigitalIO.o ${OBJECTDIR}/Source/InternalUart.o ${OBJECTDIR}/Source/NetworkProtocol.o ${OBJECTDIR}/Source/Terminal.o ${OBJECTDIR}/Source/Uart.o ${OBJECTDIR}/Source/Util.o ${OBJECTDIR}/Source/exceptions.o ${OBJECTDIR}/Source/interrupts.o ${OBJECTDIR}/Source/main.o ${OBJECTDIR}/Source/system.o ${OBJECTDIR}/Source/template.o ${OBJECTDIR}/Source/timer.o ${OBJECTDIR}/Source/WiFiCtrl.o ${OBJECTDIR}/Source/SPI.o ${OBJECTDIR}/Source/ChaletPowerRelay.o ${OBJECTDIR}/Source/HarakiriRelay.o ${OBJECTDIR}/Source/BatteryMonitor.o ${OBJECTDIR}/Source/ina219.o ${OBJECTDIR}/Source/I2C.o ${OBJECTDIR}/Source/SPI_Flash.o ${OBJECTDIR}/Source/Syslog.o ${OBJECTDIR}/Source/Watchdog.o ${OBJECTDIR}/Source/BootloaderInterface.o ${OBJECTDIR}/Source/TemperatureSensor.o ${OBJECTDIR}/Source/TC77.o ${OBJECTDIR}/Source/BootloaderProtocol.o ${OBJECTDIR}/Source/crc32.o ${OBJECTDIR}/Source/LoraWatchdog.o ${OBJECTDIR}/Source/hd44780.o ${OBJECTDIR}/Source/LCDCtrl.o ${OBJECTDIR}/Source/LoraNetworkInterface.o
|
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/Source/ChaletduinoV2Board.o ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o ${OBJECTDIR}/Source/DigitalIO.o ${OBJECTDIR}/Source/InternalUart.o ${OBJECTDIR}/Source/NetworkProtocol.o ${OBJECTDIR}/Source/Terminal.o ${OBJECTDIR}/Source/Uart.o ${OBJECTDIR}/Source/Util.o ${OBJECTDIR}/Source/exceptions.o ${OBJECTDIR}/Source/interrupts.o ${OBJECTDIR}/Source/main.o ${OBJECTDIR}/Source/system.o ${OBJECTDIR}/Source/template.o ${OBJECTDIR}/Source/timer.o ${OBJECTDIR}/Source/WiFiCtrl.o ${OBJECTDIR}/Source/SPI.o ${OBJECTDIR}/Source/ChaletPowerRelay.o ${OBJECTDIR}/Source/HarakiriRelay.o ${OBJECTDIR}/Source/BatteryMonitor.o ${OBJECTDIR}/Source/ina219.o ${OBJECTDIR}/Source/I2C.o ${OBJECTDIR}/Source/SPI_Flash.o ${OBJECTDIR}/Source/Syslog.o ${OBJECTDIR}/Source/Watchdog.o ${OBJECTDIR}/Source/BootloaderInterface.o ${OBJECTDIR}/Source/TemperatureSensor.o ${OBJECTDIR}/Source/TC77.o ${OBJECTDIR}/Source/BootloaderProtocol.o ${OBJECTDIR}/Source/crc32.o ${OBJECTDIR}/Source/LoraWatchdog.o ${OBJECTDIR}/Source/hd44780.o ${OBJECTDIR}/Source/LCDCtrl.o ${OBJECTDIR}/Source/LoraNetworkInterface.o ${OBJECTDIR}/Source/SIM7080GInterface.o
|
||||||
POSSIBLE_DEPFILES=${OBJECTDIR}/Source/ChaletduinoV2Board.o.d ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o.d ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o.d ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o.d ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o.d ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o.d ${OBJECTDIR}/Source/DigitalIO.o.d ${OBJECTDIR}/Source/InternalUart.o.d ${OBJECTDIR}/Source/NetworkProtocol.o.d ${OBJECTDIR}/Source/Terminal.o.d ${OBJECTDIR}/Source/Uart.o.d ${OBJECTDIR}/Source/Util.o.d ${OBJECTDIR}/Source/exceptions.o.d ${OBJECTDIR}/Source/interrupts.o.d ${OBJECTDIR}/Source/main.o.d ${OBJECTDIR}/Source/system.o.d ${OBJECTDIR}/Source/template.o.d ${OBJECTDIR}/Source/timer.o.d ${OBJECTDIR}/Source/WiFiCtrl.o.d ${OBJECTDIR}/Source/SPI.o.d ${OBJECTDIR}/Source/ChaletPowerRelay.o.d ${OBJECTDIR}/Source/HarakiriRelay.o.d ${OBJECTDIR}/Source/BatteryMonitor.o.d ${OBJECTDIR}/Source/ina219.o.d ${OBJECTDIR}/Source/I2C.o.d ${OBJECTDIR}/Source/SPI_Flash.o.d ${OBJECTDIR}/Source/Syslog.o.d ${OBJECTDIR}/Source/Watchdog.o.d ${OBJECTDIR}/Source/BootloaderInterface.o.d ${OBJECTDIR}/Source/TemperatureSensor.o.d ${OBJECTDIR}/Source/TC77.o.d ${OBJECTDIR}/Source/BootloaderProtocol.o.d ${OBJECTDIR}/Source/crc32.o.d ${OBJECTDIR}/Source/LoraWatchdog.o.d ${OBJECTDIR}/Source/hd44780.o.d ${OBJECTDIR}/Source/LCDCtrl.o.d ${OBJECTDIR}/Source/LoraNetworkInterface.o.d
|
POSSIBLE_DEPFILES=${OBJECTDIR}/Source/ChaletduinoV2Board.o.d ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o.d ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o.d ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o.d ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o.d ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o.d ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o.d ${OBJECTDIR}/Source/DigitalIO.o.d ${OBJECTDIR}/Source/InternalUart.o.d ${OBJECTDIR}/Source/NetworkProtocol.o.d ${OBJECTDIR}/Source/Terminal.o.d ${OBJECTDIR}/Source/Uart.o.d ${OBJECTDIR}/Source/Util.o.d ${OBJECTDIR}/Source/exceptions.o.d ${OBJECTDIR}/Source/interrupts.o.d ${OBJECTDIR}/Source/main.o.d ${OBJECTDIR}/Source/system.o.d ${OBJECTDIR}/Source/template.o.d ${OBJECTDIR}/Source/timer.o.d ${OBJECTDIR}/Source/WiFiCtrl.o.d ${OBJECTDIR}/Source/SPI.o.d ${OBJECTDIR}/Source/ChaletPowerRelay.o.d ${OBJECTDIR}/Source/HarakiriRelay.o.d ${OBJECTDIR}/Source/BatteryMonitor.o.d ${OBJECTDIR}/Source/ina219.o.d ${OBJECTDIR}/Source/I2C.o.d ${OBJECTDIR}/Source/SPI_Flash.o.d ${OBJECTDIR}/Source/Syslog.o.d ${OBJECTDIR}/Source/Watchdog.o.d ${OBJECTDIR}/Source/BootloaderInterface.o.d ${OBJECTDIR}/Source/TemperatureSensor.o.d ${OBJECTDIR}/Source/TC77.o.d ${OBJECTDIR}/Source/BootloaderProtocol.o.d ${OBJECTDIR}/Source/crc32.o.d ${OBJECTDIR}/Source/LoraWatchdog.o.d ${OBJECTDIR}/Source/hd44780.o.d ${OBJECTDIR}/Source/LCDCtrl.o.d ${OBJECTDIR}/Source/LoraNetworkInterface.o.d ${OBJECTDIR}/Source/SIM7080GInterface.o.d
|
||||||
|
|
||||||
# Object Files
|
# Object Files
|
||||||
OBJECTFILES=${OBJECTDIR}/Source/ChaletduinoV2Board.o ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o ${OBJECTDIR}/Source/DigitalIO.o ${OBJECTDIR}/Source/InternalUart.o ${OBJECTDIR}/Source/NetworkProtocol.o ${OBJECTDIR}/Source/Terminal.o ${OBJECTDIR}/Source/Uart.o ${OBJECTDIR}/Source/Util.o ${OBJECTDIR}/Source/exceptions.o ${OBJECTDIR}/Source/interrupts.o ${OBJECTDIR}/Source/main.o ${OBJECTDIR}/Source/system.o ${OBJECTDIR}/Source/template.o ${OBJECTDIR}/Source/timer.o ${OBJECTDIR}/Source/WiFiCtrl.o ${OBJECTDIR}/Source/SPI.o ${OBJECTDIR}/Source/ChaletPowerRelay.o ${OBJECTDIR}/Source/HarakiriRelay.o ${OBJECTDIR}/Source/BatteryMonitor.o ${OBJECTDIR}/Source/ina219.o ${OBJECTDIR}/Source/I2C.o ${OBJECTDIR}/Source/SPI_Flash.o ${OBJECTDIR}/Source/Syslog.o ${OBJECTDIR}/Source/Watchdog.o ${OBJECTDIR}/Source/BootloaderInterface.o ${OBJECTDIR}/Source/TemperatureSensor.o ${OBJECTDIR}/Source/TC77.o ${OBJECTDIR}/Source/BootloaderProtocol.o ${OBJECTDIR}/Source/crc32.o ${OBJECTDIR}/Source/LoraWatchdog.o ${OBJECTDIR}/Source/hd44780.o ${OBJECTDIR}/Source/LCDCtrl.o ${OBJECTDIR}/Source/LoraNetworkInterface.o
|
OBJECTFILES=${OBJECTDIR}/Source/ChaletduinoV2Board.o ${OBJECTDIR}/Source/winc3400_142/common/source/nm_common.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_flash.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_hif.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ota.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_periph.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_ssl.o ${OBJECTDIR}/Source/winc3400_142/driver/source/m2m_wifi.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmasic.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmbus.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmdrv.o ${OBJECTDIR}/Source/winc3400_142/driver/source/nmspi.o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_addr.o ${OBJECTDIR}/Source/winc3400_142/socket/source/inet_ntop.o ${OBJECTDIR}/Source/winc3400_142/socket/source/socket.o ${OBJECTDIR}/Source/winc3400_142/spi_flash/source/spi_flash.o ${OBJECTDIR}/Source/DigitalIO.o ${OBJECTDIR}/Source/InternalUart.o ${OBJECTDIR}/Source/NetworkProtocol.o ${OBJECTDIR}/Source/Terminal.o ${OBJECTDIR}/Source/Uart.o ${OBJECTDIR}/Source/Util.o ${OBJECTDIR}/Source/exceptions.o ${OBJECTDIR}/Source/interrupts.o ${OBJECTDIR}/Source/main.o ${OBJECTDIR}/Source/system.o ${OBJECTDIR}/Source/template.o ${OBJECTDIR}/Source/timer.o ${OBJECTDIR}/Source/WiFiCtrl.o ${OBJECTDIR}/Source/SPI.o ${OBJECTDIR}/Source/ChaletPowerRelay.o ${OBJECTDIR}/Source/HarakiriRelay.o ${OBJECTDIR}/Source/BatteryMonitor.o ${OBJECTDIR}/Source/ina219.o ${OBJECTDIR}/Source/I2C.o ${OBJECTDIR}/Source/SPI_Flash.o ${OBJECTDIR}/Source/Syslog.o ${OBJECTDIR}/Source/Watchdog.o ${OBJECTDIR}/Source/BootloaderInterface.o ${OBJECTDIR}/Source/TemperatureSensor.o ${OBJECTDIR}/Source/TC77.o ${OBJECTDIR}/Source/BootloaderProtocol.o ${OBJECTDIR}/Source/crc32.o ${OBJECTDIR}/Source/LoraWatchdog.o ${OBJECTDIR}/Source/hd44780.o ${OBJECTDIR}/Source/LCDCtrl.o ${OBJECTDIR}/Source/LoraNetworkInterface.o ${OBJECTDIR}/Source/SIM7080GInterface.o
|
||||||
|
|
||||||
# Source Files
|
# Source Files
|
||||||
SOURCEFILES=Source/ChaletduinoV2Board.c Source/winc3400_142/common/source/nm_common.c Source/winc3400_142/driver/source/m2m_flash.c Source/winc3400_142/driver/source/m2m_hif.c Source/winc3400_142/driver/source/m2m_ota.c Source/winc3400_142/driver/source/m2m_periph.c Source/winc3400_142/driver/source/m2m_ssl.c Source/winc3400_142/driver/source/m2m_wifi.c Source/winc3400_142/driver/source/nmasic.c Source/winc3400_142/driver/source/nmbus.c Source/winc3400_142/driver/source/nmdrv.c Source/winc3400_142/driver/source/nmspi.c Source/winc3400_142/socket/source/inet_addr.c Source/winc3400_142/socket/source/inet_ntop.c Source/winc3400_142/socket/source/socket.c Source/winc3400_142/spi_flash/source/spi_flash.c Source/DigitalIO.c Source/InternalUart.c Source/NetworkProtocol.c Source/Terminal.c Source/Uart.c Source/Util.c Source/exceptions.c Source/interrupts.c Source/main.c Source/system.c Source/template.c Source/timer.c Source/WiFiCtrl.c Source/SPI.c Source/ChaletPowerRelay.c Source/HarakiriRelay.c Source/BatteryMonitor.c Source/ina219.c Source/I2C.c Source/SPI_Flash.c Source/Syslog.c Source/Watchdog.c Source/BootloaderInterface.c Source/TemperatureSensor.c Source/TC77.c Source/BootloaderProtocol.c Source/crc32.c Source/LoraWatchdog.c Source/hd44780.c Source/LCDCtrl.c Source/LoraNetworkInterface.c
|
SOURCEFILES=Source/ChaletduinoV2Board.c Source/winc3400_142/common/source/nm_common.c Source/winc3400_142/driver/source/m2m_flash.c Source/winc3400_142/driver/source/m2m_hif.c Source/winc3400_142/driver/source/m2m_ota.c Source/winc3400_142/driver/source/m2m_periph.c Source/winc3400_142/driver/source/m2m_ssl.c Source/winc3400_142/driver/source/m2m_wifi.c Source/winc3400_142/driver/source/nmasic.c Source/winc3400_142/driver/source/nmbus.c Source/winc3400_142/driver/source/nmdrv.c Source/winc3400_142/driver/source/nmspi.c Source/winc3400_142/socket/source/inet_addr.c Source/winc3400_142/socket/source/inet_ntop.c Source/winc3400_142/socket/source/socket.c Source/winc3400_142/spi_flash/source/spi_flash.c Source/DigitalIO.c Source/InternalUart.c Source/NetworkProtocol.c Source/Terminal.c Source/Uart.c Source/Util.c Source/exceptions.c Source/interrupts.c Source/main.c Source/system.c Source/template.c Source/timer.c Source/WiFiCtrl.c Source/SPI.c Source/ChaletPowerRelay.c Source/HarakiriRelay.c Source/BatteryMonitor.c Source/ina219.c Source/I2C.c Source/SPI_Flash.c Source/Syslog.c Source/Watchdog.c Source/BootloaderInterface.c Source/TemperatureSensor.c Source/TC77.c Source/BootloaderProtocol.c Source/crc32.c Source/LoraWatchdog.c Source/hd44780.c Source/LCDCtrl.c Source/LoraNetworkInterface.c Source/SIM7080GInterface.c
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -383,6 +383,12 @@ ${OBJECTDIR}/Source/LoraNetworkInterface.o: Source/LoraNetworkInterface.c .gene
|
|||||||
@${RM} ${OBJECTDIR}/Source/LoraNetworkInterface.o
|
@${RM} ${OBJECTDIR}/Source/LoraNetworkInterface.o
|
||||||
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MP -MMD -MF "${OBJECTDIR}/Source/LoraNetworkInterface.o.d" -o ${OBJECTDIR}/Source/LoraNetworkInterface.o Source/LoraNetworkInterface.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD)
|
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MP -MMD -MF "${OBJECTDIR}/Source/LoraNetworkInterface.o.d" -o ${OBJECTDIR}/Source/LoraNetworkInterface.o Source/LoraNetworkInterface.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD)
|
||||||
|
|
||||||
|
${OBJECTDIR}/Source/SIM7080GInterface.o: Source/SIM7080GInterface.c .generated_files/flags/ChaletDuinoV2_795F512H_/393cd301e79cf1604517ded88ef2db158b1cbcbf .generated_files/flags/ChaletDuinoV2_795F512H_/da39a3ee5e6b4b0d3255bfef95601890afd80709
|
||||||
|
@${MKDIR} "${OBJECTDIR}/Source"
|
||||||
|
@${RM} ${OBJECTDIR}/Source/SIM7080GInterface.o.d
|
||||||
|
@${RM} ${OBJECTDIR}/Source/SIM7080GInterface.o
|
||||||
|
${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MP -MMD -MF "${OBJECTDIR}/Source/SIM7080GInterface.o.d" -o ${OBJECTDIR}/Source/SIM7080GInterface.o Source/SIM7080GInterface.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD)
|
||||||
|
|
||||||
else
|
else
|
||||||
${OBJECTDIR}/Source/ChaletduinoV2Board.o: Source/ChaletduinoV2Board.c .generated_files/flags/ChaletDuinoV2_795F512H_/f317718effc03bab7ba3e84ce061f1c4eb609db9 .generated_files/flags/ChaletDuinoV2_795F512H_/da39a3ee5e6b4b0d3255bfef95601890afd80709
|
${OBJECTDIR}/Source/ChaletduinoV2Board.o: Source/ChaletduinoV2Board.c .generated_files/flags/ChaletDuinoV2_795F512H_/f317718effc03bab7ba3e84ce061f1c4eb609db9 .generated_files/flags/ChaletDuinoV2_795F512H_/da39a3ee5e6b4b0d3255bfef95601890afd80709
|
||||||
@${MKDIR} "${OBJECTDIR}/Source"
|
@${MKDIR} "${OBJECTDIR}/Source"
|
||||||
@ -666,6 +672,12 @@ ${OBJECTDIR}/Source/LoraNetworkInterface.o: Source/LoraNetworkInterface.c .gene
|
|||||||
@${RM} ${OBJECTDIR}/Source/LoraNetworkInterface.o
|
@${RM} ${OBJECTDIR}/Source/LoraNetworkInterface.o
|
||||||
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MP -MMD -MF "${OBJECTDIR}/Source/LoraNetworkInterface.o.d" -o ${OBJECTDIR}/Source/LoraNetworkInterface.o Source/LoraNetworkInterface.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD)
|
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MP -MMD -MF "${OBJECTDIR}/Source/LoraNetworkInterface.o.d" -o ${OBJECTDIR}/Source/LoraNetworkInterface.o Source/LoraNetworkInterface.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD)
|
||||||
|
|
||||||
|
${OBJECTDIR}/Source/SIM7080GInterface.o: Source/SIM7080GInterface.c .generated_files/flags/ChaletDuinoV2_795F512H_/bb25edeaeee9c5989c988de423ef7b2e942e0d88 .generated_files/flags/ChaletDuinoV2_795F512H_/da39a3ee5e6b4b0d3255bfef95601890afd80709
|
||||||
|
@${MKDIR} "${OBJECTDIR}/Source"
|
||||||
|
@${RM} ${OBJECTDIR}/Source/SIM7080GInterface.o.d
|
||||||
|
@${RM} ${OBJECTDIR}/Source/SIM7080GInterface.o
|
||||||
|
${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"Source" -I"Source/winc3400_142" -I"Source/winc3400_142/bsp/include" -I"Source/winc3400_142/common/include" -I"Source/winc3400_142/driver/include" -I"Source/winc3400_142/socket/include" -I"Source/winc3400_142/spi_flash/include" -DCHALETDUINO_V2_BRD -D_SUPPRESS_PLIB_WARNING -MP -MMD -MF "${OBJECTDIR}/Source/SIM7080GInterface.o.d" -o ${OBJECTDIR}/Source/SIM7080GInterface.o Source/SIM7080GInterface.c -DXPRJ_ChaletDuinoV2_795F512H_=$(CND_CONF) $(COMPARISON_BUILD)
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
#Mon May 20 12:06:36 EDT 2024
|
#Mon Oct 28 15:09:01 EDT 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
|
||||||
@ -7,7 +7,7 @@ com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=bcd6e5453a11ce86a
|
|||||||
ChaletDuinoV2_795F512H_.com-microchip-mplab-mdbcore-ICD3Tool-ICD3DbgToolManager.md5=b8062f7a3afd14c7a6d50c4bb4696d24
|
ChaletDuinoV2_795F512H_.com-microchip-mplab-mdbcore-ICD3Tool-ICD3DbgToolManager.md5=b8062f7a3afd14c7a6d50c4bb4696d24
|
||||||
default.com-microchip-mplab-nbide-toolchain-xc32-XC32LanguageToolchain.md5=de2d3bc95a22a3f432c2e39f49efafbc
|
default.com-microchip-mplab-nbide-toolchain-xc32-XC32LanguageToolchain.md5=de2d3bc95a22a3f432c2e39f49efafbc
|
||||||
default.com-microchip-mplab-mdbcore-ICD3Tool-ICD3DbgToolManager.md5=b8062f7a3afd14c7a6d50c4bb4696d24
|
default.com-microchip-mplab-mdbcore-ICD3Tool-ICD3DbgToolManager.md5=b8062f7a3afd14c7a6d50c4bb4696d24
|
||||||
configurations-xml=a693428a995780ad86dbb540f0a83cde
|
configurations-xml=77baaad64812ff2776348872e45862e6
|
||||||
ChaletDuino_775F512H_.com-microchip-mplab-nbide-toolchain-xc32-XC32LanguageToolchain.md5=de2d3bc95a22a3f432c2e39f49efafbc
|
ChaletDuino_775F512H_.com-microchip-mplab-nbide-toolchain-xc32-XC32LanguageToolchain.md5=de2d3bc95a22a3f432c2e39f49efafbc
|
||||||
host.platform=windows
|
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
|
||||||
|
|||||||
@ -191,6 +191,8 @@
|
|||||||
<itemPath>Source/hd44780.c</itemPath>
|
<itemPath>Source/hd44780.c</itemPath>
|
||||||
<itemPath>Source/LCDCtrl.c</itemPath>
|
<itemPath>Source/LCDCtrl.c</itemPath>
|
||||||
<itemPath>Source/LoraNetworkInterface.c</itemPath>
|
<itemPath>Source/LoraNetworkInterface.c</itemPath>
|
||||||
|
<itemPath>Source/SIM7080GInterface.c</itemPath>
|
||||||
|
<itemPath>Source/SIM7080GInterface.h</itemPath>
|
||||||
</logicalFolder>
|
</logicalFolder>
|
||||||
<logicalFolder name="ExternalFiles"
|
<logicalFolder name="ExternalFiles"
|
||||||
displayName="Important Files"
|
displayName="Important Files"
|
||||||
|
|||||||
@ -25,7 +25,13 @@
|
|||||||
</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/main.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/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/Syslog.c</file>
|
||||||
<file>file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/Terminal.c</file>
|
<file>file:/D:/Main/PicDev/Projets/ChaletLora/ChaletLora.X/Source/Terminal.c</file>
|
||||||
</group>
|
</group>
|
||||||
</open-files>
|
</open-files>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user