gsmgnss 2.0.0.0
main.c File Reference

GSMGNSS Click example. More...

#include "board.h"
#include "log.h"
#include "gsmgnss.h"
#include "string.h"

Macros

#define APP_OK   0
 
#define APP_ERROR_DRIVER   -1
 
#define APP_ERROR_OVERFLOW   -2
 
#define APP_ERROR_TIMEOUT   -3
 
#define RSP_OK   "OK"
 
#define RSP_ERROR   "ERROR"
 
#define SIM_APN   ""
 
#define SIM_SMSC   ""
 
#define PHONE_NUMBER_TO_MESSAGE   ""
 
#define PROCESS_BUFFER_SIZE   256
 
#define WAIT_FOR_CONNECTION   0
 
#define CONNECTED_TO_NETWORK   1
 
#define CONNECTED   "+CREG: 1,1"
 

Functions

void application_init (void)
 
void application_task (void)
 
int main (void)
 

Detailed Description

GSMGNSS Click example.

Description

This example reads and processes data from GSM/GNSS click.

The demo application is composed of two sections :

Application Init

Initializes the driver and powers up the module, then sets default configuration for connecting the device to network.

Application Task

Waits for the device to connect to network, then waits for the GNSS position fix. Once it get a fix, it sends an SMS with GNSS info to the selected phone number approximately every 40 seconds.

Additional Function

  • static void gsmgnss_clear_app_buf ( void )
  • static void gsmgnss_error_check( err_t error_flag )
  • static void gsmgnss_log_app_buf ( void )
  • static void gsmgnss_check_connection( void )
  • static err_t gsmgnss_rsp_check ( void )
  • static err_t gsmgnss_process ( void )
  • static void gnss_parser_application ( void )
Note
A passive GPS antenna is required for the GNSS to receive the position fix. It may take several minutes for the module to receive the fix. In order for the example to work, user needs to set the phone number to which he wants to send an SMS, and also will need to set an APN and SMSC (required for PDU mode only) of entered SIM card. Enter valid data for the following macros: SIM_APN, SIM_SMSC and PHONE_NUMBER_TO_MESSAGE. E.g. SIM_APN "vipmobile" SIM_SMSC "+381610401" PHONE_NUMBER_TO_MESSAGE "+381659999999"
Author
MikroE Team

Macro Definition Documentation

◆ APP_ERROR_DRIVER

#define APP_ERROR_DRIVER   -1

◆ APP_ERROR_OVERFLOW

#define APP_ERROR_OVERFLOW   -2

◆ APP_ERROR_TIMEOUT

#define APP_ERROR_TIMEOUT   -3

◆ APP_OK

#define APP_OK   0

◆ CONNECTED

#define CONNECTED   "+CREG: 1,1"

◆ CONNECTED_TO_NETWORK

#define CONNECTED_TO_NETWORK   1

◆ PHONE_NUMBER_TO_MESSAGE

#define PHONE_NUMBER_TO_MESSAGE   ""

◆ PROCESS_BUFFER_SIZE

#define PROCESS_BUFFER_SIZE   256

◆ RSP_ERROR

#define RSP_ERROR   "ERROR"

◆ RSP_OK

#define RSP_OK   "OK"

◆ SIM_APN

#define SIM_APN   ""

◆ SIM_SMSC

#define SIM_SMSC   ""

◆ WAIT_FOR_CONNECTION

#define WAIT_FOR_CONNECTION   0

Function Documentation

◆ application_init()

void application_init ( void )

Logger initialization. Default baud rate: 115200 Default log level: LOG_LEVEL_DEBUG

Note
If USB_UART_RX and USB_UART_TX are defined as HAL_PIN_NC, you will need to define them manually for log to work. See LOG_MAP_USB_UART macro definition for detailed explanation.

◆ application_task()

void application_task ( void )

◆ main()

int main ( void )