Library for Bluetooth Low Energy Module ble 4.0 HM-11

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?

UserRevisionLine numberNew 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