Демонстрационная прошивка отладочного комплекта МТС NB-IoT
Группы | Макросы | Функции
Код логики демонстрационного приложения

Группы

 Модуль, реализующий функции сервисного меню
 

Макросы

#define DO_NOT_GO_STOP   0
 
#define ALWAYS_ENTER_SETUP   0
 
#define USE_OLD_MODULE_INIT   0
 
#define MAX_JSON_LENGTH   200
 
#define MAX_COAP_MSG_LEN   (MAX_JSON_LENGTH + MAX_URI_LENGTH + 50)
 

Функции

uint8_t SARA_init (uint8_t use_NIDD, uint8_t *NIDD_APN)
 Инициализация радиомодуля Подробнее...
 
uint8_t NMEA_to_LatLon (uint8_t *NMEA_string_in, double *dd_lat_out, double *dd_lon_out)
 Преобразует данные в формате NMEA (с широтой и долготой в градусах и минутах) в градусы с дробной частью. Подробнее...
 
uint8_t transmit_telemetry (uint8_t *target_IP, uint8_t *target_url, uint16_t target_port, uint8_t *ICCID_string, uint8_t use_NIDD, uint8_t private_gnss)
 Передача телеметрии Подробнее...
 
void service_menu (void)
 Функция, реализующая сервисное меню. См. описание сервисного меню на главной странице.
 
void main (void)
 Точка входа приложения.
 

Подробное описание

Макросы

◆ ALWAYS_ENTER_SETUP

#define ALWAYS_ENTER_SETUP   0

Отладочная опция: всегда входить в сервисное меню

См. определение в файле main.c строка 185

◆ DO_NOT_GO_STOP

#define DO_NOT_GO_STOP   0

Отладочная опция: отключить переход контроллера в режим STOP между сеансами передачи телеметрии (радиомодуль также не конфигурируется для работы с использованием PSM; при активации этой опции следует убедиться, что использование PSM выключено).

Требуется, если необходимо, чтобы программатор оставался подключенным к контроллеру (при переходе в режим STOP подключение теряется).

См. определение в файле main.c строка 181

◆ USE_OLD_MODULE_INIT

#define USE_OLD_MODULE_INIT   0

Использовать старый способ инициализации радиомодуля. Новый способ обеспечивает более быстрый и оптимальный старт.

См. определение в файле main.c строка 190

Функции

◆ NMEA_to_LatLon()

uint8_t NMEA_to_LatLon ( uint8_t *  NMEA_string_in,
double *  dd_lat_out,
double *  dd_lon_out 
)

Преобразует данные в формате NMEA (с широтой и долготой в градусах и минутах) в градусы с дробной частью.

Аргументы
[in]NMEA_string_inСтрока в формате NMEA (сообщение $GNGLL)
[out]dd_lat_outУказатель на переменную типа double, в которую будет записана широта
[out]dd_lon_outУказатель на переменную типа double, в которую будет записана долгота
Возвращает
1 - преобразование выполнено успешно; 0 - преобразование выполнить не удалось.

См. определение в файле main.c строка 536

◆ SARA_init()

uint8_t SARA_init ( uint8_t  use_NIDD,
uint8_t *  NIDD_APN 
)

Инициализация радиомодуля

Функция пытается включить и инициализировать радиомодуль. Если в течение пяти секунд с момента импульса включения модуль не ответил, то он либо уже был во включенном состоянии к моменту старта контроллера (например, если контроллер был перезагружен отдельно от радиомодуля), либо не был сконфигурирован должным образом (выключена функция приветствия при старте), либо неисправен. Функция проверяет, отвечает ли радиомодуль на команды. Если отвечает, значит модуль исправен.

Далее производится проверка текущего профиля радиомодуля. Если профиль не соответствует заданному в настройках, проводится перенастройка модуля с последующей его перезагрузкой.

Аргументы
[in]use_NIDD1 - использовать NIDD для передачи данных; 0 - использовать IP для передачи данных.
[in]NIDD_APN- строка, задающая APN для режима NIDD. В случае использования IP может принимать значение NULL.
Возвращает
1 - модуль инициализирован и готов к работе; 0 - произошла ошибка при инициализации.

См. определение в файле main.c строка 348

◆ transmit_telemetry()

uint8_t transmit_telemetry ( uint8_t *  target_IP,
uint8_t *  target_url,
uint16_t  target_port,
uint8_t *  ICCID_string,
uint8_t  use_NIDD,
uint8_t  private_gnss 
)

Передача телеметрии

Телеметрия отправляется на сервер в виде строки следующего формата: {"interface":"telemetry", "ICCID":"%s", "Tamb_degC":d, "aX":d, "aY":d, "aZ":d, "RSSI_dBm":d}

Передается ICCID установленного SIM-чипа, температура, измеренная встроенным термодатчиком, проекции ускорения на оси акселерометра, а также уровень мощности сигнала сети, регистрируемый устройством.

В случае использования протокола IP, строка инкапсулируется в сообщение CoAP с установленным методом CoAP POST, после чего отсылается в пакете UDP на указанный сервер и порт.

В случае использования метода NIDD строка передается как есть через non-IP транспорт сети.

Аргументы
[in]target_IP- строка, содержащая IP-адрес сервера, на который будет отослана телеметрия (имеет смысл только для метода IP)
[in]target_url- строка, содержащая URL, на который будет отослана телеметрия (имеет смысл только для метода IP)
[in]target_port- номер порта UDP, на который будет отослан пакет с телеметрией
[in]ICCID_string- строка-индентификатор SIM-чипа для включения в телеметрию
[in]use_NIDD- 1 - использовать метод NIDD для пересылки данных; 0 - использовать метод IP для пересылки данных
Возвращает
1 - телеметрия успешно отослана; 0 - произошла ошибка

См. определение в файле main.c строка 662