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.
Fork of HM-11 by
hm11.h@4:65cc8bd09b18, 2015-11-30 (annotated)
- Committer:
 - igbt6
 - Date:
 - Mon Nov 30 14:52:32 2015 +0000
 - Revision:
 - 4:65cc8bd09b18
 - Parent:
 - 3:d32bdfd04d82
 - Child:
 - 5:9a00e7bb0275
 
declarations of all methods done
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| igbt6 | 0:df4bd867616e | 1 | /* | 
| igbt6 | 0:df4bd867616e | 2 | @file hm11.h | 
| igbt6 | 0:df4bd867616e | 3 | |
| igbt6 | 0:df4bd867616e | 4 | @brief Bluetooth Low Energy v4.0 HM-11 Breakout Library | 
| igbt6 | 0:df4bd867616e | 5 | |
| igbt6 | 0:df4bd867616e | 6 | @Author lukasz uszko(luszko@op.pl) | 
| igbt6 | 0:df4bd867616e | 7 | |
| igbt6 | 0:df4bd867616e | 8 | Tested on FRDM-KL25Z | 
| igbt6 | 0:df4bd867616e | 9 | |
| igbt6 | 0:df4bd867616e | 10 | Copyright (c) 2014 lukasz uszko | 
| igbt6 | 0:df4bd867616e | 11 | Released under the MIT License (see http://mbed.org/license/mit) | 
| igbt6 | 0:df4bd867616e | 12 | |
| igbt6 | 0:df4bd867616e | 13 | Documentation regarding the HM-11 Bluetooth Low energy module can be found here: | 
| igbt6 | 0:df4bd867616e | 14 | https://www.microduino.cc/wiki/images/f/fc/Bluetooth40_en.pdf | 
| igbt6 | 0:df4bd867616e | 15 | http://txyz.info/b10n1c/datasheets/hm-11_bluetooth40_en.pdf | 
| igbt6 | 0:df4bd867616e | 16 | */ | 
| igbt6 | 0:df4bd867616e | 17 | |
| igbt6 | 0:df4bd867616e | 18 | //HM-11 Device Pinout: | 
| igbt6 | 0:df4bd867616e | 19 | // Pin Name Description | 
| igbt6 | 0:df4bd867616e | 20 | // 1 UART_RTS UART interface | 
| igbt6 | 0:df4bd867616e | 21 | // 2 UART_TX UART interface | 
| igbt6 | 0:df4bd867616e | 22 | // 3 UART_CTS UART interface | 
| igbt6 | 0:df4bd867616e | 23 | // 4 UART_RX UART interface | 
| igbt6 | 0:df4bd867616e | 24 | // 5 NC NC | 
| igbt6 | 0:df4bd867616e | 25 | // 6 NC NC | 
| igbt6 | 0:df4bd867616e | 26 | // 7 NC NC | 
| igbt6 | 0:df4bd867616e | 27 | // 8 NC NC | 
| igbt6 | 0:df4bd867616e | 28 | // 9 CC V3.3 | 
| igbt6 | 0:df4bd867616e | 29 | // 10 NC NC or VCC | 
| igbt6 | 0:df4bd867616e | 30 | // 11 RESETB Reset if low <100ms | 
| igbt6 | 0:df4bd867616e | 31 | // 12 GND Ground | 
| igbt6 | 0:df4bd867616e | 32 | // 13 PIO3 Programmable input/output line | 
| igbt6 | 0:df4bd867616e | 33 | // 14 PIO2 Programmable input/output line | 
| igbt6 | 0:df4bd867616e | 34 | // 15 PIO1 System LED | 
| igbt6 | 0:df4bd867616e | 35 | // 16 PIO0 System KEY | 
| igbt6 | 0:df4bd867616e | 36 | |
| igbt6 | 0:df4bd867616e | 37 | // AT Commands | 
| igbt6 | 0:df4bd867616e | 38 | // Factory default setting: | 
| igbt6 | 0:df4bd867616e | 39 | // Name: HMSoft; Baud: 9600, N, 8, 1; Pin code: 000000; transmit | 
| igbt6 | 0:df4bd867616e | 40 | |
| igbt6 | 1:abf1462d47a0 | 41 | |
| igbt6 | 1:abf1462d47a0 | 42 | //DEMO - HOW TO USE: | 
| igbt6 | 3:d32bdfd04d82 | 43 | //compiled and built under mbed | 
| igbt6 | 1:abf1462d47a0 | 44 | /* | 
| igbt6 | 1:abf1462d47a0 | 45 | ---------------------------------------- DEMO: 1st version -simple polling ---------------------------------------- | 
| igbt6 | 1:abf1462d47a0 | 46 | #include "mbed.h" | 
| igbt6 | 1:abf1462d47a0 | 47 | #include "hm11.h" | 
| igbt6 | 1:abf1462d47a0 | 48 | #include "crc16.h" | 
| igbt6 | 1:abf1462d47a0 | 49 | |
| igbt6 | 1:abf1462d47a0 | 50 | |
| igbt6 | 1:abf1462d47a0 | 51 | #define HM11_PIN_TX PTE22 //FRDM-KL25Z UART2 | 
| igbt6 | 1:abf1462d47a0 | 52 | #define HM11_PIN_RX PTE23 | 
| igbt6 | 1:abf1462d47a0 | 53 | |
| igbt6 | 1:abf1462d47a0 | 54 | int main() { | 
| igbt6 | 1:abf1462d47a0 | 55 | Serial usbDebug(USBTX, USBRX); | 
| igbt6 | 1:abf1462d47a0 | 56 | usbDebug.printf("HELLO WORLD !"); | 
| igbt6 | 1:abf1462d47a0 | 57 | |
| igbt6 | 1:abf1462d47a0 | 58 | |
| igbt6 | 1:abf1462d47a0 | 59 | HM11* hm11 = new HM11( HM11_PIN_TX, HM11_PIN_RX); | 
| igbt6 | 1:abf1462d47a0 | 60 | int counter =0; | 
| igbt6 | 1:abf1462d47a0 | 61 | while(1) { | 
| igbt6 | 1:abf1462d47a0 | 62 | //myled = 1; | 
| igbt6 | 1:abf1462d47a0 | 63 | wait(0.5); | 
| igbt6 | 1:abf1462d47a0 | 64 | usbDebug.printf("alive "); | 
| igbt6 | 1:abf1462d47a0 | 65 | wait(0.5); | 
| igbt6 | 1:abf1462d47a0 | 66 | char buf[2]; | 
| igbt6 | 1:abf1462d47a0 | 67 | snprintf(buf,2,"%d",counter++); | 
| igbt6 | 1:abf1462d47a0 | 68 | if(counter>9) | 
| igbt6 | 1:abf1462d47a0 | 69 | counter=0; | 
| igbt6 | 1:abf1462d47a0 | 70 | hm11->sendDataToDevice(buf); | 
| igbt6 | 1:abf1462d47a0 | 71 | wait(0.2); | 
| igbt6 | 1:abf1462d47a0 | 72 | |
| igbt6 | 1:abf1462d47a0 | 73 | while(hm11->isRxDataAvailable()) | 
| igbt6 | 1:abf1462d47a0 | 74 | usbDebug.printf("data: %c\r\n",hm11->getDataFromRx()); | 
| igbt6 | 1:abf1462d47a0 | 75 | |
| igbt6 | 1:abf1462d47a0 | 76 | } | 
| igbt6 | 1:abf1462d47a0 | 77 | } | 
| igbt6 | 1:abf1462d47a0 | 78 | */ | 
| igbt6 | 1:abf1462d47a0 | 79 | |
| igbt6 | 1:abf1462d47a0 | 80 | |
| igbt6 | 1:abf1462d47a0 | 81 | |
| igbt6 | 0:df4bd867616e | 82 | #ifndef HM11_H | 
| igbt6 | 0:df4bd867616e | 83 | #define HM11_H | 
| igbt6 | 0:df4bd867616e | 84 | |
| igbt6 | 0:df4bd867616e | 85 | |
| igbt6 | 0:df4bd867616e | 86 | #include "mbed.h" | 
| igbt6 | 0:df4bd867616e | 87 | #include "BufferedSerial.h" | 
| igbt6 | 0:df4bd867616e | 88 | |
| igbt6 | 0:df4bd867616e | 89 | #define HM11_SERIAL_DEFAULT_BAUD 9600 | 
| igbt6 | 0:df4bd867616e | 90 | #define HM11_SERIAL_TIMEOUT 10000 | 
| igbt6 | 0:df4bd867616e | 91 | #define HM11_SERIAL_EOL "\r\n" | 
| igbt6 | 0:df4bd867616e | 92 | |
| igbt6 | 0:df4bd867616e | 93 | static const char* hm11TestCommands[]={"AT","AT+","CONNL","RENEW","RESET","START","SLEEP","?"}; | 
| igbt6 | 0:df4bd867616e | 94 | |
| igbt6 | 0:df4bd867616e | 95 | static const char* hm11SendCommands[]={"ADDR","BAUD","CLEAR","CON", | 
| igbt6 | 0:df4bd867616e | 96 | "FILT","HELP","IMME","MODE", | 
| igbt6 | 0:df4bd867616e | 97 | "NOTI","NAME","PARI","PIO1", | 
| igbt6 | 0:df4bd867616e | 98 | "PIO","PASS","PIN","POWE", | 
| igbt6 | 0:df4bd867616e | 99 | "PWRM","ROLE", | 
| igbt6 | 0:df4bd867616e | 100 | "RSSI","RADD","STOP", | 
| igbt6 | 0:df4bd867616e | 101 | "SAVE","TCON","TYPE","VERR","VERS" | 
| igbt6 | 0:df4bd867616e | 102 | }; | 
| igbt6 | 0:df4bd867616e | 103 | |
| igbt6 | 0:df4bd867616e | 104 | static const char* HM11ReceiveMsgs[]={"OK","OK+","Get:","Set:","LOST","ADDR:","CLEAR","CONN", | 
| igbt6 | 0:df4bd867616e | 105 | "NAME","Set","PIO:","RENEW","RESET","RSSI:","RADD:", | 
| igbt6 | 0:df4bd867616e | 106 | "START","SLEEP","TCON","RSSI:","RADD:","CONNF" | 
| igbt6 | 0:df4bd867616e | 107 | }; | 
| igbt6 | 0:df4bd867616e | 108 | |
| igbt6 | 0:df4bd867616e | 109 | typedef enum hm11CommandsType_t{ | 
| igbt6 | 0:df4bd867616e | 110 | HM11_TEST_COMMAND=0, | 
| igbt6 | 0:df4bd867616e | 111 | HM11_SEND_COMMAND, | 
| igbt6 | 0:df4bd867616e | 112 | HM11_NUM_OF_COMMAND_TYPE | 
| igbt6 | 0:df4bd867616e | 113 | }HM11CommandType; | 
| igbt6 | 0:df4bd867616e | 114 | |
| igbt6 | 0:df4bd867616e | 115 | typedef enum hm11TestCommands_t{ | 
| igbt6 | 0:df4bd867616e | 116 | HM11_AT_TEST =0, | 
| igbt6 | 0:df4bd867616e | 117 | HM11_START_CMD, | 
| igbt6 | 0:df4bd867616e | 118 | HM11_CONNECT_TO_LAST_SUCCEEDED_DEVICE , // | 
| igbt6 | 0:df4bd867616e | 119 | HM11_RESTORE_ALL, // | 
| igbt6 | 0:df4bd867616e | 120 | HM11_RESET_MODULE, // | 
| igbt6 | 0:df4bd867616e | 121 | HM11_WORK_IMMEDIATELY, // | 
| igbt6 | 0:df4bd867616e | 122 | HM11_SLEEP_MODE, // | 
| igbt6 | 0:df4bd867616e | 123 | HM11_QUERY_SIGN, | 
| igbt6 | 0:df4bd867616e | 124 | HM11_NUM_OF_TEST_COMMANDS | 
| igbt6 | 0:df4bd867616e | 125 | }HM11TestCommands; | 
| igbt6 | 0:df4bd867616e | 126 | |
| igbt6 | 0:df4bd867616e | 127 | |
| igbt6 | 0:df4bd867616e | 128 | typedef enum hm11Commands_t{ | 
| igbt6 | 0:df4bd867616e | 129 | HM11_ADDRESS, | 
| igbt6 | 0:df4bd867616e | 130 | HM11_BAUDRATE, | 
| igbt6 | 0:df4bd867616e | 131 | HM11_CLEAR_LAST_CONNECTED_DEVICE_ADDRESS , | 
| igbt6 | 0:df4bd867616e | 132 | HM11_CONNECT_TO_ADDRESS, | 
| igbt6 | 0:df4bd867616e | 133 | HM11_FILTER_AT_COMMAND_PARAMETER, | 
| igbt6 | 0:df4bd867616e | 134 | HM11_HELP_INFORMATION, | 
| igbt6 | 0:df4bd867616e | 135 | HM11_MODULE_WORK_TYPE, | 
| igbt6 | 0:df4bd867616e | 136 | HM11_MODULE_WORK_MODE, | 
| igbt6 | 0:df4bd867616e | 137 | HM11_NOTIFY_INFORMATION, | 
| igbt6 | 0:df4bd867616e | 138 | HM11_MODULE_NAME, | 
| igbt6 | 0:df4bd867616e | 139 | HM11_PARITY_BIT, | 
| igbt6 | 0:df4bd867616e | 140 | HM11_PIO1_OUTPT_STATUS, | 
| igbt6 | 0:df4bd867616e | 141 | HM11_PIO_PINS_HIGH_OR_LOW, | 
| igbt6 | 0:df4bd867616e | 142 | HM11_GET_PIN_CODE, | 
| igbt6 | 0:df4bd867616e | 143 | HM11_PIN_CODE, | 
| igbt6 | 0:df4bd867616e | 144 | HM11_MODULE_POWER, | 
| igbt6 | 0:df4bd867616e | 145 | HM11_MODULE_SLEEP_TYPE, | 
| igbt6 | 0:df4bd867616e | 146 | HM11_MASTER_SLAVE_ROLL, | 
| igbt6 | 0:df4bd867616e | 147 | HM11_RSSI_VALUE, | 
| igbt6 | 0:df4bd867616e | 148 | HM11_LAST_CONNECTED_DEVICE_ADDRESS, | 
| igbt6 | 0:df4bd867616e | 149 | HM11_STOP_BIT, | 
| igbt6 | 0:df4bd867616e | 150 | HM11_MODULE_SAVE_CONNECTED_ADDR_PARAMETER, | 
| igbt6 | 0:df4bd867616e | 151 | HM11_MODULE_CONNECT_REMOTE_DEVICE_TIMEOUT_VALUE, | 
| igbt6 | 0:df4bd867616e | 152 | HM11_MODULE_BOND_MODE, | 
| igbt6 | 0:df4bd867616e | 153 | HM11_SOFTWARE_VERSION, | 
| igbt6 | 0:df4bd867616e | 154 | HM11_NUM_OF_COMMANDS | 
| igbt6 | 0:df4bd867616e | 155 | }HM11Commands; | 
| igbt6 | 0:df4bd867616e | 156 | |
| igbt6 | 0:df4bd867616e | 157 | /** | 
| igbt6 | 0:df4bd867616e | 158 | AT Commands parameters | 
| igbt6 | 0:df4bd867616e | 159 | */ | 
| igbt6 | 0:df4bd867616e | 160 | typedef enum AdvertisingInterval{ | 
| igbt6 | 0:df4bd867616e | 161 | _100ms=0, | 
| igbt6 | 0:df4bd867616e | 162 | _152_5ms, | 
| igbt6 | 0:df4bd867616e | 163 | _211_25ms, | 
| igbt6 | 0:df4bd867616e | 164 | _318_75ms, | 
| igbt6 | 0:df4bd867616e | 165 | _417_5ms, | 
| igbt6 | 0:df4bd867616e | 166 | _546_25ms, | 
| igbt6 | 0:df4bd867616e | 167 | _760ms, | 
| igbt6 | 0:df4bd867616e | 168 | _852_5ms, | 
| igbt6 | 0:df4bd867616e | 169 | _1022_5ms, | 
| igbt6 | 0:df4bd867616e | 170 | _1285ms, | 
| igbt6 | 0:df4bd867616e | 171 | _2000ms, | 
| igbt6 | 0:df4bd867616e | 172 | _3000ms, | 
| igbt6 | 0:df4bd867616e | 173 | _4000ms, | 
| igbt6 | 0:df4bd867616e | 174 | _5000ms, | 
| igbt6 | 0:df4bd867616e | 175 | _6000ms, | 
| igbt6 | 0:df4bd867616e | 176 | _7000ms, | 
| igbt6 | 0:df4bd867616e | 177 | _INVALID_ADV_INTERVAL | 
| igbt6 | 0:df4bd867616e | 178 | }AdvertisingInterval_t; | 
| igbt6 | 0:df4bd867616e | 179 | |
| igbt6 | 0:df4bd867616e | 180 | |
| igbt6 | 0:df4bd867616e | 181 | typedef enum AdvertisingType{ | 
| igbt6 | 0:df4bd867616e | 182 | _AdvertisingScanResponseConnectable=0, | 
| igbt6 | 0:df4bd867616e | 183 | _LastDeviceConnectsIn1_28Seconds, | 
| igbt6 | 0:df4bd867616e | 184 | _AdvertisingScanResponse, | 
| igbt6 | 0:df4bd867616e | 185 | _Advertising, | 
| igbt6 | 0:df4bd867616e | 186 | _INVALID_ADV_TYPE | 
| igbt6 | 0:df4bd867616e | 187 | }AdvertisingType_t; | 
| igbt6 | 0:df4bd867616e | 188 | |
| igbt6 | 0:df4bd867616e | 189 | typedef enum BaudRate{ | 
| igbt6 | 0:df4bd867616e | 190 | _9600=0, | 
| igbt6 | 0:df4bd867616e | 191 | _19200, | 
| igbt6 | 0:df4bd867616e | 192 | _38400, | 
| igbt6 | 0:df4bd867616e | 193 | _57600, | 
| igbt6 | 0:df4bd867616e | 194 | _115200, | 
| igbt6 | 0:df4bd867616e | 195 | _4800, | 
| igbt6 | 0:df4bd867616e | 196 | _2400, | 
| igbt6 | 0:df4bd867616e | 197 | _1200, | 
| igbt6 | 0:df4bd867616e | 198 | _230400, | 
| igbt6 | 0:df4bd867616e | 199 | _INVALID_BAUDRATE | 
| igbt6 | 0:df4bd867616e | 200 | }BaudRate_t; | 
| igbt6 | 0:df4bd867616e | 201 | |
| igbt6 | 0:df4bd867616e | 202 | typedef enum ConnectionStatus{ | 
| igbt6 | 0:df4bd867616e | 203 | _L, // Connecting | 
| igbt6 | 0:df4bd867616e | 204 | _E, // Connect error | 
| igbt6 | 0:df4bd867616e | 205 | _F, // Connect Fail | 
| igbt6 | 0:df4bd867616e | 206 | _N // No Address | 
| igbt6 | 0:df4bd867616e | 207 | }ConnectionStatus_t; | 
| igbt6 | 0:df4bd867616e | 208 | |
| igbt6 | 0:df4bd867616e | 209 | |
| igbt6 | 4:65cc8bd09b18 | 210 | |
| igbt6 | 3:d32bdfd04d82 | 211 | typedef struct ScanResult{ | 
| igbt6 | 3:d32bdfd04d82 | 212 | char* addr; | 
| igbt6 | 3:d32bdfd04d82 | 213 | char*name; | 
| igbt6 | 3:d32bdfd04d82 | 214 | uint8_t nr; //0-5 | 
| igbt6 | 3:d32bdfd04d82 | 215 | }ScanResult_t; | 
| igbt6 | 3:d32bdfd04d82 | 216 | |
| igbt6 | 3:d32bdfd04d82 | 217 | |
| igbt6 | 3:d32bdfd04d82 | 218 | typedef enum DeployMode{ | 
| igbt6 | 3:d32bdfd04d82 | 219 | _BROAD_AND_SCAN=1, //Allowed to broadcast and scanning | 
| igbt6 | 3:d32bdfd04d82 | 220 | _ONLY_BROAD, //Only allow broadcast | 
| igbt6 | 3:d32bdfd04d82 | 221 | _INVALID_DEPLOY_MODE | 
| igbt6 | 3:d32bdfd04d82 | 222 | }DeployMode_t; | 
| igbt6 | 3:d32bdfd04d82 | 223 | |
| igbt6 | 3:d32bdfd04d82 | 224 | |
| igbt6 | 3:d32bdfd04d82 | 225 | typedef enum FilterOfHmModules{ | 
| igbt6 | 3:d32bdfd04d82 | 226 | _ALL_BLE_MODULES=0, //Will find all BLE modules | 
| igbt6 | 3:d32bdfd04d82 | 227 | _ONLY_HM_MODULES, //Only find HM Modules | 
| igbt6 | 3:d32bdfd04d82 | 228 | _INVALID_FILTER | 
| igbt6 | 3:d32bdfd04d82 | 229 | }FilterOfHmModules_t; | 
| igbt6 | 3:d32bdfd04d82 | 230 | |
| igbt6 | 3:d32bdfd04d82 | 231 | |
| igbt6 | 3:d32bdfd04d82 | 232 | typedef enum ModuleWorkType{ | 
| igbt6 | 3:d32bdfd04d82 | 233 | _WAIT_UNTIL_AT_START_RECEIVED=0, //Will find all BLE modules | 
| igbt6 | 3:d32bdfd04d82 | 234 | _WORK_IMMEDIATELY, //Only find HM Modules | 
| igbt6 | 3:d32bdfd04d82 | 235 | _INVALID_MODULE_WORK_TYPE | 
| igbt6 | 3:d32bdfd04d82 | 236 | }ModuleWorkType_t; | 
| igbt6 | 3:d32bdfd04d82 | 237 | |
| igbt6 | 3:d32bdfd04d82 | 238 | |
| igbt6 | 3:d32bdfd04d82 | 239 | typedef enum ModuleWorkMode{ | 
| igbt6 | 3:d32bdfd04d82 | 240 | _TRANSM_MODE=0, | 
| igbt6 | 3:d32bdfd04d82 | 241 | _PIO_COLLECTION_MODE, | 
| igbt6 | 3:d32bdfd04d82 | 242 | _REMOTE_CONTROL_MODE | 
| igbt6 | 3:d32bdfd04d82 | 243 | }ModuleWorkMode_t; | 
| igbt6 | 3:d32bdfd04d82 | 244 | |
| igbt6 | 3:d32bdfd04d82 | 245 | |
| igbt6 | 3:d32bdfd04d82 | 246 | |
| igbt6 | 3:d32bdfd04d82 | 247 | |
| igbt6 | 3:d32bdfd04d82 | 248 | typedef enum ParityBit{ | 
| igbt6 | 3:d32bdfd04d82 | 249 | _NONE=0, | 
| igbt6 | 3:d32bdfd04d82 | 250 | _EVEN, | 
| igbt6 | 3:d32bdfd04d82 | 251 | _ODD | 
| igbt6 | 3:d32bdfd04d82 | 252 | }ParityBit_t; | 
| igbt6 | 3:d32bdfd04d82 | 253 | |
| igbt6 | 3:d32bdfd04d82 | 254 | |
| igbt6 | 4:65cc8bd09b18 | 255 | typedef enum ModulePower{ | 
| igbt6 | 4:65cc8bd09b18 | 256 | _23dbm=0, //-23dbm | 
| igbt6 | 4:65cc8bd09b18 | 257 | __6dbm, //-6dbm | 
| igbt6 | 4:65cc8bd09b18 | 258 | _0dbm, //0dbm | 
| igbt6 | 4:65cc8bd09b18 | 259 | _6dbm, //6dbm | 
| igbt6 | 4:65cc8bd09b18 | 260 | _INVALID_MOD_POWER | 
| igbt6 | 4:65cc8bd09b18 | 261 | }ModulePower_t; | 
| igbt6 | 4:65cc8bd09b18 | 262 | |
| igbt6 | 4:65cc8bd09b18 | 263 | |
| igbt6 | 4:65cc8bd09b18 | 264 | |
| igbt6 | 4:65cc8bd09b18 | 265 | typedef enum SensorType{ | 
| igbt6 | 4:65cc8bd09b18 | 266 | _NONE_SENSOR=0, //None | 
| igbt6 | 4:65cc8bd09b18 | 267 | _DHT11, //dht11 | 
| igbt6 | 4:65cc8bd09b18 | 268 | _DS18B20, //ds18b20 | 
| igbt6 | 4:65cc8bd09b18 | 269 | _INVALID_SENSOR_TYPE | 
| igbt6 | 4:65cc8bd09b18 | 270 | }SensorType_t; | 
| igbt6 | 4:65cc8bd09b18 | 271 | |
| igbt6 | 4:65cc8bd09b18 | 272 | |
| igbt6 | 4:65cc8bd09b18 | 273 | typedef enum BondMode{ | 
| igbt6 | 4:65cc8bd09b18 | 274 | _NOT_NEED_PIN_CODE=0, | 
| igbt6 | 4:65cc8bd09b18 | 275 | _AUTH_NOT_NEED_PIN, | 
| igbt6 | 4:65cc8bd09b18 | 276 | _AUTH_WITH_PIN, | 
| igbt6 | 4:65cc8bd09b18 | 277 | _AUTH_AND_BOND, | 
| igbt6 | 4:65cc8bd09b18 | 278 | _INVALID_BOND_MODE | 
| igbt6 | 4:65cc8bd09b18 | 279 | }BondMode_t; | 
| igbt6 | 4:65cc8bd09b18 | 280 | |
| igbt6 | 3:d32bdfd04d82 | 281 | |
| igbt6 | 0:df4bd867616e | 282 | class HM11{ | 
| igbt6 | 0:df4bd867616e | 283 | |
| igbt6 | 0:df4bd867616e | 284 | public: | 
| igbt6 | 0:df4bd867616e | 285 | HM11(PinName uartTx , PinName uartRx); | 
| igbt6 | 0:df4bd867616e | 286 | |
| igbt6 | 0:df4bd867616e | 287 | HM11(const BufferedSerial & serial); | 
| igbt6 | 0:df4bd867616e | 288 | |
| igbt6 | 0:df4bd867616e | 289 | bool sendGetCommand(const char* command); | 
| igbt6 | 0:df4bd867616e | 290 | bool sendSetCommand(const char* command,int param); | 
| igbt6 | 0:df4bd867616e | 291 | |
| igbt6 | 0:df4bd867616e | 292 | bool isCorrectCommand(const char* command, HM11CommandType cmdType); | 
| igbt6 | 0:df4bd867616e | 293 | |
| igbt6 | 0:df4bd867616e | 294 | int sendDataToDevice(const char* data); | 
| igbt6 | 3:d32bdfd04d82 | 295 | int sendDataToDevice(uint8_t * byteData,uint8_t dataLength); | 
| igbt6 | 0:df4bd867616e | 296 | |
| igbt6 | 0:df4bd867616e | 297 | int isRxDataAvailable(); | 
| igbt6 | 0:df4bd867616e | 298 | |
| igbt6 | 0:df4bd867616e | 299 | inline uint8_t getDataFromRx() { | 
| igbt6 | 0:df4bd867616e | 300 | return mSerial.getc(); | 
| igbt6 | 0:df4bd867616e | 301 | } | 
| igbt6 | 0:df4bd867616e | 302 | |
| igbt6 | 0:df4bd867616e | 303 | |
| igbt6 | 0:df4bd867616e | 304 | //commandMethods | 
| igbt6 | 0:df4bd867616e | 305 | bool testCommand(void); | 
| igbt6 | 0:df4bd867616e | 306 | char* queryModuleAddress(void); | 
| igbt6 | 0:df4bd867616e | 307 | bool setAdvertisingInterval(AdvertisingInterval_t advInt); | 
| igbt6 | 0:df4bd867616e | 308 | AdvertisingInterval_t queryAdvertisingInterval(void); | 
| igbt6 | 0:df4bd867616e | 309 | |
| igbt6 | 0:df4bd867616e | 310 | bool setAdvertisingType(AdvertisingType_t advInt); | 
| igbt6 | 0:df4bd867616e | 311 | AdvertisingType_t queryAdvertisingType(void); | 
| igbt6 | 0:df4bd867616e | 312 | |
| igbt6 | 0:df4bd867616e | 313 | |
| igbt6 | 0:df4bd867616e | 314 | /** Set ANCS switch | 
| igbt6 | 0:df4bd867616e | 315 | * @param enable |0: Off |1: On |Default: 0 | 
| igbt6 | 0:df4bd867616e | 316 | * @return | 
| igbt6 | 0:df4bd867616e | 317 | * 1 on success, | 
| igbt6 | 0:df4bd867616e | 318 | * 0 on error. | 
| igbt6 | 0:df4bd867616e | 319 | * Note1: This command added in V524. | 
| igbt6 | 0:df4bd867616e | 320 | * Note2: Please send AT+RESET to restart module if you set value 1. | 
| igbt6 | 0:df4bd867616e | 321 | * Note3: Must execute AT+TYPE3 first. | 
| igbt6 | 0:df4bd867616e | 322 | */ | 
| igbt6 | 0:df4bd867616e | 323 | bool setAncsSwitch(uint8_t enable); | 
| igbt6 | 0:df4bd867616e | 324 | |
| igbt6 | 0:df4bd867616e | 325 | |
| igbt6 | 0:df4bd867616e | 326 | /** query ANCS switch | 
| igbt6 | 0:df4bd867616e | 327 | * @return | 
| igbt6 | 0:df4bd867616e | 328 | * 1 -On, | 
| igbt6 | 0:df4bd867616e | 329 | * 0 -Off | 
| igbt6 | 0:df4bd867616e | 330 | * 0xFF -error | 
| igbt6 | 0:df4bd867616e | 331 | * Note1: This command added in V524. | 
| igbt6 | 0:df4bd867616e | 332 | * Note2: Please send AT+RESET to restart module if you set value 1. | 
| igbt6 | 0:df4bd867616e | 333 | * Note3: Must execute AT+TYPE3 first. | 
| igbt6 | 0:df4bd867616e | 334 | */ | 
| igbt6 | 0:df4bd867616e | 335 | uint8_t queryAncsSwitch(void); | 
| igbt6 | 0:df4bd867616e | 336 | |
| igbt6 | 0:df4bd867616e | 337 | |
| igbt6 | 0:df4bd867616e | 338 | /** Set Whitelist switch | 
| igbt6 | 0:df4bd867616e | 339 | * @param enable |0: Off |1: On |Default: 0 | 
| igbt6 | 0:df4bd867616e | 340 | * @return | 
| igbt6 | 0:df4bd867616e | 341 | * 1 on success, | 
| igbt6 | 0:df4bd867616e | 342 | * 0 on error. | 
| igbt6 | 0:df4bd867616e | 343 | * Note1: This command added in V523 | 
| igbt6 | 0:df4bd867616e | 344 | * Note2: Whitelist allow three mac address link to module. Please use AT+AD command set whitelist mac address. | 
| igbt6 | 0:df4bd867616e | 345 | */ | 
| igbt6 | 0:df4bd867616e | 346 | bool setWhitelistSwitch(uint8_t enable); | 
| igbt6 | 0:df4bd867616e | 347 | |
| igbt6 | 0:df4bd867616e | 348 | |
| igbt6 | 0:df4bd867616e | 349 | /** query Whitelist Switch | 
| igbt6 | 0:df4bd867616e | 350 | * @return | 
| igbt6 | 0:df4bd867616e | 351 | * 1 - On, | 
| igbt6 | 0:df4bd867616e | 352 | * 0 - Off, | 
| igbt6 | 0:df4bd867616e | 353 | * 0xFF -error. | 
| igbt6 | 0:df4bd867616e | 354 | * Note1: This command added in V523 | 
| igbt6 | 0:df4bd867616e | 355 | * Note2: Whitelist allow three mac address link to module. Please use AT+AD command set whitelist mac address. | 
| igbt6 | 0:df4bd867616e | 356 | */ | 
| igbt6 | 0:df4bd867616e | 357 | uint8_t queryWhitelistSwitch(void); | 
| igbt6 | 0:df4bd867616e | 358 | |
| igbt6 | 0:df4bd867616e | 359 | |
| igbt6 | 0:df4bd867616e | 360 | /** Set whitelist mac address | 
| igbt6 | 0:df4bd867616e | 361 | * @param nrOfMacAddrLinkedToModule |1,2,3 | 
| igbt6 | 0:df4bd867616e | 362 | * @param macAddress |eg. 001122334455 | 
| igbt6 | 0:df4bd867616e | 363 | * @return | 
| igbt6 | 0:df4bd867616e | 364 | * 1 on success, | 
| igbt6 | 0:df4bd867616e | 365 | * 0 on error. | 
| igbt6 | 0:df4bd867616e | 366 | */ | 
| igbt6 | 0:df4bd867616e | 367 | bool setWhitelistMacAddress (uint8_t nrOfMacAddrLinkedToModule, const char* macAddress); | 
| igbt6 | 0:df4bd867616e | 368 | |
| igbt6 | 0:df4bd867616e | 369 | |
| igbt6 | 0:df4bd867616e | 370 | /** query whitelist mac address | 
| igbt6 | 0:df4bd867616e | 371 | * @param nrOfMacAddrLinkedToModule |1,2,3 | 
| igbt6 | 0:df4bd867616e | 372 | * @return | 
| igbt6 | 0:df4bd867616e | 373 | * nr of mac addr | 
| igbt6 | 0:df4bd867616e | 374 | * null -error. | 
| igbt6 | 0:df4bd867616e | 375 | */ | 
| igbt6 | 0:df4bd867616e | 376 | char* queryWhitelistMacAddress(uint8_t nrOfMacAddrLinkedToModule); | 
| igbt6 | 0:df4bd867616e | 377 | |
| igbt6 | 0:df4bd867616e | 378 | |
| igbt6 | 0:df4bd867616e | 379 | /** Set battery monitor switch | 
| igbt6 | 0:df4bd867616e | 380 | * @param uint8_t battSwitchEnable: |0: Off |1: On |Default: 0 | 
| igbt6 | 0:df4bd867616e | 381 | * @return | 
| igbt6 | 0:df4bd867616e | 382 | * 1 on success, | 
| igbt6 | 0:df4bd867616e | 383 | * 0 on error. | 
| igbt6 | 0:df4bd867616e | 384 | * Note1: This command added in V520 | 
| igbt6 | 0:df4bd867616e | 385 | */ | 
| igbt6 | 0:df4bd867616e | 386 | bool setBatteryMonitorSwitch(uint8_t battSwitchEnable); | 
| igbt6 | 0:df4bd867616e | 387 | |
| igbt6 | 0:df4bd867616e | 388 | |
| igbt6 | 0:df4bd867616e | 389 | /** query BatteryMonitorSwitch | 
| igbt6 | 0:df4bd867616e | 390 | * @return | 
| igbt6 | 0:df4bd867616e | 391 | * batt switch state: |0: Off |1: On | 
| igbt6 | 0:df4bd867616e | 392 | * 0xFF -error | 
| igbt6 | 0:df4bd867616e | 393 | * Note1: This command added in V520. | 
| igbt6 | 0:df4bd867616e | 394 | */ | 
| igbt6 | 0:df4bd867616e | 395 | uint8_t queryBatteryMonitorSwitch(void); | 
| igbt6 | 0:df4bd867616e | 396 | |
| igbt6 | 0:df4bd867616e | 397 | |
| igbt6 | 0:df4bd867616e | 398 | |
| igbt6 | 0:df4bd867616e | 399 | /**Query battery information | 
| igbt6 | 0:df4bd867616e | 400 | * @return | 
| igbt6 | 0:df4bd867616e | 401 | * batt information: 000~100 | 
| igbt6 | 0:df4bd867616e | 402 | * 0xFF -error | 
| igbt6 | 0:df4bd867616e | 403 | * | 
| igbt6 | 0:df4bd867616e | 404 | * There has three ways to get battery information: | 
| igbt6 | 0:df4bd867616e | 405 | a. Before establishing a connection, Send “AT+BATT?” through UART. | 
| igbt6 | 0:df4bd867616e | 406 | b. After established a connection, In Mode 1 or 2, remote side send“AT+BATT?” | 
| igbt6 | 0:df4bd867616e | 407 | Battery information has included in scan response data package, one hour update once | 
| igbt6 | 0:df4bd867616e | 408 | */ | 
| igbt6 | 0:df4bd867616e | 409 | uint8_t queryBatteryInformation(void); | 
| igbt6 | 0:df4bd867616e | 410 | |
| igbt6 | 0:df4bd867616e | 411 | |
| igbt6 | 0:df4bd867616e | 412 | |
| igbt6 | 0:df4bd867616e | 413 | /** Set iBeacon into service mode(*) | 
| igbt6 | 0:df4bd867616e | 414 | * @return | 
| igbt6 | 0:df4bd867616e | 415 | * 1 on success, | 
| igbt6 | 0:df4bd867616e | 416 | * 0 on error. | 
| igbt6 | 0:df4bd867616e | 417 | * This command is added in V520, Removed in V521, Please use AT+DELO | 
| igbt6 | 0:df4bd867616e | 418 | * This command set iBeacon into service mode until next power on. | 
| igbt6 | 0:df4bd867616e | 419 | * In service mode, module not allow any link request. | 
| igbt6 | 0:df4bd867616e | 420 | * BUSHU is Chinese spelling, meaning the deployment. | 
| igbt6 | 0:df4bd867616e | 421 | * Note: Should to open iBeacon switch first (AT+IBEA). | 
| igbt6 | 0:df4bd867616e | 422 | */ | 
| igbt6 | 0:df4bd867616e | 423 | bool setIBeaconIntoServiceMode(void); | 
| igbt6 | 0:df4bd867616e | 424 | |
| igbt6 | 0:df4bd867616e | 425 | |
| igbt6 | 0:df4bd867616e | 426 | |
| igbt6 | 0:df4bd867616e | 427 | /** Set Bit format | 
| igbt6 | 0:df4bd867616e | 428 | * @param bit7Format: 0:NotCompatible, 1:Compatible | 
| igbt6 | 0:df4bd867616e | 429 | * @return | 
| igbt6 | 0:df4bd867616e | 430 | * 1 NotCompatible, | 
| igbt6 | 0:df4bd867616e | 431 | * 0 Compatible, | 
| igbt6 | 0:df4bd867616e | 432 | * 0xFF Error | 
| igbt6 | 0:df4bd867616e | 433 | * This command is used only for compatible uses 7 data bits, 2 stop bit device. | 
| igbt6 | 0:df4bd867616e | 434 | */ | 
| igbt6 | 0:df4bd867616e | 435 | bool setBitFormat(uint8_t bit7Format); | 
| igbt6 | 0:df4bd867616e | 436 | |
| igbt6 | 0:df4bd867616e | 437 | |
| igbt6 | 0:df4bd867616e | 438 | /**Query BitFormat | 
| igbt6 | 0:df4bd867616e | 439 | * @return | 
| igbt6 | 0:df4bd867616e | 440 | * bit7 Swu=itch | 
| igbt6 | 0:df4bd867616e | 441 | * 0xFF -error | 
| igbt6 | 0:df4bd867616e | 442 | */ | 
| igbt6 | 0:df4bd867616e | 443 | uint8_t queryBitFormat(void); | 
| igbt6 | 0:df4bd867616e | 444 | |
| igbt6 | 0:df4bd867616e | 445 | |
| igbt6 | 0:df4bd867616e | 446 | /** Set baud rate | 
| igbt6 | 0:df4bd867616e | 447 | * @param baud: Baudrate value | 
| igbt6 | 0:df4bd867616e | 448 | * @return | 
| igbt6 | 0:df4bd867616e | 449 | * 1 success, | 
| igbt6 | 0:df4bd867616e | 450 | * 0 Error, | 
| igbt6 | 0:df4bd867616e | 451 | */ | 
| igbt6 | 0:df4bd867616e | 452 | bool setBaudRate(BaudRate_t baud); | 
| igbt6 | 0:df4bd867616e | 453 | |
| igbt6 | 0:df4bd867616e | 454 | |
| igbt6 | 0:df4bd867616e | 455 | |
| igbt6 | 0:df4bd867616e | 456 | /**Query baud rate | 
| igbt6 | 0:df4bd867616e | 457 | * @return | 
| igbt6 | 0:df4bd867616e | 458 | * Baudrate_t - Baudrate value | 
| igbt6 | 0:df4bd867616e | 459 | */ | 
| igbt6 | 0:df4bd867616e | 460 | BaudRate_t queryBaudRate(void); | 
| igbt6 | 0:df4bd867616e | 461 | |
| igbt6 | 0:df4bd867616e | 462 | /** Set Characteristic value | 
| igbt6 | 0:df4bd867616e | 463 | * @param chValue (characteristic value): 0x0001~0xFFFE | 
| igbt6 | 0:df4bd867616e | 464 | * @return | 
| igbt6 | 0:df4bd867616e | 465 | * 1 success, | 
| igbt6 | 0:df4bd867616e | 466 | * 0 Error, | 
| igbt6 | 0:df4bd867616e | 467 | */ | 
| igbt6 | 0:df4bd867616e | 468 | bool setCharacteristic(uint16_t chValue); | 
| igbt6 | 0:df4bd867616e | 469 | |
| igbt6 | 0:df4bd867616e | 470 | |
| igbt6 | 0:df4bd867616e | 471 | |
| igbt6 | 0:df4bd867616e | 472 | /**Query Characteristic value | 
| igbt6 | 0:df4bd867616e | 473 | * @return | 
| igbt6 | 0:df4bd867616e | 474 | * characteristic value: 0x0001~0xFFFE | 
| igbt6 | 0:df4bd867616e | 475 | * error :0xFFFF | 
| igbt6 | 0:df4bd867616e | 476 | */ | 
| igbt6 | 0:df4bd867616e | 477 | uint16_t queryCharacteristic(void); | 
| igbt6 | 0:df4bd867616e | 478 | |
| igbt6 | 0:df4bd867616e | 479 | |
| igbt6 | 0:df4bd867616e | 480 | /** Try connect to last succeeded device | 
| igbt6 | 0:df4bd867616e | 481 | * @return | 
| igbt6 | 0:df4bd867616e | 482 | * ConnectionStatus_t connection status. | 
| igbt6 | 0:df4bd867616e | 483 | * Notice: Only Central role is used. | 
| igbt6 | 0:df4bd867616e | 484 | * If remote device has already connected to other device or shut down, | 
| igbt6 | 0:df4bd867616e | 485 | * “OK+CONNF” will received after about 10 seconds. | 
| igbt6 | 0:df4bd867616e | 486 | */ | 
| igbt6 | 0:df4bd867616e | 487 | ConnectionStatus_t connectToLastDevice(void); | 
| igbt6 | 0:df4bd867616e | 488 | |
| igbt6 | 0:df4bd867616e | 489 | |
| igbt6 | 0:df4bd867616e | 490 | /** Try connect an address | 
| igbt6 | 0:df4bd867616e | 491 | * @param address e.g." 0017EA090909 " | 
| igbt6 | 0:df4bd867616e | 492 | * @return connection status | 
| igbt6 | 0:df4bd867616e | 493 | * Notice: Only Central role is used. | 
| igbt6 | 0:df4bd867616e | 494 | * If remote device has already connected to other device or shut down, | 
| igbt6 | 0:df4bd867616e | 495 | * “OK+CONNF” will received after about 10 seconds. | 
| igbt6 | 0:df4bd867616e | 496 | * | 
| igbt6 | 0:df4bd867616e | 497 | * Notice: Only central role is used. | 
| igbt6 | 0:df4bd867616e | 498 | If remote device has already connected to other device or shut down, | 
| igbt6 | 0:df4bd867616e | 499 | “OK+CONNF” will received after about 10 Seconds. | 
| igbt6 | 0:df4bd867616e | 500 | e.g. | 
| igbt6 | 0:df4bd867616e | 501 | Try to connect an device which MAC address is 00:17:EA:09:09:09 | 
| igbt6 | 0:df4bd867616e | 502 | Send: AT+CON0017EA090909 | 
| igbt6 | 0:df4bd867616e | 503 | May receive a reply: | 
| igbt6 | 0:df4bd867616e | 504 | OK+CONNA ========= Accept request, connecting | 
| igbt6 | 0:df4bd867616e | 505 | OK+CONNE ========= Connect error | 
| igbt6 | 0:df4bd867616e | 506 | OK+CONN ========= Connected, if AT+NOTI1 is setup | 
| igbt6 | 0:df4bd867616e | 507 | OK+CONNF ========= Connect Failed, After 10 seconds | 
| igbt6 | 0:df4bd867616e | 508 | */ | 
| igbt6 | 0:df4bd867616e | 509 | ConnectionStatus_t connectToAnAddress(const char* address); | 
| igbt6 | 0:df4bd867616e | 510 | |
| igbt6 | 0:df4bd867616e | 511 | |
| igbt6 | 3:d32bdfd04d82 | 512 | /**Query PIO04~PIO11 input(output) state | 
| igbt6 | 3:d32bdfd04d82 | 513 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 514 | * in/out state: 0x00~0xFF | 
| igbt6 | 3:d32bdfd04d82 | 515 | * | 
| igbt6 | 3:d32bdfd04d82 | 516 | * This command is added since V515 version. | 
| igbt6 | 3:d32bdfd04d82 | 517 | */ | 
| igbt6 | 3:d32bdfd04d82 | 518 | uint8_t queryInputOutputState(void); | 
| igbt6 | 0:df4bd867616e | 519 | |
| igbt6 | 3:d32bdfd04d82 | 520 | |
| igbt6 | 3:d32bdfd04d82 | 521 | /**Set PIO collection rate | 
| igbt6 | 3:d32bdfd04d82 | 522 | * @param colRateSec (PIO collection rate): 00-99 unit[s] | 
| igbt6 | 3:d32bdfd04d82 | 523 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 524 | * 1 success, | 
| igbt6 | 3:d32bdfd04d82 | 525 | * 0 Error, | 
| igbt6 | 3:d32bdfd04d82 | 526 | * | 
| igbt6 | 3:d32bdfd04d82 | 527 | * In mode 1, when PIO state is change, module will send OK+Col:[xx] to | 
| igbt6 | 3:d32bdfd04d82 | 528 | * UART or remote side. This command is set send interval. | 
| igbt6 | 3:d32bdfd04d82 | 529 | * This command is added since V515 version. | 
| igbt6 | 3:d32bdfd04d82 | 530 | */ | 
| igbt6 | 3:d32bdfd04d82 | 531 | bool setPioCollectionRate (uint8_t colRateSec); | 
| igbt6 | 3:d32bdfd04d82 | 532 | |
| igbt6 | 3:d32bdfd04d82 | 533 | |
| igbt6 | 3:d32bdfd04d82 | 534 | |
| igbt6 | 3:d32bdfd04d82 | 535 | /**Query PIO collection rate | 
| igbt6 | 3:d32bdfd04d82 | 536 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 537 | * PIO collection rate: 00-99 unit[s] | 
| igbt6 | 3:d32bdfd04d82 | 538 | * error :0xFF | 
| igbt6 | 3:d32bdfd04d82 | 539 | */ | 
| igbt6 | 3:d32bdfd04d82 | 540 | uint8_t queryPioCollectionRate(void); | 
| igbt6 | 3:d32bdfd04d82 | 541 | |
| igbt6 | 3:d32bdfd04d82 | 542 | |
| igbt6 | 3:d32bdfd04d82 | 543 | |
| igbt6 | 3:d32bdfd04d82 | 544 | /**Start a device discovery scan | 
| igbt6 | 3:d32bdfd04d82 | 545 | * @param [out] scanRes | 
| igbt6 | 3:d32bdfd04d82 | 546 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 547 | * 1 success, | 
| igbt6 | 3:d32bdfd04d82 | 548 | * 0 Error, | 
| igbt6 | 3:d32bdfd04d82 | 549 | |
| igbt6 | 3:d32bdfd04d82 | 550 | Please set AT+ROLE1 and AT+IMME1 first. | 
| igbt6 | 3:d32bdfd04d82 | 551 | ---usage--: | 
| igbt6 | 3:d32bdfd04d82 | 552 | Send: AT+DISC? | 
| igbt6 | 3:d32bdfd04d82 | 553 | Recv: OK+DISCS | 
| igbt6 | 3:d32bdfd04d82 | 554 | Recv: OK+DISC:123456789012 (discovered device address information) | 
| igbt6 | 3:d32bdfd04d82 | 555 | If AT+SHOW1 is setup, you will receive then Name information as follow | 
| igbt6 | 3:d32bdfd04d82 | 556 | Recv: OK+NAME: xxx | 
| igbt6 | 3:d32bdfd04d82 | 557 | After send Name value, will send two extra “\r\n” value ASCII byte | 
| igbt6 | 3:d32bdfd04d82 | 558 | Recv: OK+DISC:234567890123 | 
| igbt6 | 3:d32bdfd04d82 | 559 | Recv: OK+NAME: xxx | 
| igbt6 | 3:d32bdfd04d82 | 560 | After send Name value, will send two extra “\r\n” value ASCII byte ...(Max results is 6, use array 0~5) | 
| igbt6 | 3:d32bdfd04d82 | 561 | Recv: OK+DISCE | 
| igbt6 | 3:d32bdfd04d82 | 562 | Connect to a discovered device: AT+CONN0, AT+CONN1……AT+CONN5 | 
| igbt6 | 3:d32bdfd04d82 | 563 | */ | 
| igbt6 | 3:d32bdfd04d82 | 564 | bool startDeviceDiscoveryScan(ScanResult_t* scanRes); | 
| igbt6 | 3:d32bdfd04d82 | 565 | |
| igbt6 | 3:d32bdfd04d82 | 566 | |
| igbt6 | 3:d32bdfd04d82 | 567 | |
| igbt6 | 3:d32bdfd04d82 | 568 | /**Connect to an Discovery device | 
| igbt6 | 3:d32bdfd04d82 | 569 | * @param [in] scanRes | 
| igbt6 | 3:d32bdfd04d82 | 570 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 571 | * 1 success, | 
| igbt6 | 3:d32bdfd04d82 | 572 | * 0 Error, | 
| igbt6 | 3:d32bdfd04d82 | 573 | |
| igbt6 | 3:d32bdfd04d82 | 574 | This command is use after execute AT+DISC? | 
| igbt6 | 3:d32bdfd04d82 | 575 | This command will clear all discovery data. | 
| igbt6 | 3:d32bdfd04d82 | 576 | */ | 
| igbt6 | 3:d32bdfd04d82 | 577 | bool connectToDiscoveryDevice(ScanResult_t* scanRes); | 
| igbt6 | 3:d32bdfd04d82 | 578 | |
| igbt6 | 3:d32bdfd04d82 | 579 | |
| igbt6 | 3:d32bdfd04d82 | 580 | |
| igbt6 | 3:d32bdfd04d82 | 581 | /**Set IBeaconDeployMode | 
| igbt6 | 3:d32bdfd04d82 | 582 | * @param depMode - DeployMode_t | 
| igbt6 | 3:d32bdfd04d82 | 583 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 584 | * 1 success, | 
| igbt6 | 3:d32bdfd04d82 | 585 | * 0 Error, | 
| igbt6 | 3:d32bdfd04d82 | 586 | * | 
| igbt6 | 3:d32bdfd04d82 | 587 | * After receive OK+DELO[para1], module will reset after 500ms. | 
| igbt6 | 3:d32bdfd04d82 | 588 | * This command will let module into non-connectable status until next power on. | 
| igbt6 | 3:d32bdfd04d82 | 589 | */ | 
| igbt6 | 3:d32bdfd04d82 | 590 | bool setIBeaconDeployMode(DeployMode_t depMode); | 
| igbt6 | 3:d32bdfd04d82 | 591 | |
| igbt6 | 3:d32bdfd04d82 | 592 | |
| igbt6 | 3:d32bdfd04d82 | 593 | /**Set filter of HM modules | 
| igbt6 | 3:d32bdfd04d82 | 594 | * @param filter -FilterOfHmModules_t | 
| igbt6 | 3:d32bdfd04d82 | 595 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 596 | * 1 success, | 
| igbt6 | 3:d32bdfd04d82 | 597 | * 0 Error, | 
| igbt6 | 3:d32bdfd04d82 | 598 | */ | 
| igbt6 | 3:d32bdfd04d82 | 599 | bool setFilterOfHmModules(FilterOfHmModules_t filter); | 
| igbt6 | 3:d32bdfd04d82 | 600 | |
| igbt6 | 3:d32bdfd04d82 | 601 | |
| igbt6 | 3:d32bdfd04d82 | 602 | /**Query filter of HM modules | 
| igbt6 | 3:d32bdfd04d82 | 603 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 604 | * Type of filter | 
| igbt6 | 3:d32bdfd04d82 | 605 | */ | 
| igbt6 | 3:d32bdfd04d82 | 606 | FilterOfHmModules_t queryFilterOfHmModules(void); | 
| igbt6 | 3:d32bdfd04d82 | 607 | |
| igbt6 | 3:d32bdfd04d82 | 608 | |
| igbt6 | 3:d32bdfd04d82 | 609 | |
| igbt6 | 3:d32bdfd04d82 | 610 | /**Remove bond information | 
| igbt6 | 3:d32bdfd04d82 | 611 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 612 | * 1 success, | 
| igbt6 | 3:d32bdfd04d82 | 613 | * 0 Error, | 
| igbt6 | 3:d32bdfd04d82 | 614 | * Note1: Added in V524 version. | 
| igbt6 | 3:d32bdfd04d82 | 615 | */ | 
| igbt6 | 3:d32bdfd04d82 | 616 | bool removeBondInformation(void); | 
| igbt6 | 3:d32bdfd04d82 | 617 | |
| igbt6 | 3:d32bdfd04d82 | 618 | |
| igbt6 | 3:d32bdfd04d82 | 619 | /**System Help Information | 
| igbt6 | 3:d32bdfd04d82 | 620 | * @param [in] char* helpInformation | 
| igbt6 | 3:d32bdfd04d82 | 621 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 622 | * 1 success, | 
| igbt6 | 3:d32bdfd04d82 | 623 | * 0 Error, | 
| igbt6 | 3:d32bdfd04d82 | 624 | */ | 
| igbt6 | 3:d32bdfd04d82 | 625 | bool getSystemHelpInformation(char* helpInformationBuf); | 
| igbt6 | 3:d32bdfd04d82 | 626 | |
| igbt6 | 3:d32bdfd04d82 | 627 | |
| igbt6 | 3:d32bdfd04d82 | 628 | /**Set Module work type | 
| igbt6 | 3:d32bdfd04d82 | 629 | * @param modWorkType -ModuleWorkType_t | 
| igbt6 | 3:d32bdfd04d82 | 630 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 631 | * 1 success, | 
| igbt6 | 3:d32bdfd04d82 | 632 | * 0 Error, | 
| igbt6 | 3:d32bdfd04d82 | 633 | * This command is only used for Central role. | 
| igbt6 | 3:d32bdfd04d82 | 634 | */ | 
| igbt6 | 3:d32bdfd04d82 | 635 | bool setModuleWorkType(ModuleWorkType_t modWorkType); | 
| igbt6 | 3:d32bdfd04d82 | 636 | |
| igbt6 | 3:d32bdfd04d82 | 637 | |
| igbt6 | 3:d32bdfd04d82 | 638 | /**Query Module work type | 
| igbt6 | 3:d32bdfd04d82 | 639 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 640 | * module Work Type -ModuleWorkType_t | 
| igbt6 | 3:d32bdfd04d82 | 641 | * This command is only used for Central role. | 
| igbt6 | 3:d32bdfd04d82 | 642 | */ | 
| igbt6 | 3:d32bdfd04d82 | 643 | ModuleWorkType_t queryModuleWorkType(void); | 
| igbt6 | 3:d32bdfd04d82 | 644 | |
| igbt6 | 3:d32bdfd04d82 | 645 | |
| igbt6 | 3:d32bdfd04d82 | 646 | |
| igbt6 | 3:d32bdfd04d82 | 647 | |
| igbt6 | 3:d32bdfd04d82 | 648 | |
| igbt6 | 3:d32bdfd04d82 | 649 | /**Set Module iBeacon Switch | 
| igbt6 | 3:d32bdfd04d82 | 650 | * @param turnOnOff | 
| igbt6 | 3:d32bdfd04d82 | 651 | 0: Turn off iBeacon | 
| igbt6 | 3:d32bdfd04d82 | 652 | * 1: Turn on iBeacon | 
| igbt6 | 3:d32bdfd04d82 | 653 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 654 | * 1 success, | 
| igbt6 | 3:d32bdfd04d82 | 655 | * 0 Error, | 
| igbt6 | 3:d32bdfd04d82 | 656 | * This command is added since V517 version. | 
| igbt6 | 3:d32bdfd04d82 | 657 | */ | 
| igbt6 | 3:d32bdfd04d82 | 658 | bool setModuleIBeaconSwitch (uint8_t turnOnOff); | 
| igbt6 | 3:d32bdfd04d82 | 659 | |
| igbt6 | 3:d32bdfd04d82 | 660 | |
| igbt6 | 3:d32bdfd04d82 | 661 | /**Query iBeacon switch | 
| igbt6 | 3:d32bdfd04d82 | 662 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 663 | * 0: Turn off iBeacon | 
| igbt6 | 3:d32bdfd04d82 | 664 | * 1: Turn on iBeacon | 
| igbt6 | 3:d32bdfd04d82 | 665 | * This command is added since V517 version. | 
| igbt6 | 3:d32bdfd04d82 | 666 | */ | 
| igbt6 | 3:d32bdfd04d82 | 667 | uint8_t queryModuleIBeaconSwitch (void); | 
| igbt6 | 3:d32bdfd04d82 | 668 | |
| igbt6 | 3:d32bdfd04d82 | 669 | |
| igbt6 | 3:d32bdfd04d82 | 670 | |
| igbt6 | 3:d32bdfd04d82 | 671 | /**Set iBeacon UUID | 
| igbt6 | 3:d32bdfd04d82 | 672 | * @param: iBeacon Uuid - 0x00000001~0xFFFFFFFE | 
| igbt6 | 3:d32bdfd04d82 | 673 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 674 | * 1 success, | 
| igbt6 | 3:d32bdfd04d82 | 675 | * 0 Error, | 
| igbt6 | 3:d32bdfd04d82 | 676 | * This command is added since V520 version. | 
| igbt6 | 3:d32bdfd04d82 | 677 | * Default: iBeacon UUID is: 74278BDA-B644-4520-8F0C-720EAF059935. | 
| igbt6 | 3:d32bdfd04d82 | 678 | * - uuid1 is 74278BDA | 
| igbt6 | 3:d32bdfd04d82 | 679 | * - uuid2 is B644-4520 | 
| igbt6 | 3:d32bdfd04d82 | 680 | * - uuid1 is 8F0C-720E | 
| igbt6 | 3:d32bdfd04d82 | 681 | * - uuid1 is AF059935 | 
| igbt6 | 3:d32bdfd04d82 | 682 | */ | 
| igbt6 | 3:d32bdfd04d82 | 683 | bool setIBeaconUuid (uint32_t uuid0,uint32_t uuid1,uint32_t uuid2, uint32_t uuid3); | 
| igbt6 | 3:d32bdfd04d82 | 684 | bool setIBeaconUuid (uint32_t* uuid); | 
| igbt6 | 3:d32bdfd04d82 | 685 | |
| igbt6 | 3:d32bdfd04d82 | 686 | /**Query iBeacon Uuid | 
| igbt6 | 3:d32bdfd04d82 | 687 | * @param: part of uuid - 0~3 | 
| igbt6 | 3:d32bdfd04d82 | 688 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 689 | * iBeacon Uuid - 0x00000001~0xFFFFFFFE | 
| igbt6 | 3:d32bdfd04d82 | 690 | * Error - 0x00 | 
| igbt6 | 3:d32bdfd04d82 | 691 | * This command is added since V520 version. | 
| igbt6 | 3:d32bdfd04d82 | 692 | */ | 
| igbt6 | 3:d32bdfd04d82 | 693 | uint32_t queryIBeaconUuid(uint32_t* nr_of_uuid); | 
| igbt6 | 3:d32bdfd04d82 | 694 | |
| igbt6 | 3:d32bdfd04d82 | 695 | |
| igbt6 | 3:d32bdfd04d82 | 696 | |
| igbt6 | 3:d32bdfd04d82 | 697 | |
| igbt6 | 3:d32bdfd04d82 | 698 | /**Set Module iBeacon major version | 
| igbt6 | 3:d32bdfd04d82 | 699 | * @param: major version- 0x0001~0xFFFE | 
| igbt6 | 3:d32bdfd04d82 | 700 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 701 | * 1 success, | 
| igbt6 | 3:d32bdfd04d82 | 702 | * 0 Error, | 
| igbt6 | 3:d32bdfd04d82 | 703 | ^ Default: 0xFFE0 | 
| igbt6 | 3:d32bdfd04d82 | 704 | * This command is added since V517 version. | 
| igbt6 | 3:d32bdfd04d82 | 705 | */ | 
| igbt6 | 3:d32bdfd04d82 | 706 | bool setIBeaconMajor(uint16_t mjrVersion); | 
| igbt6 | 3:d32bdfd04d82 | 707 | |
| igbt6 | 3:d32bdfd04d82 | 708 | |
| igbt6 | 3:d32bdfd04d82 | 709 | /**Query Module iBeacon major | 
| igbt6 | 3:d32bdfd04d82 | 710 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 711 | * iBeacon major version- 0x0001~0xFFFE | 
| igbt6 | 3:d32bdfd04d82 | 712 | * Error - 0x0000 | 
| igbt6 | 3:d32bdfd04d82 | 713 | * This command is added since V517 version. | 
| igbt6 | 3:d32bdfd04d82 | 714 | */ | 
| igbt6 | 3:d32bdfd04d82 | 715 | uint16_t queryIBeaconMajor(void); | 
| igbt6 | 3:d32bdfd04d82 | 716 | |
| igbt6 | 3:d32bdfd04d82 | 717 | |
| igbt6 | 3:d32bdfd04d82 | 718 | |
| igbt6 | 3:d32bdfd04d82 | 719 | /**Set Module iBeacon minor version | 
| igbt6 | 3:d32bdfd04d82 | 720 | * @param: minorversion- 0x0001~0xFFFE | 
| igbt6 | 3:d32bdfd04d82 | 721 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 722 | * 1 success, | 
| igbt6 | 3:d32bdfd04d82 | 723 | * 0 Error, | 
| igbt6 | 3:d32bdfd04d82 | 724 | ^ Default: 0xFFE1 | 
| igbt6 | 3:d32bdfd04d82 | 725 | * This command is added since V517 version. | 
| igbt6 | 3:d32bdfd04d82 | 726 | */ | 
| igbt6 | 3:d32bdfd04d82 | 727 | bool setIBeaconMinor(uint16_t mnrVersion); | 
| igbt6 | 3:d32bdfd04d82 | 728 | |
| igbt6 | 3:d32bdfd04d82 | 729 | |
| igbt6 | 3:d32bdfd04d82 | 730 | /**Query Module iBeacon minor | 
| igbt6 | 3:d32bdfd04d82 | 731 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 732 | * iBeacon minor version- 0x0001~0xFFFE | 
| igbt6 | 3:d32bdfd04d82 | 733 | * Error - 0x0000 | 
| igbt6 | 3:d32bdfd04d82 | 734 | * This command is added since V517 version. | 
| igbt6 | 3:d32bdfd04d82 | 735 | */ | 
| igbt6 | 3:d32bdfd04d82 | 736 | uint16_t queryIBeaconMinor(void); | 
| igbt6 | 3:d32bdfd04d82 | 737 | |
| igbt6 | 3:d32bdfd04d82 | 738 | |
| igbt6 | 3:d32bdfd04d82 | 739 | |
| igbt6 | 3:d32bdfd04d82 | 740 | |
| igbt6 | 3:d32bdfd04d82 | 741 | /**Set Module iBeacon Measured power | 
| igbt6 | 3:d32bdfd04d82 | 742 | * @param: measured Power 0x0001~0xFFFE | 
| igbt6 | 3:d32bdfd04d82 | 743 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 744 | * 1 success, | 
| igbt6 | 3:d32bdfd04d82 | 745 | * 0 Error, | 
| igbt6 | 3:d32bdfd04d82 | 746 | ^ Default: 0xFFE1 | 
| igbt6 | 3:d32bdfd04d82 | 747 | * This command is added since V519 version. | 
| igbt6 | 3:d32bdfd04d82 | 748 | */ | 
| igbt6 | 3:d32bdfd04d82 | 749 | bool setIBeaconMeasuredPower(uint16_t measuredPwr); | 
| igbt6 | 3:d32bdfd04d82 | 750 | |
| igbt6 | 3:d32bdfd04d82 | 751 | |
| igbt6 | 3:d32bdfd04d82 | 752 | /**Query Module iBeacon Measured power | 
| igbt6 | 3:d32bdfd04d82 | 753 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 754 | * iBeacon minor version- 0x0001~0xFFFE | 
| igbt6 | 3:d32bdfd04d82 | 755 | * Error - 0x0000 | 
| igbt6 | 3:d32bdfd04d82 | 756 | * This command is added since V519 version. | 
| igbt6 | 3:d32bdfd04d82 | 757 | */ | 
| igbt6 | 3:d32bdfd04d82 | 758 | uint16_t queryIBeaconMeasuredPower(void); | 
| igbt6 | 3:d32bdfd04d82 | 759 | |
| igbt6 | 3:d32bdfd04d82 | 760 | |
| igbt6 | 3:d32bdfd04d82 | 761 | |
| igbt6 | 3:d32bdfd04d82 | 762 | |
| igbt6 | 3:d32bdfd04d82 | 763 | /**Set Module Work Mode | 
| igbt6 | 3:d32bdfd04d82 | 764 | * @param: WorkMode_t | 
| igbt6 | 3:d32bdfd04d82 | 765 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 766 | * 1 success, | 
| igbt6 | 3:d32bdfd04d82 | 767 | * 0 Error, | 
| igbt6 | 3:d32bdfd04d82 | 768 | ^ Default: 0xFFE1 | 
| igbt6 | 3:d32bdfd04d82 | 769 | * This command is added since V519 version. | 
| igbt6 | 3:d32bdfd04d82 | 770 | */ | 
| igbt6 | 3:d32bdfd04d82 | 771 | bool setModuleWorkMode(ModuleWorkMode_t workMode); | 
| igbt6 | 3:d32bdfd04d82 | 772 | |
| igbt6 | 3:d32bdfd04d82 | 773 | |
| igbt6 | 3:d32bdfd04d82 | 774 | /**Query Module Work Mode | 
| igbt6 | 3:d32bdfd04d82 | 775 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 776 | * iBeacon minor version- 0x0001~0xFFFE | 
| igbt6 | 3:d32bdfd04d82 | 777 | * Error - 0x0000 | 
| igbt6 | 3:d32bdfd04d82 | 778 | * This command is added since V519 version. | 
| igbt6 | 3:d32bdfd04d82 | 779 | */ | 
| igbt6 | 3:d32bdfd04d82 | 780 | ModuleWorkMode_t queryModuleWorkMode(void); | 
| igbt6 | 3:d32bdfd04d82 | 781 | |
| igbt6 | 3:d32bdfd04d82 | 782 | |
| igbt6 | 3:d32bdfd04d82 | 783 | |
| igbt6 | 3:d32bdfd04d82 | 784 | |
| igbt6 | 3:d32bdfd04d82 | 785 | /**Set Module name | 
| igbt6 | 3:d32bdfd04d82 | 786 | * @param: name, length<12 | 
| igbt6 | 3:d32bdfd04d82 | 787 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 788 | * 1 success, | 
| igbt6 | 3:d32bdfd04d82 | 789 | * 0 Error, | 
| igbt6 | 3:d32bdfd04d82 | 790 | */ | 
| igbt6 | 3:d32bdfd04d82 | 791 | bool setModuleName(char* name, uint8_t nameLength); | 
| igbt6 | 3:d32bdfd04d82 | 792 | |
| igbt6 | 3:d32bdfd04d82 | 793 | |
| igbt6 | 3:d32bdfd04d82 | 794 | /**Query Module name | 
| igbt6 | 3:d32bdfd04d82 | 795 | * @param: name -> ptr to response buffer | 
| igbt6 | 3:d32bdfd04d82 | 796 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 797 | * 1 success, | 
| igbt6 | 3:d32bdfd04d82 | 798 | * 0 Error, | 
| igbt6 | 3:d32bdfd04d82 | 799 | */ | 
| igbt6 | 3:d32bdfd04d82 | 800 | bool queryModuleName(char *name); | 
| igbt6 | 3:d32bdfd04d82 | 801 | |
| igbt6 | 3:d32bdfd04d82 | 802 | |
| igbt6 | 3:d32bdfd04d82 | 803 | |
| igbt6 | 3:d32bdfd04d82 | 804 | |
| igbt6 | 3:d32bdfd04d82 | 805 | /**Set Module parity bit | 
| igbt6 | 3:d32bdfd04d82 | 806 | * @param: ParityBit_t pBit | 
| igbt6 | 3:d32bdfd04d82 | 807 | * @return | 
| igbt6 | 3:d32bdfd04d82 | 808 | * 1 success, | 
| igbt6 | 3:d32bdfd04d82 | 809 | * 0 Error, | 
| igbt6 | 3:d32bdfd04d82 | 810 | */ | 
| igbt6 | 3:d32bdfd04d82 | 811 | bool setParityBit(ParityBit_t pBit); | 
| igbt6 | 3:d32bdfd04d82 | 812 | |
| igbt6 | 3:d32bdfd04d82 | 813 | |
| igbt6 | 3:d32bdfd04d82 | 814 | /**Query Module parity bit | 
| igbt6 | 3:d32bdfd04d82 | 815 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 816 | * _ODD, _EVEN- val | 
| igbt6 | 4:65cc8bd09b18 | 817 | _NONE - error | 
| igbt6 | 3:d32bdfd04d82 | 818 | */ | 
| igbt6 | 3:d32bdfd04d82 | 819 | ParityBit_t queryParityBit(void); | 
| igbt6 | 4:65cc8bd09b18 | 820 | |
| igbt6 | 4:65cc8bd09b18 | 821 | |
| igbt6 | 4:65cc8bd09b18 | 822 | /**Set PIO1 output status (System LED) | 
| igbt6 | 4:65cc8bd09b18 | 823 | * @param: | 
| igbt6 | 4:65cc8bd09b18 | 824 | * uint8_t status[0~1] | 
| igbt6 | 4:65cc8bd09b18 | 825 | * 0 -Unconnected Output, 500ms High 500ms Low,Connected output High. | 
| igbt6 | 4:65cc8bd09b18 | 826 | * 1 -1: Unconnected output, Low, Connected output High. | 
| igbt6 | 4:65cc8bd09b18 | 827 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 828 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 829 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 830 | */ | 
| igbt6 | 4:65cc8bd09b18 | 831 | bool setPio1OutputStatus(uint8_t status); | 
| igbt6 | 4:65cc8bd09b18 | 832 | |
| igbt6 | 4:65cc8bd09b18 | 833 | |
| igbt6 | 4:65cc8bd09b18 | 834 | /**Query PIO1 output status (System LED) | 
| igbt6 | 4:65cc8bd09b18 | 835 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 836 | * uint8_t status[0~1] | 
| igbt6 | 4:65cc8bd09b18 | 837 | * 0 -Unconnected Output, 500ms High 500ms Low,Connected output High. | 
| igbt6 | 4:65cc8bd09b18 | 838 | * 1 -1: Unconnected output, Low, Connected output High. | 
| igbt6 | 4:65cc8bd09b18 | 839 | * 0xFF - error | 
| igbt6 | 4:65cc8bd09b18 | 840 | */ | 
| igbt6 | 4:65cc8bd09b18 | 841 | uint8_t queryPio1OutputStatus(void); | 
| igbt6 | 4:65cc8bd09b18 | 842 | |
| igbt6 | 4:65cc8bd09b18 | 843 | |
| igbt6 | 4:65cc8bd09b18 | 844 | |
| igbt6 | 4:65cc8bd09b18 | 845 | |
| igbt6 | 4:65cc8bd09b18 | 846 | |
| igbt6 | 4:65cc8bd09b18 | 847 | /**Set PIO pins output /high or low | 
| igbt6 | 4:65cc8bd09b18 | 848 | * @param: | 
| igbt6 | 4:65cc8bd09b18 | 849 | * nrOfPio - is which PIO pin you want to Query/Set: Value: 2,3,4,5,6,7,8,9,A,B | 
| igbt6 | 4:65cc8bd09b18 | 850 | * val - Query or setup value. Value: 0 is low and 1 is high | 
| igbt6 | 4:65cc8bd09b18 | 851 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 852 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 853 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 854 | */ | 
| igbt6 | 4:65cc8bd09b18 | 855 | bool setPioPinsOutput(uint8_t nrOfPio, uint8_t val ); | 
| igbt6 | 4:65cc8bd09b18 | 856 | |
| igbt6 | 4:65cc8bd09b18 | 857 | |
| igbt6 | 4:65cc8bd09b18 | 858 | /**Query PIO pins output /high or low | 
| igbt6 | 4:65cc8bd09b18 | 859 | * @param: | 
| igbt6 | 4:65cc8bd09b18 | 860 | * nrOfPio - is which PIO pin you want to Query/Set: Value: 2,3,4,5,6,7,8,9,A,B | 
| igbt6 | 4:65cc8bd09b18 | 861 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 862 | * uint8_t val - state of given PIO: 0- low and 1 -high | 
| igbt6 | 4:65cc8bd09b18 | 863 | * 0xFF - error | 
| igbt6 | 4:65cc8bd09b18 | 864 | */ | 
| igbt6 | 4:65cc8bd09b18 | 865 | uint8_t queryPioPinsOutput(uint8_t nrOfPio); | 
| igbt6 | 4:65cc8bd09b18 | 866 | |
| igbt6 | 4:65cc8bd09b18 | 867 | |
| igbt6 | 4:65cc8bd09b18 | 868 | |
| igbt6 | 4:65cc8bd09b18 | 869 | |
| igbt6 | 4:65cc8bd09b18 | 870 | /**Set Pin Code | 
| igbt6 | 4:65cc8bd09b18 | 871 | * @param: | 
| igbt6 | 4:65cc8bd09b18 | 872 | * pinCode - value: 0~999999 | 
| igbt6 | 4:65cc8bd09b18 | 873 | * Default: 000000 | 
| igbt6 | 4:65cc8bd09b18 | 874 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 875 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 876 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 877 | */ | 
| igbt6 | 4:65cc8bd09b18 | 878 | bool setPinCode (uint32_t pinCode ); | 
| igbt6 | 4:65cc8bd09b18 | 879 | |
| igbt6 | 4:65cc8bd09b18 | 880 | |
| igbt6 | 4:65cc8bd09b18 | 881 | /**Query Pin Code | 
| igbt6 | 4:65cc8bd09b18 | 882 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 883 | * pinCode - value: 0~999999 | 
| igbt6 | 4:65cc8bd09b18 | 884 | * 0xFFFFFFFF - error | 
| igbt6 | 4:65cc8bd09b18 | 885 | */ | 
| igbt6 | 4:65cc8bd09b18 | 886 | uint8_t queryPinCode (void); | 
| igbt6 | 3:d32bdfd04d82 | 887 | |
| igbt6 | 3:d32bdfd04d82 | 888 | |
| igbt6 | 3:d32bdfd04d82 | 889 | |
| igbt6 | 3:d32bdfd04d82 | 890 | |
| igbt6 | 4:65cc8bd09b18 | 891 | /**Set Module Power | 
| igbt6 | 4:65cc8bd09b18 | 892 | * @param: | 
| igbt6 | 4:65cc8bd09b18 | 893 | * modPower - value: 0~999999 | 
| igbt6 | 4:65cc8bd09b18 | 894 | * Default: 2 | 
| igbt6 | 4:65cc8bd09b18 | 895 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 896 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 897 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 898 | */ | 
| igbt6 | 4:65cc8bd09b18 | 899 | bool setModulePower(ModulePower_t modPower); | 
| igbt6 | 4:65cc8bd09b18 | 900 | |
| igbt6 | 4:65cc8bd09b18 | 901 | |
| igbt6 | 4:65cc8bd09b18 | 902 | /**Query Module Power | 
| igbt6 | 4:65cc8bd09b18 | 903 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 904 | * modPower | 
| igbt6 | 4:65cc8bd09b18 | 905 | * _NONE - error | 
| igbt6 | 4:65cc8bd09b18 | 906 | */ | 
| igbt6 | 4:65cc8bd09b18 | 907 | ModulePower_t queryModulePower (void); | 
| igbt6 | 3:d32bdfd04d82 | 908 | |
| igbt6 | 3:d32bdfd04d82 | 909 | |
| igbt6 | 3:d32bdfd04d82 | 910 | |
| igbt6 | 4:65cc8bd09b18 | 911 | /**Set Module sleep type | 
| igbt6 | 4:65cc8bd09b18 | 912 | * @param: | 
| igbt6 | 4:65cc8bd09b18 | 913 | * modSleepType[0~1] - value: 0-Auto sleep, 1-don’t auto sleep | 
| igbt6 | 4:65cc8bd09b18 | 914 | * Default: 1 | 
| igbt6 | 4:65cc8bd09b18 | 915 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 916 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 917 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 918 | */ | 
| igbt6 | 4:65cc8bd09b18 | 919 | bool setModuleSleepType(uint8_t modSleepType ); | 
| igbt6 | 4:65cc8bd09b18 | 920 | |
| igbt6 | 4:65cc8bd09b18 | 921 | |
| igbt6 | 4:65cc8bd09b18 | 922 | /**Query Module sleep type | 
| igbt6 | 4:65cc8bd09b18 | 923 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 924 | * modSleepType | 
| igbt6 | 4:65cc8bd09b18 | 925 | * 0xFF - error | 
| igbt6 | 4:65cc8bd09b18 | 926 | */ | 
| igbt6 | 4:65cc8bd09b18 | 927 | uint8_t queryModuleSleepType (void); | 
| igbt6 | 4:65cc8bd09b18 | 928 | |
| igbt6 | 4:65cc8bd09b18 | 929 | |
| igbt6 | 3:d32bdfd04d82 | 930 | |
| igbt6 | 4:65cc8bd09b18 | 931 | /**Restore all setup value to factory setup | 
| igbt6 | 4:65cc8bd09b18 | 932 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 933 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 934 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 935 | */ | 
| igbt6 | 4:65cc8bd09b18 | 936 | bool restoreAll(void); | 
| igbt6 | 4:65cc8bd09b18 | 937 | |
| igbt6 | 4:65cc8bd09b18 | 938 | |
| igbt6 | 4:65cc8bd09b18 | 939 | /**Restart module | 
| igbt6 | 4:65cc8bd09b18 | 940 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 941 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 942 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 943 | */ | 
| igbt6 | 4:65cc8bd09b18 | 944 | bool restartModule(void); | 
| igbt6 | 4:65cc8bd09b18 | 945 | |
| igbt6 | 4:65cc8bd09b18 | 946 | |
| igbt6 | 4:65cc8bd09b18 | 947 | |
| igbt6 | 4:65cc8bd09b18 | 948 | /**Set Master and Slaver Role | 
| igbt6 | 4:65cc8bd09b18 | 949 | * @param: | 
| igbt6 | 4:65cc8bd09b18 | 950 | * role[0~1] - value: 0-Peripheral , 1-Central | 
| igbt6 | 4:65cc8bd09b18 | 951 | * Default: 0 | 
| igbt6 | 4:65cc8bd09b18 | 952 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 953 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 954 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 955 | */ | 
| igbt6 | 4:65cc8bd09b18 | 956 | bool setMasterAndSlaveRole(uint8_t role); | 
| igbt6 | 4:65cc8bd09b18 | 957 | |
| igbt6 | 4:65cc8bd09b18 | 958 | |
| igbt6 | 4:65cc8bd09b18 | 959 | /**Query Master and Slaver Role | 
| igbt6 | 4:65cc8bd09b18 | 960 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 961 | * role [0~1] - value: 0-Peripheral , 1-Central | 
| igbt6 | 4:65cc8bd09b18 | 962 | * 0xFF - error | 
| igbt6 | 4:65cc8bd09b18 | 963 | */ | 
| igbt6 | 4:65cc8bd09b18 | 964 | uint8_t queryMasterAndSlaveRole(void); | 
| igbt6 | 4:65cc8bd09b18 | 965 | |
| igbt6 | 4:65cc8bd09b18 | 966 | |
| igbt6 | 4:65cc8bd09b18 | 967 | |
| igbt6 | 4:65cc8bd09b18 | 968 | /**Query Query RSSI Value | 
| igbt6 | 4:65cc8bd09b18 | 969 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 970 | * rssi - value: | 
| igbt6 | 4:65cc8bd09b18 | 971 | * 0xFF - error | 
| igbt6 | 4:65cc8bd09b18 | 972 | * Require: AT+MODE value > 0 | 
| igbt6 | 4:65cc8bd09b18 | 973 | * Note: This command only used by Remote device query when connected. | 
| igbt6 | 4:65cc8bd09b18 | 974 | */ | 
| igbt6 | 4:65cc8bd09b18 | 975 | uint8_t queryRssiValue(void); | 
| igbt6 | 4:65cc8bd09b18 | 976 | |
| igbt6 | 4:65cc8bd09b18 | 977 | |
| igbt6 | 4:65cc8bd09b18 | 978 | |
| igbt6 | 4:65cc8bd09b18 | 979 | /**Query Last Connected Device Address | 
| igbt6 | 4:65cc8bd09b18 | 980 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 981 | * addr - value: | 
| igbt6 | 4:65cc8bd09b18 | 982 | * null - error | 
| igbt6 | 4:65cc8bd09b18 | 983 | */ | 
| igbt6 | 4:65cc8bd09b18 | 984 | char* queryLastConnectedDeviceAddress(void); | 
| igbt6 | 4:65cc8bd09b18 | 985 | |
| igbt6 | 4:65cc8bd09b18 | 986 | |
| igbt6 | 4:65cc8bd09b18 | 987 | |
| igbt6 | 4:65cc8bd09b18 | 988 | /**Set Module Sensor work interval | 
| igbt6 | 4:65cc8bd09b18 | 989 | * @param: | 
| igbt6 | 4:65cc8bd09b18 | 990 | * interval [0~99] - values: 0-Save when connected, 1-Don’t Save ; Unit: minute | 
| igbt6 | 4:65cc8bd09b18 | 991 | * Default: 0 | 
| igbt6 | 4:65cc8bd09b18 | 992 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 993 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 994 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 995 | * Note: This command is only use for HMSensor | 
| igbt6 | 4:65cc8bd09b18 | 996 | */ | 
| igbt6 | 4:65cc8bd09b18 | 997 | bool setModuleSensorWorkInterval(uint8_t interval); | 
| igbt6 | 4:65cc8bd09b18 | 998 | |
| igbt6 | 4:65cc8bd09b18 | 999 | |
| igbt6 | 4:65cc8bd09b18 | 1000 | /**Query module Sensor work interval | 
| igbt6 | 4:65cc8bd09b18 | 1001 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 1002 | * interval [0~99] - values: 0-Save when connected, 1-Don’t Save ; Unit: minute | 
| igbt6 | 4:65cc8bd09b18 | 1003 | * 0xFF - error | 
| igbt6 | 4:65cc8bd09b18 | 1004 | * Note: This command is only use for HMSensor | 
| igbt6 | 4:65cc8bd09b18 | 1005 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1006 | uint8_t queryModuleSensorWorkInterval(void); | 
| igbt6 | 4:65cc8bd09b18 | 1007 | |
| igbt6 | 4:65cc8bd09b18 | 1008 | |
| igbt6 | 4:65cc8bd09b18 | 1009 | |
| igbt6 | 4:65cc8bd09b18 | 1010 | /**Work immediately | 
| igbt6 | 4:65cc8bd09b18 | 1011 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 1012 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 1013 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 1014 | * Note: This command is only used when AT+IMME1 is setup. | 
| igbt6 | 4:65cc8bd09b18 | 1015 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1016 | bool workImmediately(void); | 
| igbt6 | 4:65cc8bd09b18 | 1017 | |
| igbt6 | 4:65cc8bd09b18 | 1018 | |
| igbt6 | 4:65cc8bd09b18 | 1019 | |
| igbt6 | 4:65cc8bd09b18 | 1020 | /**Query Module into sleep mode | 
| igbt6 | 4:65cc8bd09b18 | 1021 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 1022 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 1023 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 1024 | * Note: Only support Peripheral role. | 
| igbt6 | 4:65cc8bd09b18 | 1025 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1026 | bool queryModuleIntoSleepMode(void); | 
| igbt6 | 4:65cc8bd09b18 | 1027 | |
| igbt6 | 4:65cc8bd09b18 | 1028 | |
| igbt6 | 4:65cc8bd09b18 | 1029 | |
| igbt6 | 4:65cc8bd09b18 | 1030 | /**Set Module save connected address parameter | 
| igbt6 | 4:65cc8bd09b18 | 1031 | * @param: | 
| igbt6 | 4:65cc8bd09b18 | 1032 | * saveParam [0~1] - values: 0-Save when connected, 1-Don’t Save | 
| igbt6 | 4:65cc8bd09b18 | 1033 | * Default: 0 | 
| igbt6 | 4:65cc8bd09b18 | 1034 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 1035 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 1036 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 1037 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1038 | bool setModuleSaveConnectedAddressParam(uint8_t saveParam); | 
| igbt6 | 4:65cc8bd09b18 | 1039 | |
| igbt6 | 4:65cc8bd09b18 | 1040 | |
| igbt6 | 4:65cc8bd09b18 | 1041 | /**Query Module save connected address parameter | 
| igbt6 | 4:65cc8bd09b18 | 1042 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 1043 | * saveParam [0~1] - values: 0-Save when connected, 1-Don’t Save | 
| igbt6 | 4:65cc8bd09b18 | 1044 | * 0xFF - error | 
| igbt6 | 4:65cc8bd09b18 | 1045 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1046 | uint8_t queryModuleSaveConnectedAddressParam(void); | 
| igbt6 | 4:65cc8bd09b18 | 1047 | |
| igbt6 | 4:65cc8bd09b18 | 1048 | |
| igbt6 | 4:65cc8bd09b18 | 1049 | |
| igbt6 | 4:65cc8bd09b18 | 1050 | /**Set sensor type on module PIO11(HM-11 is PIO3) | 
| igbt6 | 4:65cc8bd09b18 | 1051 | * @param: | 
| igbt6 | 4:65cc8bd09b18 | 1052 | * SensorType_t sensorType | 
| igbt6 | 4:65cc8bd09b18 | 1053 | * Default: _NONE_SENSOR | 
| igbt6 | 4:65cc8bd09b18 | 1054 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 1055 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 1056 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 1057 | * Note: This command is use for HMSensor | 
| igbt6 | 4:65cc8bd09b18 | 1058 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1059 | bool setSensorTypeOnModulePio(SensorType_t sensorType); | 
| igbt6 | 4:65cc8bd09b18 | 1060 | |
| igbt6 | 4:65cc8bd09b18 | 1061 | |
| igbt6 | 4:65cc8bd09b18 | 1062 | /**Query sensor type on module PIO11(HM-11 is PIO3) | 
| igbt6 | 4:65cc8bd09b18 | 1063 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 1064 | * SensorType_t sensorType | 
| igbt6 | 4:65cc8bd09b18 | 1065 | * 0xFF - _INVALID_SENSOR_TYPE | 
| igbt6 | 4:65cc8bd09b18 | 1066 | * Note: This command is use for HMSensor | 
| igbt6 | 4:65cc8bd09b18 | 1067 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1068 | SensorType_t querySensorTypeOnModulePio(void); | 
| igbt6 | 4:65cc8bd09b18 | 1069 | |
| igbt6 | 4:65cc8bd09b18 | 1070 | |
| igbt6 | 4:65cc8bd09b18 | 1071 | |
| igbt6 | 4:65cc8bd09b18 | 1072 | /**Set discovery parameter | 
| igbt6 | 4:65cc8bd09b18 | 1073 | * @param: | 
| igbt6 | 4:65cc8bd09b18 | 1074 | * discoverParam [0~1] - values: 0-Don’t show name, 1-Show name | 
| igbt6 | 4:65cc8bd09b18 | 1075 | * Default: 0 | 
| igbt6 | 4:65cc8bd09b18 | 1076 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 1077 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 1078 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 1079 | * | 
| igbt6 | 4:65cc8bd09b18 | 1080 | * Note:Please execute AT+FILT0 first. | 
| igbt6 | 4:65cc8bd09b18 | 1081 | * If AT+SHOW1 is setup, AT+DISC? Command will show you name information | 
| igbt6 | 4:65cc8bd09b18 | 1082 | * included into scan result package. | 
| igbt6 | 4:65cc8bd09b18 | 1083 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1084 | bool setDiscoveryParameter (SensorType_t discoverParam); | 
| igbt6 | 4:65cc8bd09b18 | 1085 | |
| igbt6 | 4:65cc8bd09b18 | 1086 | |
| igbt6 | 4:65cc8bd09b18 | 1087 | /**Query discovery parameter | 
| igbt6 | 4:65cc8bd09b18 | 1088 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 1089 | * discoverParam [0~1] - values: 0-Don’t show name, 1-Show name | 
| igbt6 | 4:65cc8bd09b18 | 1090 | * 0xFF - error | 
| igbt6 | 4:65cc8bd09b18 | 1091 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1092 | uint8_t queryDiscoveryParameter (void); | 
| igbt6 | 4:65cc8bd09b18 | 1093 | |
| igbt6 | 4:65cc8bd09b18 | 1094 | |
| igbt6 | 4:65cc8bd09b18 | 1095 | |
| igbt6 | 4:65cc8bd09b18 | 1096 | |
| igbt6 | 4:65cc8bd09b18 | 1097 | /**Query Module Sensor Temperature and humidity(if has a sensor) | 
| igbt6 | 4:65cc8bd09b18 | 1098 | * @param: | 
| igbt6 | 4:65cc8bd09b18 | 1099 | * temperature[out]: 0~120 | 
| igbt6 | 4:65cc8bd09b18 | 1100 | * humidity[out]: 0~120 | 
| igbt6 | 4:65cc8bd09b18 | 1101 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 1102 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 1103 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 1104 | * Note: This command is use for HMSensor. | 
| igbt6 | 4:65cc8bd09b18 | 1105 | * This value is added into scan response data package. | 
| igbt6 | 4:65cc8bd09b18 | 1106 | * Data format is 0x02, 0x16, 0x00, 0xB0, [reserved], [temperature], [ humidity], [battery]. | 
| igbt6 | 4:65cc8bd09b18 | 1107 | * Android: Included in OnLeScan function result array, you can see it direct. | 
| igbt6 | 4:65cc8bd09b18 | 1108 | * iOS: Included in LeScan function result NSDictionary struct, service id is 0xB000. | 
| igbt6 | 4:65cc8bd09b18 | 1109 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1110 | bool queryModuleSensorTempAndHumidity(uint8_t* temp, uint8_t* hum); | 
| igbt6 | 4:65cc8bd09b18 | 1111 | |
| igbt6 | 4:65cc8bd09b18 | 1112 | |
| igbt6 | 4:65cc8bd09b18 | 1113 | |
| igbt6 | 4:65cc8bd09b18 | 1114 | /**Query DS18B20 Sensor temperature | 
| igbt6 | 4:65cc8bd09b18 | 1115 | * @param: | 
| igbt6 | 4:65cc8bd09b18 | 1116 | * temperature[out]: 0~255 | 
| igbt6 | 4:65cc8bd09b18 | 1117 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 1118 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 1119 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 1120 | * Note1: This command is use for HMSensor. | 
| igbt6 | 4:65cc8bd09b18 | 1121 | * Note2: Added in V523 version. | 
| igbt6 | 4:65cc8bd09b18 | 1122 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1123 | bool queryDS18B20SensorTemperature (uint8_t* temp); | 
| igbt6 | 4:65cc8bd09b18 | 1124 | |
| igbt6 | 4:65cc8bd09b18 | 1125 | |
| igbt6 | 4:65cc8bd09b18 | 1126 | |
| igbt6 | 4:65cc8bd09b18 | 1127 | /**Set Module connect remote device timeout value | 
| igbt6 | 4:65cc8bd09b18 | 1128 | * @param: | 
| igbt6 | 4:65cc8bd09b18 | 1129 | * timeout- range: 0~999999; values: 0-Save when connected, 1-Don’t Save; Unit: ms | 
| igbt6 | 4:65cc8bd09b18 | 1130 | * Default: 0 | 
| igbt6 | 4:65cc8bd09b18 | 1131 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 1132 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 1133 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 1134 | * Note: This value is only used for Central Role, when module has Last Connected address. | 
| igbt6 | 4:65cc8bd09b18 | 1135 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1136 | bool setModuleConnectRemoteDeviceTimeoutValue(uint32_t timeout); | 
| igbt6 | 4:65cc8bd09b18 | 1137 | |
| igbt6 | 4:65cc8bd09b18 | 1138 | |
| igbt6 | 4:65cc8bd09b18 | 1139 | |
| igbt6 | 4:65cc8bd09b18 | 1140 | /**Query connect remote device timeout value | 
| igbt6 | 4:65cc8bd09b18 | 1141 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 1142 | * timeout- range: 0~999999; values: 0-Save when connected, 1-Don’t Save; Unit: ms | 
| igbt6 | 4:65cc8bd09b18 | 1143 | * 0xFFFFFFFF - error | 
| igbt6 | 4:65cc8bd09b18 | 1144 | * Note: This value is only used for Central Role, when module has Last Connected address. | 
| igbt6 | 4:65cc8bd09b18 | 1145 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1146 | uint32_t queryModuleConnectRemoteDeviceTimeoutValue(void); | 
| igbt6 | 4:65cc8bd09b18 | 1147 | |
| igbt6 | 4:65cc8bd09b18 | 1148 | |
| igbt6 | 4:65cc8bd09b18 | 1149 | |
| igbt6 | 4:65cc8bd09b18 | 1150 | /**Set Module Bond Mode | 
| igbt6 | 4:65cc8bd09b18 | 1151 | * @param: | 
| igbt6 | 4:65cc8bd09b18 | 1152 | * BondMode_t bondMode; | 
| igbt6 | 4:65cc8bd09b18 | 1153 | * Default: _NOT_NEED_PIN_CODE | 
| igbt6 | 4:65cc8bd09b18 | 1154 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 1155 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 1156 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 1157 | * | 
| igbt6 | 4:65cc8bd09b18 | 1158 | * Important: If your module version is less than V515, please don’t use this command. | 
| igbt6 | 4:65cc8bd09b18 | 1159 | * Under android 4.3 AT+TYPE1 is same to AT+TYPE2. | 
| igbt6 | 4:65cc8bd09b18 | 1160 | * Note1: Value 3 is added in V524. | 
| igbt6 | 4:65cc8bd09b18 | 1161 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1162 | bool setModuleBondMode(BondMode_t bondMode); | 
| igbt6 | 4:65cc8bd09b18 | 1163 | |
| igbt6 | 4:65cc8bd09b18 | 1164 | |
| igbt6 | 4:65cc8bd09b18 | 1165 | |
| igbt6 | 4:65cc8bd09b18 | 1166 | /**Query Module Bond Mode | 
| igbt6 | 4:65cc8bd09b18 | 1167 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 1168 | * BondMode_t bondMode; | 
| igbt6 | 4:65cc8bd09b18 | 1169 | * 0xFFFFFFFF - _INVALID_BOND_MODE | 
| igbt6 | 4:65cc8bd09b18 | 1170 | * | 
| igbt6 | 4:65cc8bd09b18 | 1171 | * Important: If your module version is less than V515, please don’t use this command. | 
| igbt6 | 4:65cc8bd09b18 | 1172 | * Under android 4.3 AT+TYPE1 is same to AT+TYPE2. | 
| igbt6 | 4:65cc8bd09b18 | 1173 | * Note1: Value _AUTH_AND_BOND, is added in V524. | 
| igbt6 | 4:65cc8bd09b18 | 1174 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1175 | BondMode_t queryModuleBondMode(void); | 
| igbt6 | 4:65cc8bd09b18 | 1176 | |
| igbt6 | 4:65cc8bd09b18 | 1177 | |
| igbt6 | 4:65cc8bd09b18 | 1178 | |
| igbt6 | 4:65cc8bd09b18 | 1179 | |
| igbt6 | 4:65cc8bd09b18 | 1180 | /**Set service UUID | 
| igbt6 | 4:65cc8bd09b18 | 1181 | * @param: service UUID - 0x0001~0xFFFE | 
| igbt6 | 4:65cc8bd09b18 | 1182 | * Default: 0xFFE0 | 
| igbt6 | 4:65cc8bd09b18 | 1183 | * @return: | 
| igbt6 | 4:65cc8bd09b18 | 1184 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 1185 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 1186 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1187 | bool setServiceUuid (uint16_t serviceUuid); | 
| igbt6 | 4:65cc8bd09b18 | 1188 | |
| igbt6 | 4:65cc8bd09b18 | 1189 | |
| igbt6 | 4:65cc8bd09b18 | 1190 | /**Query service UUID | 
| igbt6 | 4:65cc8bd09b18 | 1191 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 1192 | * service UUID - 0x0001~0xFFFE | 
| igbt6 | 4:65cc8bd09b18 | 1193 | * Error - 0xFFFF | 
| igbt6 | 4:65cc8bd09b18 | 1194 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1195 | uint16_t queryServiceUuid(void); | 
| igbt6 | 4:65cc8bd09b18 | 1196 | |
| igbt6 | 4:65cc8bd09b18 | 1197 | |
| igbt6 | 4:65cc8bd09b18 | 1198 | |
| igbt6 | 4:65cc8bd09b18 | 1199 | /**Set UART sleep type | 
| igbt6 | 4:65cc8bd09b18 | 1200 | * @param: | 
| igbt6 | 4:65cc8bd09b18 | 1201 | * sleepType- range:[0~1] | 
| igbt6 | 4:65cc8bd09b18 | 1202 | * value: 0-When module into sleep mode, you can wake up module through UART. | 
| igbt6 | 4:65cc8bd09b18 | 1203 | * 1-When module into sleep mode, shutdown UART too | 
| igbt6 | 4:65cc8bd09b18 | 1204 | * Default: 0 | 
| igbt6 | 4:65cc8bd09b18 | 1205 | * @return: | 
| igbt6 | 4:65cc8bd09b18 | 1206 | * 1 success, | 
| igbt6 | 4:65cc8bd09b18 | 1207 | * 0 Error, | 
| igbt6 | 4:65cc8bd09b18 | 1208 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1209 | bool setUartSleepType (uint8_t sleepType); | 
| igbt6 | 4:65cc8bd09b18 | 1210 | |
| igbt6 | 4:65cc8bd09b18 | 1211 | |
| igbt6 | 4:65cc8bd09b18 | 1212 | /**Query UART sleep type | 
| igbt6 | 4:65cc8bd09b18 | 1213 | * @return: | 
| igbt6 | 4:65cc8bd09b18 | 1214 | * sleepType- range:[0~1] | 
| igbt6 | 4:65cc8bd09b18 | 1215 | * value: 0-When module into sleep mode, you can wake up module through UART. | 
| igbt6 | 4:65cc8bd09b18 | 1216 | * 1-When module into sleep mode, shutdown UART too | 
| igbt6 | 4:65cc8bd09b18 | 1217 | * Error - 0xFF | 
| igbt6 | 4:65cc8bd09b18 | 1218 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1219 | uint8_t queryUartSleepType(void); | 
| igbt6 | 4:65cc8bd09b18 | 1220 | |
| igbt6 | 4:65cc8bd09b18 | 1221 | |
| igbt6 | 4:65cc8bd09b18 | 1222 | |
| igbt6 | 4:65cc8bd09b18 | 1223 | /**Query Software Version | 
| igbt6 | 4:65cc8bd09b18 | 1224 | * @return | 
| igbt6 | 4:65cc8bd09b18 | 1225 | * software version- Ok, | 
| igbt6 | 4:65cc8bd09b18 | 1226 | * null - Error, | 
| igbt6 | 4:65cc8bd09b18 | 1227 | * Note1: This command is use for HMSensor. | 
| igbt6 | 4:65cc8bd09b18 | 1228 | * Note2: Added in V523 version. | 
| igbt6 | 4:65cc8bd09b18 | 1229 | */ | 
| igbt6 | 4:65cc8bd09b18 | 1230 | char* querySoftwareVersion(void); | 
| igbt6 | 4:65cc8bd09b18 | 1231 | |
| igbt6 | 4:65cc8bd09b18 | 1232 | |
| igbt6 | 4:65cc8bd09b18 | 1233 | |
| igbt6 | 3:d32bdfd04d82 | 1234 | |
| igbt6 | 0:df4bd867616e | 1235 | private: | 
| igbt6 | 0:df4bd867616e | 1236 | |
| igbt6 | 0:df4bd867616e | 1237 | bool waitForData(int timeoutMs); | 
| igbt6 | 0:df4bd867616e | 1238 | BufferedSerial mSerial; | 
| igbt6 | 0:df4bd867616e | 1239 | }; | 
| igbt6 | 0:df4bd867616e | 1240 | |
| igbt6 | 0:df4bd867616e | 1241 | |
| igbt6 | 0:df4bd867616e | 1242 | |
| igbt6 | 0:df4bd867616e | 1243 | |
| igbt6 | 0:df4bd867616e | 1244 | |
| igbt6 | 0:df4bd867616e | 1245 | |
| igbt6 | 0:df4bd867616e | 1246 | |
| igbt6 | 0:df4bd867616e | 1247 | |
| igbt6 | 0:df4bd867616e | 1248 | |
| igbt6 | 0:df4bd867616e | 1249 | |
| igbt6 | 0:df4bd867616e | 1250 | |
| igbt6 | 0:df4bd867616e | 1251 | #endif | 
