Демонстрационная прошивка отладочного комплекта МТС NB-IoT
at_cmd_support.h
См. документацию.
1 #ifndef AT_CMD_SUPPORT_H_INCLUDED
2 #define AT_CMD_SUPPORT_H_INCLUDED
3 
4 #include "stm32l1xx.h"
5 #include "uart_api.h"
6 #include "stdio.h"
7 #include "string.h"
8 
21 #define AT_RESP_BUFFER_LENGTH 1024
25 
26 //Отключение отслеживания конца ответа.
27 //Формат ответа модуля следующий: <команда> CR CR LF <ответ> [OK | ERROR] CR LF
28 //Конечный автомат, принимающий данные, по-умолчанию выполняет поиск последовательности "OK" или "ERROR" во входных данных;
29 //это считается концом приема ответа. Определение DEBUG_NO_RESP_END_SEARCH отключает этот механизм. В таком случае
30 //AT_ReadResponseBuffer() следует вызывать только тогда, когда точно известно, что ответ получен.
31 //#define DEBUG_NO_RESP_END_SEARCH
32 
33 #ifndef NULL
34 #define NULL ((void *)0)
35 #endif
36 
38 #define INVALID_SOCKET_ID 255
39 
40 typedef enum {
52 
55 #define USE_ADVANCED_URC_SEARCH 1
56 
58 #define NUM_URC_SUPPORTED 2
59 
61 #define URC_NAME_LENGTH 16
62 typedef struct {
64 
66  uint8_t URC_string_name[URC_NAME_LENGTH];
68  uint8_t match_counter;
72  uint8_t URC_detected;
73 
75 
96 uint16_t AT_ReadReponseBuffer(uint8_t* buffer_out,uint16_t buffer_length,uint8_t* is_overflowed,uint8_t* overrun_detected,uint8_t *error_status,uint32_t max_wait_time);
97 
103 void AT_SendCommand(const uint8_t *cmd);
104 
111 uint8_t AT_CreateUDPSocket(uint32_t max_wait_time);
112 
121 uint8_t AT_CloseUDPSocket(uint8_t socket_id,uint32_t max_wait_time);
122 
134 at_udp_error_t AT_SendUDPData(uint8_t socket_id,uint8_t *target_IP_string,uint16_t target_port,uint8_t *data,uint16_t data_length,uint32_t max_wait_time);
145 int16_t AT_GetRSSI(uint32_t timeout);
153 uint8_t AT_CheckUDPReceived(uint8_t *socket_id,uint16_t *packet_length);
165 at_udp_error_t AT_ReadUDPData(uint8_t socket_id,uint16_t read_length,uint8_t *source_IP,uint16_t *source_port,uint8_t *data_out,uint32_t max_wait_time);
166 
177 uint16_t AT_CheckNIDDReceived(uint8_t *data_out);
178 
186 uint8_t AT_ReadICCID(uint8_t *ICCID,uint32_t timeout);
187 
194 uint8_t AT_ReadIMEI(uint8_t *IMEI,uint32_t timeout);
195 
206 uint8_t AT_SendStringUsingNIDD(uint8_t *str,uint32_t timeout);
207 
214 uint8_t AT_IsRegistered(uint32_t timeout);
225 uint8_t AT_SwitchPSM(uint8_t state,uint32_t timeout);
226 
227 void __AT_FSM_rearm(void);
228 
229 #endif /* AT_CMD_SUPPORT_H_INCLUDED */
AT_ReadReponseBuffer
uint16_t AT_ReadReponseBuffer(uint8_t *buffer_out, uint16_t buffer_length, uint8_t *is_overflowed, uint8_t *overrun_detected, uint8_t *error_status, uint32_t max_wait_time)
Чтение ответа модуля.
Definition: at_cmd_support.c:243
AT_CheckNIDDReceived
uint16_t AT_CheckNIDDReceived(uint8_t *data_out)
Проверка наличия NIDD-данных и, при их наличии, чтение принятой строки
Definition: at_cmd_support.c:498
AT_ReadICCID
uint8_t AT_ReadICCID(uint8_t *ICCID, uint32_t timeout)
Чтение ICCID SIM-карты/чипа
Definition: at_cmd_support.c:683
AT_CheckUDPReceived
uint8_t AT_CheckUDPReceived(uint8_t *socket_id, uint16_t *packet_length)
Позволяет проверить, есть ли в буфере радиомодуля входящий UDP-пакет.
Definition: at_cmd_support.c:441
at_udp_error_t
at_udp_error_t
Definition: at_cmd_support.h:40
expected_URC_entry_t::URC_detected
uint8_t URC_detected
Definition: at_cmd_support.h:72
AT_SwitchPSM
uint8_t AT_SwitchPSM(uint8_t state, uint32_t timeout)
Включить или выключить использование модулем режима PSM.
Definition: at_cmd_support.c:834
AT_ReadUDPData
at_udp_error_t AT_ReadUDPData(uint8_t socket_id, uint16_t read_length, uint8_t *source_IP, uint16_t *source_port, uint8_t *data_out, uint32_t max_wait_time)
Чтение данных из указанного UDP-сокета
Definition: at_cmd_support.c:555
AT_ERROR
Definition: at_cmd_support.h:44
AT_SendUDPData
at_udp_error_t AT_SendUDPData(uint8_t socket_id, uint8_t *target_IP_string, uint16_t target_port, uint8_t *data, uint16_t data_length, uint32_t max_wait_time)
Посылает пакет UDP по указанному адресу.
Definition: at_cmd_support.c:390
AT_SendStringUsingNIDD
uint8_t AT_SendStringUsingNIDD(uint8_t *str, uint32_t timeout)
Пересылает данные с помощью технологии NIDD.
Definition: at_cmd_support.c:763
AT_FORMAT_ERROR
Definition: at_cmd_support.h:46
expected_URC_entry_t
Структура, описывающая URC-сообщение, поиск которого будет производиться во входном потоке символов о...
Definition: at_cmd_support.h:63
expected_URC_entry_t::match_counter
uint8_t match_counter
Definition: at_cmd_support.h:68
URC_NAME_LENGTH
#define URC_NAME_LENGTH
Максимальная длина имени URC.
Definition: at_cmd_support.h:61
AT_IsRegistered
uint8_t AT_IsRegistered(uint32_t timeout)
Проверка регистрации модуля в сети LTE.
Definition: at_cmd_support.c:797
uart_api.h
AT_CreateUDPSocket
uint8_t AT_CreateUDPSocket(uint32_t max_wait_time)
Создает UDP-сокет средствами радиомодуля.
Definition: at_cmd_support.c:324
AT_NO_ERROR
Definition: at_cmd_support.h:50
AT_ReadIMEI
uint8_t AT_ReadIMEI(uint8_t *IMEI, uint32_t timeout)
Чтение IMEI радиомодуля
Definition: at_cmd_support.c:726
AT_SendCommand
void AT_SendCommand(const uint8_t *cmd)
Посылает AT-команду в модуль.
Definition: at_cmd_support.c:318
AT_NO_RESPONSE
Definition: at_cmd_support.h:42
AT_GetRSSI
int16_t AT_GetRSSI(uint32_t timeout)
Получение мощности принимаемого сигнала в dBm.
Definition: at_cmd_support.c:623
expected_URC_entry_t::URC_header_detected
uint8_t URC_header_detected
Definition: at_cmd_support.h:70
AT_CloseUDPSocket
uint8_t AT_CloseUDPSocket(uint8_t socket_id, uint32_t max_wait_time)
Закрывает ранее созданный сокет UDP.
Definition: at_cmd_support.c:365
AT_LENGTH_DOES_NOT_MATCH
Definition: at_cmd_support.h:48