Демонстрационная прошивка отладочного комплекта МТС 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) |
Точка входа приложения. | |
#define ALWAYS_ENTER_SETUP 0 |
#define DO_NOT_GO_STOP 0 |
Отладочная опция: отключить переход контроллера в режим STOP между сеансами передачи телеметрии (радиомодуль также не конфигурируется для работы с использованием PSM; при активации этой опции следует убедиться, что использование PSM выключено).
Требуется, если необходимо, чтобы программатор оставался подключенным к контроллеру (при переходе в режим STOP подключение теряется).
#define USE_OLD_MODULE_INIT 0 |
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, в которую будет записана долгота |
uint8_t SARA_init | ( | uint8_t | use_NIDD, |
uint8_t * | NIDD_APN | ||
) |
Инициализация радиомодуля
Функция пытается включить и инициализировать радиомодуль. Если в течение пяти секунд с момента импульса включения модуль не ответил, то он либо уже был во включенном состоянии к моменту старта контроллера (например, если контроллер был перезагружен отдельно от радиомодуля), либо не был сконфигурирован должным образом (выключена функция приветствия при старте), либо неисправен. Функция проверяет, отвечает ли радиомодуль на команды. Если отвечает, значит модуль исправен.
Далее производится проверка текущего профиля радиомодуля. Если профиль не соответствует заданному в настройках, проводится перенастройка модуля с последующей его перезагрузкой.
[in] | use_NIDD | 1 - использовать NIDD для передачи данных; 0 - использовать IP для передачи данных. |
[in] | NIDD_APN | - строка, задающая APN для режима NIDD. В случае использования IP может принимать значение NULL. |
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 для пересылки данных |