Library for Bluetooth Low Energy Module ble 4.0 HM-11
hm11.h@3:d32bdfd04d82, 2015-11-23 (annotated)
- Committer:
- igbt6
- Date:
- Mon Nov 23 00:18:45 2015 +0000
- Revision:
- 3:d32bdfd04d82
- Parent:
- 1:abf1462d47a0
- Child:
- 4:65cc8bd09b18
Hm11- ble more prototypes added
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 | 3:d32bdfd04d82 | 210 | typedef struct ScanResult{ |
igbt6 | 3:d32bdfd04d82 | 211 | char* addr; |
igbt6 | 3:d32bdfd04d82 | 212 | char*name; |
igbt6 | 3:d32bdfd04d82 | 213 | uint8_t nr; //0-5 |
igbt6 | 3:d32bdfd04d82 | 214 | }ScanResult_t; |
igbt6 | 3:d32bdfd04d82 | 215 | |
igbt6 | 3:d32bdfd04d82 | 216 | |
igbt6 | 3:d32bdfd04d82 | 217 | typedef enum DeployMode{ |
igbt6 | 3:d32bdfd04d82 | 218 | _BROAD_AND_SCAN=1, //Allowed to broadcast and scanning |
igbt6 | 3:d32bdfd04d82 | 219 | _ONLY_BROAD, //Only allow broadcast |
igbt6 | 3:d32bdfd04d82 | 220 | _INVALID_DEPLOY_MODE |
igbt6 | 3:d32bdfd04d82 | 221 | }DeployMode_t; |
igbt6 | 3:d32bdfd04d82 | 222 | |
igbt6 | 3:d32bdfd04d82 | 223 | |
igbt6 | 3:d32bdfd04d82 | 224 | typedef enum FilterOfHmModules{ |
igbt6 | 3:d32bdfd04d82 | 225 | _ALL_BLE_MODULES=0, //Will find all BLE modules |
igbt6 | 3:d32bdfd04d82 | 226 | _ONLY_HM_MODULES, //Only find HM Modules |
igbt6 | 3:d32bdfd04d82 | 227 | _INVALID_FILTER |
igbt6 | 3:d32bdfd04d82 | 228 | }FilterOfHmModules_t; |
igbt6 | 3:d32bdfd04d82 | 229 | |
igbt6 | 3:d32bdfd04d82 | 230 | |
igbt6 | 3:d32bdfd04d82 | 231 | typedef enum ModuleWorkType{ |
igbt6 | 3:d32bdfd04d82 | 232 | _WAIT_UNTIL_AT_START_RECEIVED=0, //Will find all BLE modules |
igbt6 | 3:d32bdfd04d82 | 233 | _WORK_IMMEDIATELY, //Only find HM Modules |
igbt6 | 3:d32bdfd04d82 | 234 | _INVALID_MODULE_WORK_TYPE |
igbt6 | 3:d32bdfd04d82 | 235 | }ModuleWorkType_t; |
igbt6 | 3:d32bdfd04d82 | 236 | |
igbt6 | 3:d32bdfd04d82 | 237 | |
igbt6 | 3:d32bdfd04d82 | 238 | typedef enum ModuleWorkMode{ |
igbt6 | 3:d32bdfd04d82 | 239 | _TRANSM_MODE=0, |
igbt6 | 3:d32bdfd04d82 | 240 | _PIO_COLLECTION_MODE, |
igbt6 | 3:d32bdfd04d82 | 241 | _REMOTE_CONTROL_MODE |
igbt6 | 3:d32bdfd04d82 | 242 | }ModuleWorkMode_t; |
igbt6 | 3:d32bdfd04d82 | 243 | |
igbt6 | 3:d32bdfd04d82 | 244 | |
igbt6 | 3:d32bdfd04d82 | 245 | |
igbt6 | 3:d32bdfd04d82 | 246 | |
igbt6 | 3:d32bdfd04d82 | 247 | typedef enum ParityBit{ |
igbt6 | 3:d32bdfd04d82 | 248 | _NONE=0, |
igbt6 | 3:d32bdfd04d82 | 249 | _EVEN, |
igbt6 | 3:d32bdfd04d82 | 250 | _ODD |
igbt6 | 3:d32bdfd04d82 | 251 | }ParityBit_t; |
igbt6 | 3:d32bdfd04d82 | 252 | |
igbt6 | 3:d32bdfd04d82 | 253 | |
igbt6 | 3:d32bdfd04d82 | 254 | |
igbt6 | 0:df4bd867616e | 255 | class HM11{ |
igbt6 | 0:df4bd867616e | 256 | |
igbt6 | 0:df4bd867616e | 257 | public: |
igbt6 | 0:df4bd867616e | 258 | HM11(PinName uartTx , PinName uartRx); |
igbt6 | 0:df4bd867616e | 259 | |
igbt6 | 0:df4bd867616e | 260 | HM11(const BufferedSerial & serial); |
igbt6 | 0:df4bd867616e | 261 | |
igbt6 | 0:df4bd867616e | 262 | bool sendGetCommand(const char* command); |
igbt6 | 0:df4bd867616e | 263 | bool sendSetCommand(const char* command,int param); |
igbt6 | 0:df4bd867616e | 264 | |
igbt6 | 0:df4bd867616e | 265 | bool isCorrectCommand(const char* command, HM11CommandType cmdType); |
igbt6 | 0:df4bd867616e | 266 | |
igbt6 | 0:df4bd867616e | 267 | int sendDataToDevice(const char* data); |
igbt6 | 3:d32bdfd04d82 | 268 | int sendDataToDevice(uint8_t * byteData,uint8_t dataLength); |
igbt6 | 0:df4bd867616e | 269 | |
igbt6 | 0:df4bd867616e | 270 | int isRxDataAvailable(); |
igbt6 | 0:df4bd867616e | 271 | |
igbt6 | 0:df4bd867616e | 272 | inline uint8_t getDataFromRx() { |
igbt6 | 0:df4bd867616e | 273 | return mSerial.getc(); |
igbt6 | 0:df4bd867616e | 274 | } |
igbt6 | 0:df4bd867616e | 275 | |
igbt6 | 0:df4bd867616e | 276 | |
igbt6 | 0:df4bd867616e | 277 | //commandMethods |
igbt6 | 0:df4bd867616e | 278 | bool testCommand(void); |
igbt6 | 0:df4bd867616e | 279 | char* queryModuleAddress(void); |
igbt6 | 0:df4bd867616e | 280 | bool setAdvertisingInterval(AdvertisingInterval_t advInt); |
igbt6 | 0:df4bd867616e | 281 | AdvertisingInterval_t queryAdvertisingInterval(void); |
igbt6 | 0:df4bd867616e | 282 | |
igbt6 | 0:df4bd867616e | 283 | bool setAdvertisingType(AdvertisingType_t advInt); |
igbt6 | 0:df4bd867616e | 284 | AdvertisingType_t queryAdvertisingType(void); |
igbt6 | 0:df4bd867616e | 285 | |
igbt6 | 0:df4bd867616e | 286 | |
igbt6 | 0:df4bd867616e | 287 | /** Set ANCS switch |
igbt6 | 0:df4bd867616e | 288 | * @param enable |0: Off |1: On |Default: 0 |
igbt6 | 0:df4bd867616e | 289 | * @return |
igbt6 | 0:df4bd867616e | 290 | * 1 on success, |
igbt6 | 0:df4bd867616e | 291 | * 0 on error. |
igbt6 | 0:df4bd867616e | 292 | * Note1: This command added in V524. |
igbt6 | 0:df4bd867616e | 293 | * Note2: Please send AT+RESET to restart module if you set value 1. |
igbt6 | 0:df4bd867616e | 294 | * Note3: Must execute AT+TYPE3 first. |
igbt6 | 0:df4bd867616e | 295 | */ |
igbt6 | 0:df4bd867616e | 296 | bool setAncsSwitch(uint8_t enable); |
igbt6 | 0:df4bd867616e | 297 | |
igbt6 | 0:df4bd867616e | 298 | |
igbt6 | 0:df4bd867616e | 299 | /** query ANCS switch |
igbt6 | 0:df4bd867616e | 300 | * @return |
igbt6 | 0:df4bd867616e | 301 | * 1 -On, |
igbt6 | 0:df4bd867616e | 302 | * 0 -Off |
igbt6 | 0:df4bd867616e | 303 | * 0xFF -error |
igbt6 | 0:df4bd867616e | 304 | * Note1: This command added in V524. |
igbt6 | 0:df4bd867616e | 305 | * Note2: Please send AT+RESET to restart module if you set value 1. |
igbt6 | 0:df4bd867616e | 306 | * Note3: Must execute AT+TYPE3 first. |
igbt6 | 0:df4bd867616e | 307 | */ |
igbt6 | 0:df4bd867616e | 308 | uint8_t queryAncsSwitch(void); |
igbt6 | 0:df4bd867616e | 309 | |
igbt6 | 0:df4bd867616e | 310 | |
igbt6 | 0:df4bd867616e | 311 | /** Set Whitelist switch |
igbt6 | 0:df4bd867616e | 312 | * @param enable |0: Off |1: On |Default: 0 |
igbt6 | 0:df4bd867616e | 313 | * @return |
igbt6 | 0:df4bd867616e | 314 | * 1 on success, |
igbt6 | 0:df4bd867616e | 315 | * 0 on error. |
igbt6 | 0:df4bd867616e | 316 | * Note1: This command added in V523 |
igbt6 | 0:df4bd867616e | 317 | * Note2: Whitelist allow three mac address link to module. Please use AT+AD command set whitelist mac address. |
igbt6 | 0:df4bd867616e | 318 | */ |
igbt6 | 0:df4bd867616e | 319 | bool setWhitelistSwitch(uint8_t enable); |
igbt6 | 0:df4bd867616e | 320 | |
igbt6 | 0:df4bd867616e | 321 | |
igbt6 | 0:df4bd867616e | 322 | /** query Whitelist Switch |
igbt6 | 0:df4bd867616e | 323 | * @return |
igbt6 | 0:df4bd867616e | 324 | * 1 - On, |
igbt6 | 0:df4bd867616e | 325 | * 0 - Off, |
igbt6 | 0:df4bd867616e | 326 | * 0xFF -error. |
igbt6 | 0:df4bd867616e | 327 | * Note1: This command added in V523 |
igbt6 | 0:df4bd867616e | 328 | * Note2: Whitelist allow three mac address link to module. Please use AT+AD command set whitelist mac address. |
igbt6 | 0:df4bd867616e | 329 | */ |
igbt6 | 0:df4bd867616e | 330 | uint8_t queryWhitelistSwitch(void); |
igbt6 | 0:df4bd867616e | 331 | |
igbt6 | 0:df4bd867616e | 332 | |
igbt6 | 0:df4bd867616e | 333 | /** Set whitelist mac address |
igbt6 | 0:df4bd867616e | 334 | * @param nrOfMacAddrLinkedToModule |1,2,3 |
igbt6 | 0:df4bd867616e | 335 | * @param macAddress |eg. 001122334455 |
igbt6 | 0:df4bd867616e | 336 | * @return |
igbt6 | 0:df4bd867616e | 337 | * 1 on success, |
igbt6 | 0:df4bd867616e | 338 | * 0 on error. |
igbt6 | 0:df4bd867616e | 339 | */ |
igbt6 | 0:df4bd867616e | 340 | bool setWhitelistMacAddress (uint8_t nrOfMacAddrLinkedToModule, const char* macAddress); |
igbt6 | 0:df4bd867616e | 341 | |
igbt6 | 0:df4bd867616e | 342 | |
igbt6 | 0:df4bd867616e | 343 | /** query whitelist mac address |
igbt6 | 0:df4bd867616e | 344 | * @param nrOfMacAddrLinkedToModule |1,2,3 |
igbt6 | 0:df4bd867616e | 345 | * @return |
igbt6 | 0:df4bd867616e | 346 | * nr of mac addr |
igbt6 | 0:df4bd867616e | 347 | * null -error. |
igbt6 | 0:df4bd867616e | 348 | */ |
igbt6 | 0:df4bd867616e | 349 | char* queryWhitelistMacAddress(uint8_t nrOfMacAddrLinkedToModule); |
igbt6 | 0:df4bd867616e | 350 | |
igbt6 | 0:df4bd867616e | 351 | |
igbt6 | 0:df4bd867616e | 352 | /** Set battery monitor switch |
igbt6 | 0:df4bd867616e | 353 | * @param uint8_t battSwitchEnable: |0: Off |1: On |Default: 0 |
igbt6 | 0:df4bd867616e | 354 | * @return |
igbt6 | 0:df4bd867616e | 355 | * 1 on success, |
igbt6 | 0:df4bd867616e | 356 | * 0 on error. |
igbt6 | 0:df4bd867616e | 357 | * Note1: This command added in V520 |
igbt6 | 0:df4bd867616e | 358 | */ |
igbt6 | 0:df4bd867616e | 359 | bool setBatteryMonitorSwitch(uint8_t battSwitchEnable); |
igbt6 | 0:df4bd867616e | 360 | |
igbt6 | 0:df4bd867616e | 361 | |
igbt6 | 0:df4bd867616e | 362 | /** query BatteryMonitorSwitch |
igbt6 | 0:df4bd867616e | 363 | * @return |
igbt6 | 0:df4bd867616e | 364 | * batt switch state: |0: Off |1: On |
igbt6 | 0:df4bd867616e | 365 | * 0xFF -error |
igbt6 | 0:df4bd867616e | 366 | * Note1: This command added in V520. |
igbt6 | 0:df4bd867616e | 367 | */ |
igbt6 | 0:df4bd867616e | 368 | uint8_t queryBatteryMonitorSwitch(void); |
igbt6 | 0:df4bd867616e | 369 | |
igbt6 | 0:df4bd867616e | 370 | |
igbt6 | 0:df4bd867616e | 371 | |
igbt6 | 0:df4bd867616e | 372 | /**Query battery information |
igbt6 | 0:df4bd867616e | 373 | * @return |
igbt6 | 0:df4bd867616e | 374 | * batt information: 000~100 |
igbt6 | 0:df4bd867616e | 375 | * 0xFF -error |
igbt6 | 0:df4bd867616e | 376 | * |
igbt6 | 0:df4bd867616e | 377 | * There has three ways to get battery information: |
igbt6 | 0:df4bd867616e | 378 | a. Before establishing a connection, Send “AT+BATT?” through UART. |
igbt6 | 0:df4bd867616e | 379 | b. After established a connection, In Mode 1 or 2, remote side send“AT+BATT?” |
igbt6 | 0:df4bd867616e | 380 | Battery information has included in scan response data package, one hour update once |
igbt6 | 0:df4bd867616e | 381 | */ |
igbt6 | 0:df4bd867616e | 382 | uint8_t queryBatteryInformation(void); |
igbt6 | 0:df4bd867616e | 383 | |
igbt6 | 0:df4bd867616e | 384 | |
igbt6 | 0:df4bd867616e | 385 | |
igbt6 | 0:df4bd867616e | 386 | /** Set iBeacon into service mode(*) |
igbt6 | 0:df4bd867616e | 387 | * @return |
igbt6 | 0:df4bd867616e | 388 | * 1 on success, |
igbt6 | 0:df4bd867616e | 389 | * 0 on error. |
igbt6 | 0:df4bd867616e | 390 | * This command is added in V520, Removed in V521, Please use AT+DELO |
igbt6 | 0:df4bd867616e | 391 | * This command set iBeacon into service mode until next power on. |
igbt6 | 0:df4bd867616e | 392 | * In service mode, module not allow any link request. |
igbt6 | 0:df4bd867616e | 393 | * BUSHU is Chinese spelling, meaning the deployment. |
igbt6 | 0:df4bd867616e | 394 | * Note: Should to open iBeacon switch first (AT+IBEA). |
igbt6 | 0:df4bd867616e | 395 | */ |
igbt6 | 0:df4bd867616e | 396 | bool setIBeaconIntoServiceMode(void); |
igbt6 | 0:df4bd867616e | 397 | |
igbt6 | 0:df4bd867616e | 398 | |
igbt6 | 0:df4bd867616e | 399 | |
igbt6 | 0:df4bd867616e | 400 | /** Set Bit format |
igbt6 | 0:df4bd867616e | 401 | * @param bit7Format: 0:NotCompatible, 1:Compatible |
igbt6 | 0:df4bd867616e | 402 | * @return |
igbt6 | 0:df4bd867616e | 403 | * 1 NotCompatible, |
igbt6 | 0:df4bd867616e | 404 | * 0 Compatible, |
igbt6 | 0:df4bd867616e | 405 | * 0xFF Error |
igbt6 | 0:df4bd867616e | 406 | * This command is used only for compatible uses 7 data bits, 2 stop bit device. |
igbt6 | 0:df4bd867616e | 407 | */ |
igbt6 | 0:df4bd867616e | 408 | bool setBitFormat(uint8_t bit7Format); |
igbt6 | 0:df4bd867616e | 409 | |
igbt6 | 0:df4bd867616e | 410 | |
igbt6 | 0:df4bd867616e | 411 | /**Query BitFormat |
igbt6 | 0:df4bd867616e | 412 | * @return |
igbt6 | 0:df4bd867616e | 413 | * bit7 Swu=itch |
igbt6 | 0:df4bd867616e | 414 | * 0xFF -error |
igbt6 | 0:df4bd867616e | 415 | */ |
igbt6 | 0:df4bd867616e | 416 | uint8_t queryBitFormat(void); |
igbt6 | 0:df4bd867616e | 417 | |
igbt6 | 0:df4bd867616e | 418 | |
igbt6 | 0:df4bd867616e | 419 | /** Set baud rate |
igbt6 | 0:df4bd867616e | 420 | * @param baud: Baudrate value |
igbt6 | 0:df4bd867616e | 421 | * @return |
igbt6 | 0:df4bd867616e | 422 | * 1 success, |
igbt6 | 0:df4bd867616e | 423 | * 0 Error, |
igbt6 | 0:df4bd867616e | 424 | */ |
igbt6 | 0:df4bd867616e | 425 | bool setBaudRate(BaudRate_t baud); |
igbt6 | 0:df4bd867616e | 426 | |
igbt6 | 0:df4bd867616e | 427 | |
igbt6 | 0:df4bd867616e | 428 | |
igbt6 | 0:df4bd867616e | 429 | /**Query baud rate |
igbt6 | 0:df4bd867616e | 430 | * @return |
igbt6 | 0:df4bd867616e | 431 | * Baudrate_t - Baudrate value |
igbt6 | 0:df4bd867616e | 432 | */ |
igbt6 | 0:df4bd867616e | 433 | BaudRate_t queryBaudRate(void); |
igbt6 | 0:df4bd867616e | 434 | |
igbt6 | 0:df4bd867616e | 435 | /** Set Characteristic value |
igbt6 | 0:df4bd867616e | 436 | * @param chValue (characteristic value): 0x0001~0xFFFE |
igbt6 | 0:df4bd867616e | 437 | * @return |
igbt6 | 0:df4bd867616e | 438 | * 1 success, |
igbt6 | 0:df4bd867616e | 439 | * 0 Error, |
igbt6 | 0:df4bd867616e | 440 | */ |
igbt6 | 0:df4bd867616e | 441 | bool setCharacteristic(uint16_t chValue); |
igbt6 | 0:df4bd867616e | 442 | |
igbt6 | 0:df4bd867616e | 443 | |
igbt6 | 0:df4bd867616e | 444 | |
igbt6 | 0:df4bd867616e | 445 | /**Query Characteristic value |
igbt6 | 0:df4bd867616e | 446 | * @return |
igbt6 | 0:df4bd867616e | 447 | * characteristic value: 0x0001~0xFFFE |
igbt6 | 0:df4bd867616e | 448 | * error :0xFFFF |
igbt6 | 0:df4bd867616e | 449 | */ |
igbt6 | 0:df4bd867616e | 450 | uint16_t queryCharacteristic(void); |
igbt6 | 0:df4bd867616e | 451 | |
igbt6 | 0:df4bd867616e | 452 | |
igbt6 | 0:df4bd867616e | 453 | /** Try connect to last succeeded device |
igbt6 | 0:df4bd867616e | 454 | * @return |
igbt6 | 0:df4bd867616e | 455 | * ConnectionStatus_t connection status. |
igbt6 | 0:df4bd867616e | 456 | * Notice: Only Central role is used. |
igbt6 | 0:df4bd867616e | 457 | * If remote device has already connected to other device or shut down, |
igbt6 | 0:df4bd867616e | 458 | * “OK+CONNF” will received after about 10 seconds. |
igbt6 | 0:df4bd867616e | 459 | */ |
igbt6 | 0:df4bd867616e | 460 | ConnectionStatus_t connectToLastDevice(void); |
igbt6 | 0:df4bd867616e | 461 | |
igbt6 | 0:df4bd867616e | 462 | |
igbt6 | 0:df4bd867616e | 463 | /** Try connect an address |
igbt6 | 0:df4bd867616e | 464 | * @param address e.g." 0017EA090909 " |
igbt6 | 0:df4bd867616e | 465 | * @return connection status |
igbt6 | 0:df4bd867616e | 466 | * Notice: Only Central role is used. |
igbt6 | 0:df4bd867616e | 467 | * If remote device has already connected to other device or shut down, |
igbt6 | 0:df4bd867616e | 468 | * “OK+CONNF” will received after about 10 seconds. |
igbt6 | 0:df4bd867616e | 469 | * |
igbt6 | 0:df4bd867616e | 470 | * Notice: Only central role is used. |
igbt6 | 0:df4bd867616e | 471 | If remote device has already connected to other device or shut down, |
igbt6 | 0:df4bd867616e | 472 | “OK+CONNF” will received after about 10 Seconds. |
igbt6 | 0:df4bd867616e | 473 | e.g. |
igbt6 | 0:df4bd867616e | 474 | Try to connect an device which MAC address is 00:17:EA:09:09:09 |
igbt6 | 0:df4bd867616e | 475 | Send: AT+CON0017EA090909 |
igbt6 | 0:df4bd867616e | 476 | May receive a reply: |
igbt6 | 0:df4bd867616e | 477 | OK+CONNA ========= Accept request, connecting |
igbt6 | 0:df4bd867616e | 478 | OK+CONNE ========= Connect error |
igbt6 | 0:df4bd867616e | 479 | OK+CONN ========= Connected, if AT+NOTI1 is setup |
igbt6 | 0:df4bd867616e | 480 | OK+CONNF ========= Connect Failed, After 10 seconds |
igbt6 | 0:df4bd867616e | 481 | */ |
igbt6 | 0:df4bd867616e | 482 | ConnectionStatus_t connectToAnAddress(const char* address); |
igbt6 | 0:df4bd867616e | 483 | |
igbt6 | 0:df4bd867616e | 484 | |
igbt6 | 3:d32bdfd04d82 | 485 | /**Query PIO04~PIO11 input(output) state |
igbt6 | 3:d32bdfd04d82 | 486 | * @return |
igbt6 | 3:d32bdfd04d82 | 487 | * in/out state: 0x00~0xFF |
igbt6 | 3:d32bdfd04d82 | 488 | * |
igbt6 | 3:d32bdfd04d82 | 489 | * This command is added since V515 version. |
igbt6 | 3:d32bdfd04d82 | 490 | */ |
igbt6 | 3:d32bdfd04d82 | 491 | uint8_t queryInputOutputState(void); |
igbt6 | 0:df4bd867616e | 492 | |
igbt6 | 3:d32bdfd04d82 | 493 | |
igbt6 | 3:d32bdfd04d82 | 494 | /**Set PIO collection rate |
igbt6 | 3:d32bdfd04d82 | 495 | * @param colRateSec (PIO collection rate): 00-99 unit[s] |
igbt6 | 3:d32bdfd04d82 | 496 | * @return |
igbt6 | 3:d32bdfd04d82 | 497 | * 1 success, |
igbt6 | 3:d32bdfd04d82 | 498 | * 0 Error, |
igbt6 | 3:d32bdfd04d82 | 499 | * |
igbt6 | 3:d32bdfd04d82 | 500 | * In mode 1, when PIO state is change, module will send OK+Col:[xx] to |
igbt6 | 3:d32bdfd04d82 | 501 | * UART or remote side. This command is set send interval. |
igbt6 | 3:d32bdfd04d82 | 502 | * This command is added since V515 version. |
igbt6 | 3:d32bdfd04d82 | 503 | */ |
igbt6 | 3:d32bdfd04d82 | 504 | bool setPioCollectionRate (uint8_t colRateSec); |
igbt6 | 3:d32bdfd04d82 | 505 | |
igbt6 | 3:d32bdfd04d82 | 506 | |
igbt6 | 3:d32bdfd04d82 | 507 | |
igbt6 | 3:d32bdfd04d82 | 508 | /**Query PIO collection rate |
igbt6 | 3:d32bdfd04d82 | 509 | * @return |
igbt6 | 3:d32bdfd04d82 | 510 | * PIO collection rate: 00-99 unit[s] |
igbt6 | 3:d32bdfd04d82 | 511 | * error :0xFF |
igbt6 | 3:d32bdfd04d82 | 512 | */ |
igbt6 | 3:d32bdfd04d82 | 513 | uint8_t queryPioCollectionRate(void); |
igbt6 | 3:d32bdfd04d82 | 514 | |
igbt6 | 3:d32bdfd04d82 | 515 | |
igbt6 | 3:d32bdfd04d82 | 516 | |
igbt6 | 3:d32bdfd04d82 | 517 | /**Start a device discovery scan |
igbt6 | 3:d32bdfd04d82 | 518 | * @param [out] scanRes |
igbt6 | 3:d32bdfd04d82 | 519 | * @return |
igbt6 | 3:d32bdfd04d82 | 520 | * 1 success, |
igbt6 | 3:d32bdfd04d82 | 521 | * 0 Error, |
igbt6 | 3:d32bdfd04d82 | 522 | |
igbt6 | 3:d32bdfd04d82 | 523 | Please set AT+ROLE1 and AT+IMME1 first. |
igbt6 | 3:d32bdfd04d82 | 524 | ---usage--: |
igbt6 | 3:d32bdfd04d82 | 525 | Send: AT+DISC? |
igbt6 | 3:d32bdfd04d82 | 526 | Recv: OK+DISCS |
igbt6 | 3:d32bdfd04d82 | 527 | Recv: OK+DISC:123456789012 (discovered device address information) |
igbt6 | 3:d32bdfd04d82 | 528 | If AT+SHOW1 is setup, you will receive then Name information as follow |
igbt6 | 3:d32bdfd04d82 | 529 | Recv: OK+NAME: xxx |
igbt6 | 3:d32bdfd04d82 | 530 | After send Name value, will send two extra “\r\n” value ASCII byte |
igbt6 | 3:d32bdfd04d82 | 531 | Recv: OK+DISC:234567890123 |
igbt6 | 3:d32bdfd04d82 | 532 | Recv: OK+NAME: xxx |
igbt6 | 3:d32bdfd04d82 | 533 | After send Name value, will send two extra “\r\n” value ASCII byte ...(Max results is 6, use array 0~5) |
igbt6 | 3:d32bdfd04d82 | 534 | Recv: OK+DISCE |
igbt6 | 3:d32bdfd04d82 | 535 | Connect to a discovered device: AT+CONN0, AT+CONN1……AT+CONN5 |
igbt6 | 3:d32bdfd04d82 | 536 | */ |
igbt6 | 3:d32bdfd04d82 | 537 | bool startDeviceDiscoveryScan(ScanResult_t* scanRes); |
igbt6 | 3:d32bdfd04d82 | 538 | |
igbt6 | 3:d32bdfd04d82 | 539 | |
igbt6 | 3:d32bdfd04d82 | 540 | |
igbt6 | 3:d32bdfd04d82 | 541 | /**Connect to an Discovery device |
igbt6 | 3:d32bdfd04d82 | 542 | * @param [in] scanRes |
igbt6 | 3:d32bdfd04d82 | 543 | * @return |
igbt6 | 3:d32bdfd04d82 | 544 | * 1 success, |
igbt6 | 3:d32bdfd04d82 | 545 | * 0 Error, |
igbt6 | 3:d32bdfd04d82 | 546 | |
igbt6 | 3:d32bdfd04d82 | 547 | This command is use after execute AT+DISC? |
igbt6 | 3:d32bdfd04d82 | 548 | This command will clear all discovery data. |
igbt6 | 3:d32bdfd04d82 | 549 | */ |
igbt6 | 3:d32bdfd04d82 | 550 | bool connectToDiscoveryDevice(ScanResult_t* scanRes); |
igbt6 | 3:d32bdfd04d82 | 551 | |
igbt6 | 3:d32bdfd04d82 | 552 | |
igbt6 | 3:d32bdfd04d82 | 553 | |
igbt6 | 3:d32bdfd04d82 | 554 | /**Set IBeaconDeployMode |
igbt6 | 3:d32bdfd04d82 | 555 | * @param depMode - DeployMode_t |
igbt6 | 3:d32bdfd04d82 | 556 | * @return |
igbt6 | 3:d32bdfd04d82 | 557 | * 1 success, |
igbt6 | 3:d32bdfd04d82 | 558 | * 0 Error, |
igbt6 | 3:d32bdfd04d82 | 559 | * |
igbt6 | 3:d32bdfd04d82 | 560 | * After receive OK+DELO[para1], module will reset after 500ms. |
igbt6 | 3:d32bdfd04d82 | 561 | * This command will let module into non-connectable status until next power on. |
igbt6 | 3:d32bdfd04d82 | 562 | */ |
igbt6 | 3:d32bdfd04d82 | 563 | bool setIBeaconDeployMode(DeployMode_t depMode); |
igbt6 | 3:d32bdfd04d82 | 564 | |
igbt6 | 3:d32bdfd04d82 | 565 | |
igbt6 | 3:d32bdfd04d82 | 566 | /**Set filter of HM modules |
igbt6 | 3:d32bdfd04d82 | 567 | * @param filter -FilterOfHmModules_t |
igbt6 | 3:d32bdfd04d82 | 568 | * @return |
igbt6 | 3:d32bdfd04d82 | 569 | * 1 success, |
igbt6 | 3:d32bdfd04d82 | 570 | * 0 Error, |
igbt6 | 3:d32bdfd04d82 | 571 | */ |
igbt6 | 3:d32bdfd04d82 | 572 | bool setFilterOfHmModules(FilterOfHmModules_t filter); |
igbt6 | 3:d32bdfd04d82 | 573 | |
igbt6 | 3:d32bdfd04d82 | 574 | |
igbt6 | 3:d32bdfd04d82 | 575 | /**Query filter of HM modules |
igbt6 | 3:d32bdfd04d82 | 576 | * @return |
igbt6 | 3:d32bdfd04d82 | 577 | * Type of filter |
igbt6 | 3:d32bdfd04d82 | 578 | */ |
igbt6 | 3:d32bdfd04d82 | 579 | FilterOfHmModules_t queryFilterOfHmModules(void); |
igbt6 | 3:d32bdfd04d82 | 580 | |
igbt6 | 3:d32bdfd04d82 | 581 | |
igbt6 | 3:d32bdfd04d82 | 582 | |
igbt6 | 3:d32bdfd04d82 | 583 | /**Remove bond information |
igbt6 | 3:d32bdfd04d82 | 584 | * @return |
igbt6 | 3:d32bdfd04d82 | 585 | * 1 success, |
igbt6 | 3:d32bdfd04d82 | 586 | * 0 Error, |
igbt6 | 3:d32bdfd04d82 | 587 | * Note1: Added in V524 version. |
igbt6 | 3:d32bdfd04d82 | 588 | */ |
igbt6 | 3:d32bdfd04d82 | 589 | bool removeBondInformation(void); |
igbt6 | 3:d32bdfd04d82 | 590 | |
igbt6 | 3:d32bdfd04d82 | 591 | |
igbt6 | 3:d32bdfd04d82 | 592 | /**System Help Information |
igbt6 | 3:d32bdfd04d82 | 593 | * @param [in] char* helpInformation |
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 | bool getSystemHelpInformation(char* helpInformationBuf); |
igbt6 | 3:d32bdfd04d82 | 599 | |
igbt6 | 3:d32bdfd04d82 | 600 | |
igbt6 | 3:d32bdfd04d82 | 601 | /**Set Module work type |
igbt6 | 3:d32bdfd04d82 | 602 | * @param modWorkType -ModuleWorkType_t |
igbt6 | 3:d32bdfd04d82 | 603 | * @return |
igbt6 | 3:d32bdfd04d82 | 604 | * 1 success, |
igbt6 | 3:d32bdfd04d82 | 605 | * 0 Error, |
igbt6 | 3:d32bdfd04d82 | 606 | * This command is only used for Central role. |
igbt6 | 3:d32bdfd04d82 | 607 | */ |
igbt6 | 3:d32bdfd04d82 | 608 | bool setModuleWorkType(ModuleWorkType_t modWorkType); |
igbt6 | 3:d32bdfd04d82 | 609 | |
igbt6 | 3:d32bdfd04d82 | 610 | |
igbt6 | 3:d32bdfd04d82 | 611 | /**Query Module work type |
igbt6 | 3:d32bdfd04d82 | 612 | * @return |
igbt6 | 3:d32bdfd04d82 | 613 | * module Work Type -ModuleWorkType_t |
igbt6 | 3:d32bdfd04d82 | 614 | * This command is only used for Central role. |
igbt6 | 3:d32bdfd04d82 | 615 | */ |
igbt6 | 3:d32bdfd04d82 | 616 | ModuleWorkType_t queryModuleWorkType(void); |
igbt6 | 3:d32bdfd04d82 | 617 | |
igbt6 | 3:d32bdfd04d82 | 618 | |
igbt6 | 3:d32bdfd04d82 | 619 | |
igbt6 | 3:d32bdfd04d82 | 620 | |
igbt6 | 3:d32bdfd04d82 | 621 | |
igbt6 | 3:d32bdfd04d82 | 622 | /**Set Module iBeacon Switch |
igbt6 | 3:d32bdfd04d82 | 623 | * @param turnOnOff |
igbt6 | 3:d32bdfd04d82 | 624 | 0: Turn off iBeacon |
igbt6 | 3:d32bdfd04d82 | 625 | * 1: Turn on iBeacon |
igbt6 | 3:d32bdfd04d82 | 626 | * @return |
igbt6 | 3:d32bdfd04d82 | 627 | * 1 success, |
igbt6 | 3:d32bdfd04d82 | 628 | * 0 Error, |
igbt6 | 3:d32bdfd04d82 | 629 | * This command is added since V517 version. |
igbt6 | 3:d32bdfd04d82 | 630 | */ |
igbt6 | 3:d32bdfd04d82 | 631 | bool setModuleIBeaconSwitch (uint8_t turnOnOff); |
igbt6 | 3:d32bdfd04d82 | 632 | |
igbt6 | 3:d32bdfd04d82 | 633 | |
igbt6 | 3:d32bdfd04d82 | 634 | /**Query iBeacon switch |
igbt6 | 3:d32bdfd04d82 | 635 | * @return |
igbt6 | 3:d32bdfd04d82 | 636 | * 0: Turn off iBeacon |
igbt6 | 3:d32bdfd04d82 | 637 | * 1: Turn on iBeacon |
igbt6 | 3:d32bdfd04d82 | 638 | * This command is added since V517 version. |
igbt6 | 3:d32bdfd04d82 | 639 | */ |
igbt6 | 3:d32bdfd04d82 | 640 | uint8_t queryModuleIBeaconSwitch (void); |
igbt6 | 3:d32bdfd04d82 | 641 | |
igbt6 | 3:d32bdfd04d82 | 642 | |
igbt6 | 3:d32bdfd04d82 | 643 | |
igbt6 | 3:d32bdfd04d82 | 644 | /**Set iBeacon UUID |
igbt6 | 3:d32bdfd04d82 | 645 | * @param: iBeacon Uuid - 0x00000001~0xFFFFFFFE |
igbt6 | 3:d32bdfd04d82 | 646 | * @return |
igbt6 | 3:d32bdfd04d82 | 647 | * 1 success, |
igbt6 | 3:d32bdfd04d82 | 648 | * 0 Error, |
igbt6 | 3:d32bdfd04d82 | 649 | * This command is added since V520 version. |
igbt6 | 3:d32bdfd04d82 | 650 | * Default: iBeacon UUID is: 74278BDA-B644-4520-8F0C-720EAF059935. |
igbt6 | 3:d32bdfd04d82 | 651 | * - uuid1 is 74278BDA |
igbt6 | 3:d32bdfd04d82 | 652 | * - uuid2 is B644-4520 |
igbt6 | 3:d32bdfd04d82 | 653 | * - uuid1 is 8F0C-720E |
igbt6 | 3:d32bdfd04d82 | 654 | * - uuid1 is AF059935 |
igbt6 | 3:d32bdfd04d82 | 655 | */ |
igbt6 | 3:d32bdfd04d82 | 656 | bool setIBeaconUuid (uint32_t uuid0,uint32_t uuid1,uint32_t uuid2, uint32_t uuid3); |
igbt6 | 3:d32bdfd04d82 | 657 | bool setIBeaconUuid (uint32_t* uuid); |
igbt6 | 3:d32bdfd04d82 | 658 | |
igbt6 | 3:d32bdfd04d82 | 659 | /**Query iBeacon Uuid |
igbt6 | 3:d32bdfd04d82 | 660 | * @param: part of uuid - 0~3 |
igbt6 | 3:d32bdfd04d82 | 661 | * @return |
igbt6 | 3:d32bdfd04d82 | 662 | * iBeacon Uuid - 0x00000001~0xFFFFFFFE |
igbt6 | 3:d32bdfd04d82 | 663 | * Error - 0x00 |
igbt6 | 3:d32bdfd04d82 | 664 | * This command is added since V520 version. |
igbt6 | 3:d32bdfd04d82 | 665 | */ |
igbt6 | 3:d32bdfd04d82 | 666 | uint32_t queryIBeaconUuid(uint32_t* nr_of_uuid); |
igbt6 | 3:d32bdfd04d82 | 667 | |
igbt6 | 3:d32bdfd04d82 | 668 | |
igbt6 | 3:d32bdfd04d82 | 669 | |
igbt6 | 3:d32bdfd04d82 | 670 | |
igbt6 | 3:d32bdfd04d82 | 671 | /**Set Module iBeacon major version |
igbt6 | 3:d32bdfd04d82 | 672 | * @param: major version- 0x0001~0xFFFE |
igbt6 | 3:d32bdfd04d82 | 673 | * @return |
igbt6 | 3:d32bdfd04d82 | 674 | * 1 success, |
igbt6 | 3:d32bdfd04d82 | 675 | * 0 Error, |
igbt6 | 3:d32bdfd04d82 | 676 | ^ Default: 0xFFE0 |
igbt6 | 3:d32bdfd04d82 | 677 | * This command is added since V517 version. |
igbt6 | 3:d32bdfd04d82 | 678 | */ |
igbt6 | 3:d32bdfd04d82 | 679 | bool setIBeaconMajor(uint16_t mjrVersion); |
igbt6 | 3:d32bdfd04d82 | 680 | |
igbt6 | 3:d32bdfd04d82 | 681 | |
igbt6 | 3:d32bdfd04d82 | 682 | /**Query Module iBeacon major |
igbt6 | 3:d32bdfd04d82 | 683 | * @return |
igbt6 | 3:d32bdfd04d82 | 684 | * iBeacon major version- 0x0001~0xFFFE |
igbt6 | 3:d32bdfd04d82 | 685 | * Error - 0x0000 |
igbt6 | 3:d32bdfd04d82 | 686 | * This command is added since V517 version. |
igbt6 | 3:d32bdfd04d82 | 687 | */ |
igbt6 | 3:d32bdfd04d82 | 688 | uint16_t queryIBeaconMajor(void); |
igbt6 | 3:d32bdfd04d82 | 689 | |
igbt6 | 3:d32bdfd04d82 | 690 | |
igbt6 | 3:d32bdfd04d82 | 691 | |
igbt6 | 3:d32bdfd04d82 | 692 | /**Set Module iBeacon minor version |
igbt6 | 3:d32bdfd04d82 | 693 | * @param: minorversion- 0x0001~0xFFFE |
igbt6 | 3:d32bdfd04d82 | 694 | * @return |
igbt6 | 3:d32bdfd04d82 | 695 | * 1 success, |
igbt6 | 3:d32bdfd04d82 | 696 | * 0 Error, |
igbt6 | 3:d32bdfd04d82 | 697 | ^ Default: 0xFFE1 |
igbt6 | 3:d32bdfd04d82 | 698 | * This command is added since V517 version. |
igbt6 | 3:d32bdfd04d82 | 699 | */ |
igbt6 | 3:d32bdfd04d82 | 700 | bool setIBeaconMinor(uint16_t mnrVersion); |
igbt6 | 3:d32bdfd04d82 | 701 | |
igbt6 | 3:d32bdfd04d82 | 702 | |
igbt6 | 3:d32bdfd04d82 | 703 | /**Query Module iBeacon minor |
igbt6 | 3:d32bdfd04d82 | 704 | * @return |
igbt6 | 3:d32bdfd04d82 | 705 | * iBeacon minor version- 0x0001~0xFFFE |
igbt6 | 3:d32bdfd04d82 | 706 | * Error - 0x0000 |
igbt6 | 3:d32bdfd04d82 | 707 | * This command is added since V517 version. |
igbt6 | 3:d32bdfd04d82 | 708 | */ |
igbt6 | 3:d32bdfd04d82 | 709 | uint16_t queryIBeaconMinor(void); |
igbt6 | 3:d32bdfd04d82 | 710 | |
igbt6 | 3:d32bdfd04d82 | 711 | |
igbt6 | 3:d32bdfd04d82 | 712 | |
igbt6 | 3:d32bdfd04d82 | 713 | |
igbt6 | 3:d32bdfd04d82 | 714 | /**Set Module iBeacon Measured power |
igbt6 | 3:d32bdfd04d82 | 715 | * @param: measured Power 0x0001~0xFFFE |
igbt6 | 3:d32bdfd04d82 | 716 | * @return |
igbt6 | 3:d32bdfd04d82 | 717 | * 1 success, |
igbt6 | 3:d32bdfd04d82 | 718 | * 0 Error, |
igbt6 | 3:d32bdfd04d82 | 719 | ^ Default: 0xFFE1 |
igbt6 | 3:d32bdfd04d82 | 720 | * This command is added since V519 version. |
igbt6 | 3:d32bdfd04d82 | 721 | */ |
igbt6 | 3:d32bdfd04d82 | 722 | bool setIBeaconMeasuredPower(uint16_t measuredPwr); |
igbt6 | 3:d32bdfd04d82 | 723 | |
igbt6 | 3:d32bdfd04d82 | 724 | |
igbt6 | 3:d32bdfd04d82 | 725 | /**Query Module iBeacon Measured power |
igbt6 | 3:d32bdfd04d82 | 726 | * @return |
igbt6 | 3:d32bdfd04d82 | 727 | * iBeacon minor version- 0x0001~0xFFFE |
igbt6 | 3:d32bdfd04d82 | 728 | * Error - 0x0000 |
igbt6 | 3:d32bdfd04d82 | 729 | * This command is added since V519 version. |
igbt6 | 3:d32bdfd04d82 | 730 | */ |
igbt6 | 3:d32bdfd04d82 | 731 | uint16_t queryIBeaconMeasuredPower(void); |
igbt6 | 3:d32bdfd04d82 | 732 | |
igbt6 | 3:d32bdfd04d82 | 733 | |
igbt6 | 3:d32bdfd04d82 | 734 | |
igbt6 | 3:d32bdfd04d82 | 735 | |
igbt6 | 3:d32bdfd04d82 | 736 | /**Set Module Work Mode |
igbt6 | 3:d32bdfd04d82 | 737 | * @param: WorkMode_t |
igbt6 | 3:d32bdfd04d82 | 738 | * @return |
igbt6 | 3:d32bdfd04d82 | 739 | * 1 success, |
igbt6 | 3:d32bdfd04d82 | 740 | * 0 Error, |
igbt6 | 3:d32bdfd04d82 | 741 | ^ Default: 0xFFE1 |
igbt6 | 3:d32bdfd04d82 | 742 | * This command is added since V519 version. |
igbt6 | 3:d32bdfd04d82 | 743 | */ |
igbt6 | 3:d32bdfd04d82 | 744 | bool setModuleWorkMode(ModuleWorkMode_t workMode); |
igbt6 | 3:d32bdfd04d82 | 745 | |
igbt6 | 3:d32bdfd04d82 | 746 | |
igbt6 | 3:d32bdfd04d82 | 747 | /**Query Module Work Mode |
igbt6 | 3:d32bdfd04d82 | 748 | * @return |
igbt6 | 3:d32bdfd04d82 | 749 | * iBeacon minor version- 0x0001~0xFFFE |
igbt6 | 3:d32bdfd04d82 | 750 | * Error - 0x0000 |
igbt6 | 3:d32bdfd04d82 | 751 | * This command is added since V519 version. |
igbt6 | 3:d32bdfd04d82 | 752 | */ |
igbt6 | 3:d32bdfd04d82 | 753 | ModuleWorkMode_t queryModuleWorkMode(void); |
igbt6 | 3:d32bdfd04d82 | 754 | |
igbt6 | 3:d32bdfd04d82 | 755 | |
igbt6 | 3:d32bdfd04d82 | 756 | |
igbt6 | 3:d32bdfd04d82 | 757 | |
igbt6 | 3:d32bdfd04d82 | 758 | /**Set Module name |
igbt6 | 3:d32bdfd04d82 | 759 | * @param: name, length<12 |
igbt6 | 3:d32bdfd04d82 | 760 | * @return |
igbt6 | 3:d32bdfd04d82 | 761 | * 1 success, |
igbt6 | 3:d32bdfd04d82 | 762 | * 0 Error, |
igbt6 | 3:d32bdfd04d82 | 763 | */ |
igbt6 | 3:d32bdfd04d82 | 764 | bool setModuleName(char* name, uint8_t nameLength); |
igbt6 | 3:d32bdfd04d82 | 765 | |
igbt6 | 3:d32bdfd04d82 | 766 | |
igbt6 | 3:d32bdfd04d82 | 767 | /**Query Module name |
igbt6 | 3:d32bdfd04d82 | 768 | * @param: name -> ptr to response buffer |
igbt6 | 3:d32bdfd04d82 | 769 | * @return |
igbt6 | 3:d32bdfd04d82 | 770 | * 1 success, |
igbt6 | 3:d32bdfd04d82 | 771 | * 0 Error, |
igbt6 | 3:d32bdfd04d82 | 772 | */ |
igbt6 | 3:d32bdfd04d82 | 773 | bool queryModuleName(char *name); |
igbt6 | 3:d32bdfd04d82 | 774 | |
igbt6 | 3:d32bdfd04d82 | 775 | |
igbt6 | 3:d32bdfd04d82 | 776 | |
igbt6 | 3:d32bdfd04d82 | 777 | |
igbt6 | 3:d32bdfd04d82 | 778 | /**Set Module parity bit |
igbt6 | 3:d32bdfd04d82 | 779 | * @param: ParityBit_t pBit |
igbt6 | 3:d32bdfd04d82 | 780 | * @return |
igbt6 | 3:d32bdfd04d82 | 781 | * 1 success, |
igbt6 | 3:d32bdfd04d82 | 782 | * 0 Error, |
igbt6 | 3:d32bdfd04d82 | 783 | */ |
igbt6 | 3:d32bdfd04d82 | 784 | bool setParityBit(ParityBit_t pBit); |
igbt6 | 3:d32bdfd04d82 | 785 | |
igbt6 | 3:d32bdfd04d82 | 786 | |
igbt6 | 3:d32bdfd04d82 | 787 | /**Query Module parity bit |
igbt6 | 3:d32bdfd04d82 | 788 | * @return |
igbt6 | 3:d32bdfd04d82 | 789 | * -ParityBit_t val |
igbt6 | 3:d32bdfd04d82 | 790 | */ |
igbt6 | 3:d32bdfd04d82 | 791 | ParityBit_t queryParityBit(void); |
igbt6 | 3:d32bdfd04d82 | 792 | |
igbt6 | 3:d32bdfd04d82 | 793 | |
igbt6 | 3:d32bdfd04d82 | 794 | |
igbt6 | 3:d32bdfd04d82 | 795 | |
igbt6 | 3:d32bdfd04d82 | 796 | |
igbt6 | 3:d32bdfd04d82 | 797 | |
igbt6 | 3:d32bdfd04d82 | 798 | |
igbt6 | 3:d32bdfd04d82 | 799 | |
igbt6 | 3:d32bdfd04d82 | 800 | |
igbt6 | 3:d32bdfd04d82 | 801 | |
igbt6 | 3:d32bdfd04d82 | 802 | |
igbt6 | 3:d32bdfd04d82 | 803 | |
igbt6 | 0:df4bd867616e | 804 | private: |
igbt6 | 0:df4bd867616e | 805 | |
igbt6 | 0:df4bd867616e | 806 | bool waitForData(int timeoutMs); |
igbt6 | 0:df4bd867616e | 807 | BufferedSerial mSerial; |
igbt6 | 0:df4bd867616e | 808 | }; |
igbt6 | 0:df4bd867616e | 809 | |
igbt6 | 0:df4bd867616e | 810 | |
igbt6 | 0:df4bd867616e | 811 | |
igbt6 | 0:df4bd867616e | 812 | |
igbt6 | 0:df4bd867616e | 813 | |
igbt6 | 0:df4bd867616e | 814 | |
igbt6 | 0:df4bd867616e | 815 | |
igbt6 | 0:df4bd867616e | 816 | |
igbt6 | 0:df4bd867616e | 817 | |
igbt6 | 0:df4bd867616e | 818 | |
igbt6 | 0:df4bd867616e | 819 | |
igbt6 | 0:df4bd867616e | 820 | #endif |