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