iowfehu;gdbjwHJAOPIHO?L
Fork of X_NUCLEO_IDW01M1 by
Diff: Spwf_API/SpwfSADevice.cpp
- Revision:
- 12:3799f8475c8a
- Parent:
- 9:d2dfbf8e7f49
- Child:
- 18:224f8d3bf6d8
diff -r 67a8c3499caf -r 3799f8475c8a Spwf_API/SpwfSADevice.cpp --- a/Spwf_API/SpwfSADevice.cpp Sat May 14 07:28:29 2016 +0000 +++ b/Spwf_API/SpwfSADevice.cpp Sat May 14 08:31:39 2016 +0000 @@ -1,5 +1,5 @@ /* mbed Microcontroller Library -* Copyright (c) 2006-2013 ARM Limited +* Copyright (c) 20015 ARM Limited * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -51,6 +51,15 @@ extern void setSpwfSADevice(SpwfSADevice * dev); +/** +* @brief SpwfSADevice constructor +* @param tx: Pin USART TX +* rx: Pin USART RX +* rst: reset pin for Spwf module +* wkup: reset pin for Spwf module +* rts: Pin USART RTS +* @retval none +*/ SpwfSADevice::SpwfSADevice(PinName tx, PinName rx, PinName rst, PinName wkup, PinName rts): uart_(tx,rx), term_(SERIAL_TX, SERIAL_RX), @@ -64,11 +73,22 @@ wait_for_socket_data = false; } +/** +* @brief SpwfSADevice destructor +* @param none +* @retval none +*/ SpwfSADevice::~SpwfSADevice(void) { //de-constructor } +/** +* @brief init function + initializes timers, gpios, uart +* @param none +* @retval error value +*/ int SpwfSADevice::init(void) { WiFi_Status_t status = WiFi_MODULE_SUCCESS; @@ -116,6 +136,14 @@ return 0; } +/** +* @brief network connect + wrapper function for FW +* @param ssid: Access Point (AP) Name String +* sec_key: Password String for AP +* priv_mode: type of security supported (FW mode) +* @retval NSAPI Error Type +*/ int SpwfSADevice::connect(char * ssid, char * sec_key, WiFi_Priv_Mode priv_mode) { WiFi_Status_t status = WiFi_MODULE_SUCCESS; @@ -140,6 +168,12 @@ return 0; } +/** +* @brief network disconnect + wrapper function for FW +* @param none +* @retval error value +*/ int SpwfSADevice::disconnect() { WiFi_Status_t status = WiFi_MODULE_SUCCESS; @@ -153,6 +187,13 @@ return 0; } +/** +* @brief Get the local IP address +* wrapper function for FW +* @param none +* @retval Null-terminated representation of the local IP address +* or null if not yet connected +*/ const char *SpwfSADevice::getIPAddress() { WiFi_Status_t status = WiFi_MODULE_SUCCESS; @@ -166,6 +207,13 @@ return _ip_buffer; } +/** +* @brief Get the MAC address +* wrapper function for FW +* @param none +* @retval Null-terminated representation of the MAC address +* or null if not yet connected +*/ const char *SpwfSADevice::getMACAddress() { WiFi_Status_t status = WiFi_MODULE_SUCCESS; @@ -179,6 +227,14 @@ return _mac_buffer; } +/** +* @brief connect to a remote socket +* @param hostname: address of socket + port_number: port number to connect + protocol: TCP/UDP protocol +* sock_id: pointer to socket ID returned by FW +* @retval error value +*/ int SpwfSADevice::socket_client_open(uint8_t * hostname, uint32_t port_number, uint8_t * protocol, uint8_t * sock_id) { WiFi_Status_t status = WiFi_MODULE_SUCCESS; @@ -194,7 +250,13 @@ return 0; } - +/** +* @brief write to a remote socket +* @param sock_id: FW ID of the socket + DataLength: size of the data + pData: pointer to data +* @retval error value +*/ int SpwfSADevice::socket_client_write(uint8_t sock_id, uint16_t DataLength,char * pData) { int status=0;//number of bytes @@ -209,7 +271,13 @@ return 0; } - +/** +* @brief receive from a remote socket +* @param sock_id: FW ID of the socket + DataLength: size of the data + pData: pointer to data +* @retval error value +*/ int SpwfSADevice::socket_client_recv(uint8_t sock_id, uint16_t RecvLength,char * pData) { static Timer recv_timer; @@ -248,7 +316,12 @@ return -1; } - +/** +* @brief scan the network +* @param scan_result: scan result data pointer + max_scan_number: size of the scan result +* @retval error value +*/ void SpwfSADevice::network_scan(wifi_scan *scan_result, uint16_t max_scan_number) { WiFi_Status_t status = WiFi_MODULE_SUCCESS; @@ -260,6 +333,13 @@ } } +/** +* @brief HTTP GET from remote host +* @param hostname: address of remote host + path: path to resource + port_number: port number +* @retval none +*/ void SpwfSADevice::http_get(uint8_t * hostname, uint8_t * path, uint32_t port_number) { WiFi_Status_t status = WiFi_MODULE_SUCCESS; @@ -271,6 +351,11 @@ } } +/** +* @brief HTTP GET from remote host +* @param url_path: complete url of remote resource +* @retval none +*/ void SpwfSADevice::http_post(uint8_t * url_path) { WiFi_Status_t status = WiFi_MODULE_SUCCESS; @@ -282,6 +367,14 @@ } } +/** +* @brief FW callback with data in socket +* @param sock_id: FW ID of the socket + data_ptr: pointer to data from FW + message_size: total data to arrive + chunk_size: size of the data in this callback (<= message_size) +* @retval none +*/ void SpwfSADevice::signal_data_receive(uint8_t socket_id, uint8_t * data_ptr, uint32_t message_size, uint32_t chunk_size) { char debug_str[50]; @@ -322,6 +415,11 @@ } } +/** +* @brief synchronization function called from FW (used for connect,disconnect, ready, etc.) +* @param code: Status code value returned +* @retval none +*/ void SpwfSADevice::signal_synch_wait(WiFi_Status_t code) { if(code == WiFi_DISASSOCIATION) @@ -336,6 +434,11 @@ } } +/** +* @brief close a client socket +* @param sock_close_id: FW ID of the socket to close +* @retval error value +*/ int SpwfSADevice::socket_client_close(uint8_t sock_close_id) { WiFi_Status_t status = WiFi_MODULE_SUCCESS; @@ -350,7 +453,12 @@ return 0; } - +/** +* @brief open a server socket +* @param port_number: port number to listen on +* protocol: TCP/UDP protocol +* @retval error value +*/ int SpwfSADevice::socket_server_open(uint32_t port_number, uint8_t * protocol) { WiFi_Status_t status = WiFi_MODULE_SUCCESS; @@ -365,6 +473,12 @@ return 0; } +/** +* @brief write to a server socket +* @param data_length: size of the data +* pdata: pointer to data +* @retval error value +*/ int SpwfSADevice::socket_server_write(uint16_t data_length,char * pdata) { int status = 0;//number of bytes @@ -377,7 +491,12 @@ } return 0; } - + +/** +* @brief close a server socket +* @param none (only one server socket supported) +* @retval error value +*/ int SpwfSADevice::socket_server_close(void) { WiFi_Status_t status = WiFi_MODULE_SUCCESS; @@ -391,7 +510,12 @@ return 0; } - + +/** +* @brief attach/remove IRQ handler to UART +* @param attach: attach/remove boolean +* @retval none +*/ void SpwfSADevice::spwf_attach_irq(wifi_bool attach) { if(attach) @@ -404,6 +528,12 @@ } } +/** +* @brief write byte(s) to the UART +* @param cmd: pointer to data +* size: size of data +* @retval error value +*/ int SpwfSADevice::spwf_send(const char * cmd, uint16_t size) { Timer timer; @@ -424,41 +554,81 @@ return bytes; } +/** +* @brief read a byte from the UART +* @param none +* @retval byte character +*/ char SpwfSADevice::spwf_get(void) { return(uart_.getc()); } +/** +* @brief (re)set the SPWF wakeup GPIO pin +* @param wake (re)set value +* @retval none +*/ void SpwfSADevice::spwf_wakeup(int wake) { wakeup_.write(wake); } +/** +* @brief (re)set the SPWF reset GPIO pin +* @param reset (re)set value +* @retval none +*/ void SpwfSADevice::spwf_reset(int reset) { rst_.write(reset); } +/** +* @brief (re)set the SPWF RTS GPIO line +* @param rts (re)set value +* @retval none +*/ void SpwfSADevice::spwf_rts(int rts) { rts_.write(rts); } +/** +* @brief read the SPWF RTS GPIO pin +* @param none +* @retval none +*/ int SpwfSADevice::spwf_read_rts() { return(rts_.read()); } +/** +* @brief send debug print to serial terminal +* @param string: data for debug print +* @retval none +*/ void SpwfSADevice::debug_print(const char * string) { term_.puts(string); } +/** +* @brief (re)set the switch for incoming client (server socket) +* @param set: boolean to (re)set +* @retval none +*/ void SpwfSADevice::set_wait_for_incoming_client(bool set) { wait_for_incoming_client = set; } +/** +* @brief get the switch for incoming client (server socket) +* @param none +* @retval boolean +*/ bool SpwfSADevice::get_wait_for_incoming_client() { return wait_for_incoming_client;