1
0
mirror of https://github.com/arduino/Arduino.git synced 2024-11-29 10:24:12 +01:00

Merge pull request #2164 from cmaglie/gsm_progmem_update

GSM: Updated PROGMEM compatibility with newer gcc
This commit is contained in:
Cristian Maglie 2014-07-04 17:33:41 +02:00
commit 39d759851f
8 changed files with 15 additions and 21 deletions

View File

@ -6,8 +6,8 @@
#define __TOUTMODEMCONFIGURATION__ 5000//equivalent to 30000 because of time in interrupt routine. #define __TOUTMODEMCONFIGURATION__ 5000//equivalent to 30000 because of time in interrupt routine.
#define __TOUTAT__ 1000 #define __TOUTAT__ 1000
char _command_AT[] PROGMEM = "AT"; const char _command_AT[] PROGMEM = "AT";
char _command_CGREG[] PROGMEM = "AT+CGREG?"; const char _command_CGREG[] PROGMEM = "AT+CGREG?";
GSM3ShieldV1AccessProvider::GSM3ShieldV1AccessProvider(bool debug) GSM3ShieldV1AccessProvider::GSM3ShieldV1AccessProvider(bool debug)

View File

@ -12,7 +12,7 @@ int GSM3ShieldV1BaseProvider::ready()
return theGSM3ShieldV1ModemCore.getCommandError(); return theGSM3ShieldV1ModemCore.getCommandError();
}; };
void GSM3ShieldV1BaseProvider::prepareAuxLocate(PROGMEM prog_char str[], char auxLocate[]) void GSM3ShieldV1BaseProvider::prepareAuxLocate(PGM_P str, char auxLocate[])
{ {
int i=0; int i=0;
char c; char c;

View File

@ -54,7 +54,7 @@ class GSM3ShieldV1BaseProvider
@param str PROGMEN @param str PROGMEN
@param auxLocate Buffer where to locate strings @param auxLocate Buffer where to locate strings
*/ */
void prepareAuxLocate(PROGMEM prog_char str[], char auxLocate[]); void prepareAuxLocate(PGM_P str, char auxLocate[]);
/** Manages modem response /** Manages modem response
@param from Initial byte of buffer @param from Initial byte of buffer
@ -70,4 +70,4 @@ class GSM3ShieldV1BaseProvider
}; };
#endif #endif

View File

@ -1,8 +1,8 @@
#include <GSM3ShieldV1DataNetworkProvider.h> #include <GSM3ShieldV1DataNetworkProvider.h>
#include <Arduino.h> #include <Arduino.h>
char _command_CGATT[] PROGMEM = "AT+CGATT="; const char _command_CGATT[] PROGMEM = "AT+CGATT=";
char _command_SEPARATOR[] PROGMEM = "\",\""; const char _command_SEPARATOR[] PROGMEM = "\",\"";
//Attach GPRS main function. //Attach GPRS main function.
GSM3_NetworkStatus_t GSM3ShieldV1DataNetworkProvider::attachGPRS(char* apn, char* user_name, char* password, bool synchronous) GSM3_NetworkStatus_t GSM3ShieldV1DataNetworkProvider::attachGPRS(char* apn, char* user_name, char* password, bool synchronous)

View File

@ -75,7 +75,7 @@ void GSM3ShieldV1ModemCore::closeCommand(int code)
} }
//Generic command (stored in flash). //Generic command (stored in flash).
void GSM3ShieldV1ModemCore::genericCommand_rq(PROGMEM prog_char str[], bool addCR) void GSM3ShieldV1ModemCore::genericCommand_rq(PGM_P str, bool addCR)
{ {
theBuffer().flush(); theBuffer().flush();
writePGM(str, addCR); writePGM(str, addCR);
@ -157,7 +157,7 @@ void GSM3ShieldV1ModemCore::openCommand(GSM3ShieldV1BaseProvider* provider, GSM3
}; };
size_t GSM3ShieldV1ModemCore::writePGM(PROGMEM prog_char str[], bool CR) size_t GSM3ShieldV1ModemCore::writePGM(PGM_P str, bool CR)
{ {
int i=0; int i=0;
char c; char c;

View File

@ -167,7 +167,7 @@ class GSM3ShieldV1ModemCore : public GSM3SoftSerialMgr, public Print
@param CR Carriadge return adding automatically @param CR Carriadge return adding automatically
@return size @return size
*/ */
virtual size_t writePGM(PROGMEM prog_char str[], bool CR=true); virtual size_t writePGM(PGM_P str, bool CR=true);
/** Establish debug mode /** Establish debug mode
@param db Boolean that indicates debug on or off @param db Boolean that indicates debug on or off
@ -182,11 +182,11 @@ class GSM3ShieldV1ModemCore : public GSM3SoftSerialMgr, public Print
*/ */
bool genericParse_rsp(bool& rsp, char* string=0, char* string2=0); bool genericParse_rsp(bool& rsp, char* string=0, char* string2=0);
/** Generates a generic AT command request from PROGMEM prog_char buffer /** Generates a generic AT command request from PROGMEM buffer
@param str Buffer with AT command @param str Buffer with AT command
@param addCR Carriadge return adding automatically @param addCR Carriadge return adding automatically
*/ */
void genericCommand_rq(PROGMEM prog_char str[], bool addCR=true); void genericCommand_rq(PGM_P str, bool addCR=true);
/** Generates a generic AT command request from a simple char buffer /** Generates a generic AT command request from a simple char buffer
@param str Buffer with AT command @param str Buffer with AT command
@ -194,12 +194,6 @@ class GSM3ShieldV1ModemCore : public GSM3SoftSerialMgr, public Print
*/ */
void genericCommand_rqc(const char* str, bool addCR=true); void genericCommand_rqc(const char* str, bool addCR=true);
/** Generates a generic AT command request from characters buffer
@param str Buffer with AT command
@param addCR Carriadge return adding automatically
*/
void genericCommand_rq(const char* str, bool addCR=true);
/** Returns the circular buffer /** Returns the circular buffer
@return circular buffer @return circular buffer
*/ */
@ -257,4 +251,4 @@ class GSM3ShieldV1ModemCore : public GSM3SoftSerialMgr, public Print
extern GSM3ShieldV1ModemCore theGSM3ShieldV1ModemCore; extern GSM3ShieldV1ModemCore theGSM3ShieldV1ModemCore;
#endif #endif

View File

@ -1,7 +1,7 @@
#include <GSM3ShieldV1MultiClientProvider.h> #include <GSM3ShieldV1MultiClientProvider.h>
#include <GSM3ShieldV1ModemCore.h> #include <GSM3ShieldV1ModemCore.h>
char _command_MultiQISRVC[] PROGMEM = "AT+QISRVC="; const char _command_MultiQISRVC[] PROGMEM = "AT+QISRVC=";
#define __TOUTFLUSH__ 10000 #define __TOUTFLUSH__ 10000

View File

@ -4,7 +4,7 @@
#define __NCLIENTS_MAX__ 3 #define __NCLIENTS_MAX__ 3
char _command_QILOCIP[] PROGMEM = "AT+QILOCIP"; const char _command_QILOCIP[] PROGMEM = "AT+QILOCIP";
GSM3ShieldV1MultiServerProvider::GSM3ShieldV1MultiServerProvider() GSM3ShieldV1MultiServerProvider::GSM3ShieldV1MultiServerProvider()
{ {