Open Storm
modem.h
Go to the documentation of this file.
1 
8 #ifndef MODEM_H
9 #define MODEM_H
10 #include <project.h>
11 
12 #define MODEM_STATE_OFF 0
13 #define MODEM_STATE_IDLE 1
14 #define MODEM_STATE_READY 3
15 #define MAX_GET_ATTEMPTS 2
16 #define MAX_SEND_ATTEMPTS 1//2
17 #define MAX_SEND_LENGTH 5000
18 #define MAX_RECV_LENGTH 5000
19 #define CHUNK_SIZE 800
20 #define CHUNK_STRING_LENGTH 10
21 
22 extern uint8 modem_state;
23 extern uint8 lock_acquired;
24 extern uint32 feed_id;
25 extern char* api_key;
26 
35 uint8 modem_startup(int *conn_attempts);
36 
42 uint8 modem_shutdown();
43 
47 void modem_start();
48 
52 void modem_stop();
53 
63 uint8 at_write_command(char* uart_string, char* expected_response, uint32 uart_timeout);
64 
70 uint8 modem_connect();
71 
77 uint8 modem_disconnect();
78 
84 uint8 modem_setup();
85 
91 uint8 modem_check_network();
92 
100 
109 uint8 modem_get_meid(char* meid);
110 
119 uint8 modem_check_signal_quality(int *rssi, int *fer);
120 
134 uint8 modem_set_flow_control(uint8 param);
135 
146 uint8 modem_set_error_reports(uint8 param);
147 
148 // Removed functions
149 //uint8 modem_send_packet(char* socket_dial_str, char* send_str);
150 //uint8 modem_get_packet(char* packet, char* csv);
151 //uint8 modem_get_state();
152 
158 uint8 modem_reset();
159 
165 uint8 modem_power_on();
166 
172 uint8 modem_power_off();
173 
185 uint8 modem_socket_dial(char *socket_dial_str, char* endpoint, int port,
186  int construct_new, int ssl_enabled);
187 
195 uint8 modem_socket_close(int ssl_enabled);
196 
209 int send_chunked_request(char* send_str, char *chunk, int chunk_len, char *send_cmd, char *ring_cmd, char *term_char);
210 
223 int read_response(char message[], char *recv_cmd, char *ring_cmd, uint8 get_response,
224  int max_loops, int max_message_size);
225 
236 uint8 modem_send_recv(char* send_str, char* response, uint8 get_response, int ssl_enabled);
237 
252 void construct_generic_request(char* send_str, char* body, char* host, char* route,
253  int port, char* method, char* connection_type,
254  char *extra_headers, int extra_len, char* http_protocol);
255 
265 uint8 modem_pdp_context_toggle(uint8 activate_pdp);
266 
272 void uart_string_reset();
273 
274 #endif
275 //[] END OF FILE
uint8 modem_power_off()
Powers off the modem.
Definition: modem.c:161
uint8 modem_check_signal_quality(int *rssi, int *fer)
Signal Quality Check. Function wrapper for AT+CSQ command.
Definition: modem.c:320
uint8 modem_connect()
Establish modem connection with internet.
Definition: modem.c:220
void modem_start()
Initialize modem.
Definition: modem.c:85
uint8 modem_reset()
Resets the modem.
Definition: modem.c:196
uint8 modem_socket_dial(char *socket_dial_str, char *endpoint, int port, int construct_new, int ssl_enabled)
Opens a remote connection via socket.
Definition: modem.c:414
int modem_get_socket_status()
Socket Status. Function wrapper for AT::SS command.
Definition: modem.c:354
uint8 at_write_command(char *uart_string, char *expected_response, uint32 uart_timeout)
Write AT command to cell module.
Definition: modem.c:105
uint8 modem_startup(int *conn_attempts)
Startup sequence to power on the modem, start modem components and prepare for sending/receiving mess...
Definition: modem.c:35
int read_response(char message[], char *recv_cmd, char *ring_cmd, uint8 get_response, int max_loops, int max_message_size)
Reads a HTTP response with a chunked of fixed-length transfer encoding over multiple modem buffers...
Definition: modem.c:511
uint8 modem_get_meid(char *meid)
Mobile Equipment Identifier. Function wrapper for AT::MEID command.
Definition: modem.c:278
uint8 modem_send_recv(char *send_str, char *response, uint8 get_response, int ssl_enabled)
TODO.
Definition: modem.c:717
void uart_string_reset()
Reset modem_received_buffer, clear RX buffer, and reset string index.
Definition: modem.c:747
void construct_generic_request(char *send_str, char *body, char *host, char *route, int port, char *method, char *connection_type, char *extra_headers, int extra_len, char *http_protocol)
Constructs a generic HTTP request.
Definition: modem.c:450
uint8 modem_set_flow_control(uint8 param)
Set Flow Control. Set command controls the RS232 flow control behaviour.
Definition: modem.c:370
uint8 modem_socket_close(int ssl_enabled)
Closes the socket on the modem.
Definition: modem.c:438
uint8 modem_shutdown()
Shutdown sequence to stop/power down modem components.
Definition: modem.c:76
uint8 modem_setup()
Initialize configurations for the modem.
Definition: modem.c:210
int send_chunked_request(char *send_str, char *chunk, int chunk_len, char *send_cmd, char *ring_cmd, char *term_char)
Breaks request string into packets and sends them.
Definition: modem.c:472
void modem_stop()
Deinitialize modem.
Definition: modem.c:95
uint8 modem_set_error_reports(uint8 param)
Report Mobile Equipment Error. Set command enables/disables the report of result code.
Definition: modem.c:380
uint8 modem_power_on()
Powers on the modem.
Definition: modem.c:126
uint8 modem_check_network()
Network Registration Report. Function wrapper for AT+CREG command.
Definition: modem.c:270
uint8 modem_disconnect()
Close modem connection to network.
Definition: modem.c:256
uint8 modem_pdp_context_toggle(uint8 activate_pdp)
Context Activation. Execution command is used to activate or deactivate the specified PDP context...
Definition: modem.c:390