Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed Servo X_NUCLEO_IKS01A2 X_NUCLEO_IDW01M1v2 NetworkSocketAPI NDefLib MQTT
X_NUCLEO_IDW01M1/intermediate.cpp@2:ba0531d896f0, 2016-04-13 (annotated)
- Committer:
- mridup
- Date:
- Wed Apr 13 10:14:35 2016 +0000
- Revision:
- 2:ba0531d896f0
- Parent:
- 0:cbf8bc43bc9e
file-name changes. wifi-wakeup() delay. Socket.recv() returns bytes_read on time_out, even if bytes_read is 0.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| mridup | 0:cbf8bc43bc9e | 1 | /* mbed Microcontroller Library |
| mridup | 0:cbf8bc43bc9e | 2 | * Copyright (c) 2006-2013 ARM Limited |
| mridup | 0:cbf8bc43bc9e | 3 | * |
| mridup | 0:cbf8bc43bc9e | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| mridup | 0:cbf8bc43bc9e | 5 | * you may not use this file except in compliance with the License. |
| mridup | 0:cbf8bc43bc9e | 6 | * You may obtain a copy of the License at |
| mridup | 0:cbf8bc43bc9e | 7 | * |
| mridup | 0:cbf8bc43bc9e | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
| mridup | 0:cbf8bc43bc9e | 9 | * |
| mridup | 0:cbf8bc43bc9e | 10 | * Unless required by applicable law or agreed to in writing, software |
| mridup | 0:cbf8bc43bc9e | 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
| mridup | 0:cbf8bc43bc9e | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| mridup | 0:cbf8bc43bc9e | 13 | * See the License for the specific language governing permissions and |
| mridup | 0:cbf8bc43bc9e | 14 | * limitations under the License. |
| mridup | 0:cbf8bc43bc9e | 15 | */ |
| mridup | 0:cbf8bc43bc9e | 16 | |
| mridup | 0:cbf8bc43bc9e | 17 | /** |
| mridup | 0:cbf8bc43bc9e | 18 | ****************************************************************************** |
| mridup | 0:cbf8bc43bc9e | 19 | * @file intermediate.c |
| mridup | 0:cbf8bc43bc9e | 20 | * @author STMicroelectronics |
| mridup | 0:cbf8bc43bc9e | 21 | * @brief Wrapper Functions for access to SPWFSADevice class/vice-versa |
| mridup | 0:cbf8bc43bc9e | 22 | ****************************************************************************** |
| mridup | 0:cbf8bc43bc9e | 23 | * @copy |
| mridup | 0:cbf8bc43bc9e | 24 | * |
| mridup | 0:cbf8bc43bc9e | 25 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS |
| mridup | 0:cbf8bc43bc9e | 26 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE |
| mridup | 0:cbf8bc43bc9e | 27 | * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY |
| mridup | 0:cbf8bc43bc9e | 28 | * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING |
| mridup | 0:cbf8bc43bc9e | 29 | * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE |
| mridup | 0:cbf8bc43bc9e | 30 | * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. |
| mridup | 0:cbf8bc43bc9e | 31 | * |
| mridup | 0:cbf8bc43bc9e | 32 | * <h2><center>© COPYRIGHT 2016 STMicroelectronics</center></h2> |
| mridup | 0:cbf8bc43bc9e | 33 | ****************************************************************************** |
| mridup | 0:cbf8bc43bc9e | 34 | */ |
| mridup | 0:cbf8bc43bc9e | 35 | |
| mridup | 2:ba0531d896f0 | 36 | #include "SpwfSADevice.h" |
| mridup | 0:cbf8bc43bc9e | 37 | |
| mridup | 0:cbf8bc43bc9e | 38 | SpwfSADevice * device; |
| mridup | 0:cbf8bc43bc9e | 39 | |
| mridup | 0:cbf8bc43bc9e | 40 | void setSpwfSADevice(SpwfSADevice * dev); |
| mridup | 0:cbf8bc43bc9e | 41 | |
| mridup | 0:cbf8bc43bc9e | 42 | void setSpwfSADevice(SpwfSADevice * dev) |
| mridup | 0:cbf8bc43bc9e | 43 | { |
| mridup | 0:cbf8bc43bc9e | 44 | device = dev; |
| mridup | 0:cbf8bc43bc9e | 45 | } |
| mridup | 0:cbf8bc43bc9e | 46 | |
| mridup | 0:cbf8bc43bc9e | 47 | #ifdef __cplusplus |
| mridup | 0:cbf8bc43bc9e | 48 | extern "C" { |
| mridup | 0:cbf8bc43bc9e | 49 | #endif |
| mridup | 0:cbf8bc43bc9e | 50 | |
| mridup | 0:cbf8bc43bc9e | 51 | |
| mridup | 0:cbf8bc43bc9e | 52 | |
| mridup | 0:cbf8bc43bc9e | 53 | void callSpwfSADevice_init(void* object); |
| mridup | 0:cbf8bc43bc9e | 54 | char callSpwfSADevice_getChar(void* object); |
| mridup | 0:cbf8bc43bc9e | 55 | void callSpwfSADevice_write(void* object, const char * cmd, uint16_t size); |
| mridup | 0:cbf8bc43bc9e | 56 | void callSpwfSADevice_wakeup(void* object, int wake); |
| mridup | 0:cbf8bc43bc9e | 57 | void callSpwfSADevice_reset(void* object, int reset); |
| mridup | 0:cbf8bc43bc9e | 58 | void callSpwfSADevice_rts(void* object, int rts); |
| mridup | 0:cbf8bc43bc9e | 59 | void callSpwfSADevice_attach(wifi_bool attach); |
| mridup | 0:cbf8bc43bc9e | 60 | void callSpwfSADevice_debug(void* object, const char * string); |
| mridup | 0:cbf8bc43bc9e | 61 | void destroySpwfSADevice(void); |
| mridup | 0:cbf8bc43bc9e | 62 | int callSpwfSADevice_read_rts(void* object); |
| mridup | 0:cbf8bc43bc9e | 63 | |
| mridup | 0:cbf8bc43bc9e | 64 | |
| mridup | 0:cbf8bc43bc9e | 65 | void callSpwfSADevice_init(void* object) |
| mridup | 0:cbf8bc43bc9e | 66 | { |
| mridup | 0:cbf8bc43bc9e | 67 | //static_cast<SpwfSADevice*>(object)->init(); |
| mridup | 0:cbf8bc43bc9e | 68 | device->init(); |
| mridup | 0:cbf8bc43bc9e | 69 | return; |
| mridup | 0:cbf8bc43bc9e | 70 | } |
| mridup | 0:cbf8bc43bc9e | 71 | |
| mridup | 0:cbf8bc43bc9e | 72 | char callSpwfSADevice_getChar(void* object) |
| mridup | 0:cbf8bc43bc9e | 73 | { |
| mridup | 0:cbf8bc43bc9e | 74 | return(device->spwf_get()); |
| mridup | 0:cbf8bc43bc9e | 75 | } |
| mridup | 0:cbf8bc43bc9e | 76 | |
| mridup | 0:cbf8bc43bc9e | 77 | void callSpwfSADevice_write(void* object, const char * cmd, uint16_t size) |
| mridup | 0:cbf8bc43bc9e | 78 | { |
| mridup | 0:cbf8bc43bc9e | 79 | device->spwf_send(cmd, size); |
| mridup | 0:cbf8bc43bc9e | 80 | } |
| mridup | 0:cbf8bc43bc9e | 81 | |
| mridup | 0:cbf8bc43bc9e | 82 | void callSpwfSADevice_wakeup(void* object, int wake) |
| mridup | 0:cbf8bc43bc9e | 83 | { |
| mridup | 0:cbf8bc43bc9e | 84 | device->spwf_wakeup(wake); |
| mridup | 0:cbf8bc43bc9e | 85 | } |
| mridup | 0:cbf8bc43bc9e | 86 | |
| mridup | 0:cbf8bc43bc9e | 87 | void callSpwfSADevice_reset(void* object, int reset) |
| mridup | 0:cbf8bc43bc9e | 88 | { |
| mridup | 0:cbf8bc43bc9e | 89 | device->spwf_reset(reset); |
| mridup | 0:cbf8bc43bc9e | 90 | } |
| mridup | 0:cbf8bc43bc9e | 91 | |
| mridup | 0:cbf8bc43bc9e | 92 | void callSpwfSADevice_rts(void* object, int rts) |
| mridup | 0:cbf8bc43bc9e | 93 | { |
| mridup | 0:cbf8bc43bc9e | 94 | device->spwf_rts(rts); |
| mridup | 0:cbf8bc43bc9e | 95 | } |
| mridup | 0:cbf8bc43bc9e | 96 | |
| mridup | 0:cbf8bc43bc9e | 97 | int callSpwfSADevice_read_rts(void* object) |
| mridup | 0:cbf8bc43bc9e | 98 | { |
| mridup | 0:cbf8bc43bc9e | 99 | return(device->spwf_read_rts()); |
| mridup | 0:cbf8bc43bc9e | 100 | } |
| mridup | 0:cbf8bc43bc9e | 101 | |
| mridup | 0:cbf8bc43bc9e | 102 | void callSpwfSADevice_attach(wifi_bool attach) |
| mridup | 0:cbf8bc43bc9e | 103 | { |
| mridup | 0:cbf8bc43bc9e | 104 | device->spwf_attach_irq(attach); |
| mridup | 0:cbf8bc43bc9e | 105 | } |
| mridup | 0:cbf8bc43bc9e | 106 | |
| mridup | 0:cbf8bc43bc9e | 107 | void callSpwfSADevice_debug(void* object, const char * string) |
| mridup | 0:cbf8bc43bc9e | 108 | { |
| mridup | 0:cbf8bc43bc9e | 109 | device->debug_print(string); |
| mridup | 0:cbf8bc43bc9e | 110 | } |
| mridup | 0:cbf8bc43bc9e | 111 | |
| mridup | 0:cbf8bc43bc9e | 112 | void destroySpwfSADevice() |
| mridup | 0:cbf8bc43bc9e | 113 | { |
| mridup | 0:cbf8bc43bc9e | 114 | |
| mridup | 0:cbf8bc43bc9e | 115 | } |
| mridup | 0:cbf8bc43bc9e | 116 | |
| mridup | 0:cbf8bc43bc9e | 117 | /*Callbacks implementation*/ |
| mridup | 0:cbf8bc43bc9e | 118 | |
| mridup | 0:cbf8bc43bc9e | 119 | void ind_wifi_on() |
| mridup | 0:cbf8bc43bc9e | 120 | { |
| mridup | 0:cbf8bc43bc9e | 121 | device->signal_synch_wait(WiFi_MODULE_SUCCESS); |
| mridup | 0:cbf8bc43bc9e | 122 | } |
| mridup | 0:cbf8bc43bc9e | 123 | |
| mridup | 0:cbf8bc43bc9e | 124 | void ind_wifi_connected() |
| mridup | 0:cbf8bc43bc9e | 125 | { |
| mridup | 0:cbf8bc43bc9e | 126 | device->signal_synch_wait(WiFi_MODULE_SUCCESS); |
| mridup | 0:cbf8bc43bc9e | 127 | } |
| mridup | 0:cbf8bc43bc9e | 128 | |
| mridup | 0:cbf8bc43bc9e | 129 | void ind_wifi_connection_error(WiFi_Status_t code) |
| mridup | 0:cbf8bc43bc9e | 130 | { |
| mridup | 0:cbf8bc43bc9e | 131 | switch(code) |
| mridup | 0:cbf8bc43bc9e | 132 | { |
| mridup | 0:cbf8bc43bc9e | 133 | case WiFi_DISASSOCIATION: |
| mridup | 0:cbf8bc43bc9e | 134 | device->signal_synch_wait(code); |
| mridup | 0:cbf8bc43bc9e | 135 | break; |
| mridup | 0:cbf8bc43bc9e | 136 | case WiFi_DE_AUTH: |
| mridup | 0:cbf8bc43bc9e | 137 | break; |
| mridup | 0:cbf8bc43bc9e | 138 | default: |
| mridup | 0:cbf8bc43bc9e | 139 | break; |
| mridup | 0:cbf8bc43bc9e | 140 | } |
| mridup | 0:cbf8bc43bc9e | 141 | } |
| mridup | 0:cbf8bc43bc9e | 142 | |
| mridup | 0:cbf8bc43bc9e | 143 | void ind_wifi_socket_data_received(uint8_t socket_id, uint8_t * data_ptr, uint32_t message_size, uint32_t chunk_size) |
| mridup | 0:cbf8bc43bc9e | 144 | { |
| mridup | 0:cbf8bc43bc9e | 145 | device->signal_data_receive(socket_id, data_ptr, message_size, chunk_size); |
| mridup | 0:cbf8bc43bc9e | 146 | } |
| mridup | 0:cbf8bc43bc9e | 147 | |
| mridup | 0:cbf8bc43bc9e | 148 | void ind_wifi_http_data_available(uint8_t * data_ptr, uint32_t message_size) |
| mridup | 0:cbf8bc43bc9e | 149 | { |
| mridup | 0:cbf8bc43bc9e | 150 | //spwf->debug("\r\nrx>>\r\n"); |
| mridup | 0:cbf8bc43bc9e | 151 | //memcpy(user_buffer, data_ptr, 511); |
| mridup | 0:cbf8bc43bc9e | 152 | } |
| mridup | 0:cbf8bc43bc9e | 153 | |
| mridup | 2:ba0531d896f0 | 154 | void ind_wifi_socket_client_remote_server_closed(uint8_t * socket_closed_id) |
| mridup | 2:ba0531d896f0 | 155 | { |
| mridup | 2:ba0531d896f0 | 156 | device->signal_synch_wait(WiFi_MODULE_SUCCESS); |
| mridup | 2:ba0531d896f0 | 157 | } |
| mridup | 2:ba0531d896f0 | 158 | |
| mridup | 0:cbf8bc43bc9e | 159 | #ifdef __cplusplus |
| mridup | 0:cbf8bc43bc9e | 160 | } |
| mridup | 0:cbf8bc43bc9e | 161 | #endif |
| mridup | 0:cbf8bc43bc9e | 162 | |
| mridup | 0:cbf8bc43bc9e | 163 | |
| mridup | 0:cbf8bc43bc9e | 164 |