|
Open Storm
|
Implements functions for connecting to the cellular network, and sending/receiving packets. More...
#include <device.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include "modem.h"#include "strlib.h"#include "extern.h"
Functions | |
| CY_ISR_PROTO (Telit_isr_rx) | |
| void | uart_string_reset () |
| Reset modem_received_buffer, clear RX buffer, and reset string index. More... | |
| uint8 | modem_startup (int *conn_attempts) |
| Startup sequence to power on the modem, start modem components and prepare for sending/receiving messages over the network. More... | |
| uint8 | modem_shutdown () |
| Shutdown sequence to stop/power down modem components. More... | |
| void | modem_start () |
| Initialize modem. | |
| void | modem_stop () |
| Deinitialize modem. | |
| uint8 | at_write_command (char *uart_string, char *expected_response, uint32 uart_timeout) |
| Write AT command to cell module. More... | |
| uint8 | modem_power_on () |
| Powers on the modem. More... | |
| uint8 | modem_power_off () |
| Powers off the modem. More... | |
| uint8 | modem_reset () |
| Resets the modem. More... | |
| uint8 | modem_setup () |
| Initialize configurations for the modem. More... | |
| uint8 | modem_connect () |
| Establish modem connection with internet. More... | |
| uint8 | modem_disconnect () |
| Close modem connection to network. More... | |
| uint8 | modem_check_network () |
| Network Registration Report. Function wrapper for AT+CREG command. More... | |
| uint8 | modem_get_meid (char *meid) |
| Mobile Equipment Identifier. Function wrapper for AT::MEID command. More... | |
| uint8 | modem_check_signal_quality (int *rssi, int *fer) |
| Signal Quality Check. Function wrapper for AT+CSQ command. More... | |
| int | modem_get_socket_status () |
| Socket Status. Function wrapper for AT::SS command. More... | |
| uint8 | modem_set_flow_control (uint8 param) |
| Set Flow Control. Set command controls the RS232 flow control behaviour. More... | |
| uint8 | modem_set_error_reports (uint8 param) |
| Report Mobile Equipment Error. Set command enables/disables the report of result code. More... | |
| uint8 | modem_pdp_context_toggle (uint8 activate_pdp) |
| Context Activation. Execution command is used to activate or deactivate the specified PDP context. More... | |
| uint8 | modem_socket_dial (char *socket_dial_str, char *endpoint, int port, int construct_new, int ssl_enabled) |
| Opens a remote connection via socket. More... | |
| uint8 | modem_socket_close (int ssl_enabled) |
| Closes the socket on the modem. More... | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
| uint8 | modem_send_recv (char *send_str, char *response, uint8 get_response, int ssl_enabled) |
| TODO. More... | |
| CY_ISR (Telit_isr_rx) | |
Implements functions for connecting to the cellular network, and sending/receiving packets.
| uint8 at_write_command | ( | char * | uart_string, |
| char * | expected_response, | ||
| uint32 | uart_timeout | ||
| ) |
Write AT command to cell module.
| uart_string | AT command to write to buffer |
| expected_response | Substring that is expected in the response |
| uart_timeout | Timeout in milliseconds |
expected response is found; 0u otherwise. 

| 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.
| send_str | Buffer to store generated HTTP request. |
| body | HTTP Body. |
| host | Host. |
| route | Route. |
| port | Port. |
| method | HTTP Method. |
| connection_type | HTTP Connection. |
| extra_headers | Any extra HTTP headers. |
| extra_len | Length of the extra headers. |
| http_protocol | HTTP protocol. |

| uint8 modem_check_network | ( | ) |
Network Registration Report. Function wrapper for AT+CREG command.


| uint8 modem_check_signal_quality | ( | int * | rssi, |
| int * | fer | ||
| ) |
Signal Quality Check. Function wrapper for AT+CSQ command.
| rssi | An int* where rssi is to be stored. |
| fer | An int* where fer is to be stored. |

| uint8 modem_connect | ( | ) |
Establish modem connection with internet.


| uint8 modem_disconnect | ( | ) |
Close modem connection to network.


| uint8 modem_get_meid | ( | char * | meid | ) |
Mobile Equipment Identifier. Function wrapper for AT::MEID command.
| meid | String of size large enough to store an meid of 14 characters. In other words, sizeof(meid) > 14. |


| int modem_get_socket_status | ( | ) |
Socket Status. Function wrapper for AT::SS command.

| uint8 modem_pdp_context_toggle | ( | uint8 | activate_pdp | ) |
Context Activation. Execution command is used to activate or deactivate the specified PDP context.
| activate_pdp | enable flag:
|


| uint8 modem_power_off | ( | ) |
Powers off the modem.


| uint8 modem_power_on | ( | ) |
Powers on the modem.


| uint8 modem_reset | ( | ) |
Resets the modem.

| uint8 modem_send_recv | ( | char * | send_str, |
| char * | response, | ||
| uint8 | get_response, | ||
| int | ssl_enabled | ||
| ) |
TODO.
| send_str | |
| response | |
| get_response | |
| ssl_enabled |


| uint8 modem_set_error_reports | ( | uint8 | param | ) |
Report Mobile Equipment Error. Set command enables/disables the report of result code.
| param | enable flag:
|


| uint8 modem_set_flow_control | ( | uint8 | param | ) |
Set Flow Control. Set command controls the RS232 flow control behaviour.
| param | One of the following ints:
|


| uint8 modem_setup | ( | ) |
Initialize configurations for the modem.


| uint8 modem_shutdown | ( | ) |
Shutdown sequence to stop/power down modem components.

| uint8 modem_socket_close | ( | int | ssl_enabled | ) |
Closes the socket on the modem.
| ssl_enabled | Needs to know if ssl is enabled to close the socket properly. |


| uint8 modem_socket_dial | ( | char * | socket_dial_str, |
| char * | endpoint, | ||
| int | port, | ||
| int | construct_new, | ||
| int | ssl_enabled | ||
| ) |
Opens a remote connection via socket.
| socket_dial_str | |
| endpoint | Endpoint |
| port | Port |
| construct_new | Contruct new socket dial string flag |
| ssl_enabled | SSL enabled flag |


| uint8 modem_startup | ( | int * | conn_attempts | ) |
Startup sequence to power on the modem, start modem components and prepare for sending/receiving messages over the network.
| conn_attempts | Buffer to store the number of attempted connections |


| 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.
| message | The message buffer to write to |
| recv_cmd | The Telit receive command to use: AT::SRECV=1,<BYTES> or AT::SSLRECV=1,<BYTES> |
| ring_cmd | The Telit ring URC to seek: SRING: 1 or SSLRING: 1 |
| get_response | 1u if the response is to be downloaded to the response buffer; 0u otherwise |
| max_loops | The maximum number of times to loop; used as a safeguard |
| max_message_size | The maximum size of the message |


| 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.
| send_str | The request string to be sent |
| chunk | Empty buffer for holding string chunks |
| chenk_len | The size of the chunks to send |
| send_cmd | The AT command used to send data: SSEND, SSENDEXT or SSLSEND |
| ring_cmd | The ring command to look for: SRING or SSLRING |
| term_char | The termination character to use: '\032' for Telit |


| void uart_string_reset | ( | ) |
Reset modem_received_buffer, clear RX buffer, and reset string index.

1.8.11