Library for Bluetooth Low Energy Module ble 4.0 HM-11

Committer:
igbt6
Date:
Mon Nov 30 14:52:32 2015 +0000
Revision:
4:65cc8bd09b18
Parent:
3:d32bdfd04d82
Child:
5:9a00e7bb0275
declarations of all methods done

Who changed what in which revision?

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 4:65cc8bd09b18 210
igbt6 3:d32bdfd04d82 211 typedef struct ScanResult{
igbt6 3:d32bdfd04d82 212 char* addr;
igbt6 3:d32bdfd04d82 213 char*name;
igbt6 3:d32bdfd04d82 214 uint8_t nr; //0-5
igbt6 3:d32bdfd04d82 215 }ScanResult_t;
igbt6 3:d32bdfd04d82 216
igbt6 3:d32bdfd04d82 217
igbt6 3:d32bdfd04d82 218 typedef enum DeployMode{
igbt6 3:d32bdfd04d82 219 _BROAD_AND_SCAN=1, //Allowed to broadcast and scanning
igbt6 3:d32bdfd04d82 220 _ONLY_BROAD, //Only allow broadcast
igbt6 3:d32bdfd04d82 221 _INVALID_DEPLOY_MODE
igbt6 3:d32bdfd04d82 222 }DeployMode_t;
igbt6 3:d32bdfd04d82 223
igbt6 3:d32bdfd04d82 224
igbt6 3:d32bdfd04d82 225 typedef enum FilterOfHmModules{
igbt6 3:d32bdfd04d82 226 _ALL_BLE_MODULES=0, //Will find all BLE modules
igbt6 3:d32bdfd04d82 227 _ONLY_HM_MODULES, //Only find HM Modules
igbt6 3:d32bdfd04d82 228 _INVALID_FILTER
igbt6 3:d32bdfd04d82 229 }FilterOfHmModules_t;
igbt6 3:d32bdfd04d82 230
igbt6 3:d32bdfd04d82 231
igbt6 3:d32bdfd04d82 232 typedef enum ModuleWorkType{
igbt6 3:d32bdfd04d82 233 _WAIT_UNTIL_AT_START_RECEIVED=0, //Will find all BLE modules
igbt6 3:d32bdfd04d82 234 _WORK_IMMEDIATELY, //Only find HM Modules
igbt6 3:d32bdfd04d82 235 _INVALID_MODULE_WORK_TYPE
igbt6 3:d32bdfd04d82 236 }ModuleWorkType_t;
igbt6 3:d32bdfd04d82 237
igbt6 3:d32bdfd04d82 238
igbt6 3:d32bdfd04d82 239 typedef enum ModuleWorkMode{
igbt6 3:d32bdfd04d82 240 _TRANSM_MODE=0,
igbt6 3:d32bdfd04d82 241 _PIO_COLLECTION_MODE,
igbt6 3:d32bdfd04d82 242 _REMOTE_CONTROL_MODE
igbt6 3:d32bdfd04d82 243 }ModuleWorkMode_t;
igbt6 3:d32bdfd04d82 244
igbt6 3:d32bdfd04d82 245
igbt6 3:d32bdfd04d82 246
igbt6 3:d32bdfd04d82 247
igbt6 3:d32bdfd04d82 248 typedef enum ParityBit{
igbt6 3:d32bdfd04d82 249 _NONE=0,
igbt6 3:d32bdfd04d82 250 _EVEN,
igbt6 3:d32bdfd04d82 251 _ODD
igbt6 3:d32bdfd04d82 252 }ParityBit_t;
igbt6 3:d32bdfd04d82 253
igbt6 3:d32bdfd04d82 254
igbt6 4:65cc8bd09b18 255 typedef enum ModulePower{
igbt6 4:65cc8bd09b18 256 _23dbm=0, //-23dbm
igbt6 4:65cc8bd09b18 257 __6dbm, //-6dbm
igbt6 4:65cc8bd09b18 258 _0dbm, //0dbm
igbt6 4:65cc8bd09b18 259 _6dbm, //6dbm
igbt6 4:65cc8bd09b18 260 _INVALID_MOD_POWER
igbt6 4:65cc8bd09b18 261 }ModulePower_t;
igbt6 4:65cc8bd09b18 262
igbt6 4:65cc8bd09b18 263
igbt6 4:65cc8bd09b18 264
igbt6 4:65cc8bd09b18 265 typedef enum SensorType{
igbt6 4:65cc8bd09b18 266 _NONE_SENSOR=0, //None
igbt6 4:65cc8bd09b18 267 _DHT11, //dht11
igbt6 4:65cc8bd09b18 268 _DS18B20, //ds18b20
igbt6 4:65cc8bd09b18 269 _INVALID_SENSOR_TYPE
igbt6 4:65cc8bd09b18 270 }SensorType_t;
igbt6 4:65cc8bd09b18 271
igbt6 4:65cc8bd09b18 272
igbt6 4:65cc8bd09b18 273 typedef enum BondMode{
igbt6 4:65cc8bd09b18 274 _NOT_NEED_PIN_CODE=0,
igbt6 4:65cc8bd09b18 275 _AUTH_NOT_NEED_PIN,
igbt6 4:65cc8bd09b18 276 _AUTH_WITH_PIN,
igbt6 4:65cc8bd09b18 277 _AUTH_AND_BOND,
igbt6 4:65cc8bd09b18 278 _INVALID_BOND_MODE
igbt6 4:65cc8bd09b18 279 }BondMode_t;
igbt6 4:65cc8bd09b18 280
igbt6 3:d32bdfd04d82 281
igbt6 0:df4bd867616e 282 class HM11{
igbt6 0:df4bd867616e 283
igbt6 0:df4bd867616e 284 public:
igbt6 0:df4bd867616e 285 HM11(PinName uartTx , PinName uartRx);
igbt6 0:df4bd867616e 286
igbt6 0:df4bd867616e 287 HM11(const BufferedSerial & serial);
igbt6 0:df4bd867616e 288
igbt6 0:df4bd867616e 289 bool sendGetCommand(const char* command);
igbt6 0:df4bd867616e 290 bool sendSetCommand(const char* command,int param);
igbt6 0:df4bd867616e 291
igbt6 0:df4bd867616e 292 bool isCorrectCommand(const char* command, HM11CommandType cmdType);
igbt6 0:df4bd867616e 293
igbt6 0:df4bd867616e 294 int sendDataToDevice(const char* data);
igbt6 3:d32bdfd04d82 295 int sendDataToDevice(uint8_t * byteData,uint8_t dataLength);
igbt6 0:df4bd867616e 296
igbt6 0:df4bd867616e 297 int isRxDataAvailable();
igbt6 0:df4bd867616e 298
igbt6 0:df4bd867616e 299 inline uint8_t getDataFromRx() {
igbt6 0:df4bd867616e 300 return mSerial.getc();
igbt6 0:df4bd867616e 301 }
igbt6 0:df4bd867616e 302
igbt6 0:df4bd867616e 303
igbt6 0:df4bd867616e 304 //commandMethods
igbt6 0:df4bd867616e 305 bool testCommand(void);
igbt6 0:df4bd867616e 306 char* queryModuleAddress(void);
igbt6 0:df4bd867616e 307 bool setAdvertisingInterval(AdvertisingInterval_t advInt);
igbt6 0:df4bd867616e 308 AdvertisingInterval_t queryAdvertisingInterval(void);
igbt6 0:df4bd867616e 309
igbt6 0:df4bd867616e 310 bool setAdvertisingType(AdvertisingType_t advInt);
igbt6 0:df4bd867616e 311 AdvertisingType_t queryAdvertisingType(void);
igbt6 0:df4bd867616e 312
igbt6 0:df4bd867616e 313
igbt6 0:df4bd867616e 314 /** Set ANCS switch
igbt6 0:df4bd867616e 315 * @param enable |0: Off |1: On |Default: 0
igbt6 0:df4bd867616e 316 * @return
igbt6 0:df4bd867616e 317 * 1 on success,
igbt6 0:df4bd867616e 318 * 0 on error.
igbt6 0:df4bd867616e 319 * Note1: This command added in V524.
igbt6 0:df4bd867616e 320 * Note2: Please send AT+RESET to restart module if you set value 1.
igbt6 0:df4bd867616e 321 * Note3: Must execute AT+TYPE3 first.
igbt6 0:df4bd867616e 322 */
igbt6 0:df4bd867616e 323 bool setAncsSwitch(uint8_t enable);
igbt6 0:df4bd867616e 324
igbt6 0:df4bd867616e 325
igbt6 0:df4bd867616e 326 /** query ANCS switch
igbt6 0:df4bd867616e 327 * @return
igbt6 0:df4bd867616e 328 * 1 -On,
igbt6 0:df4bd867616e 329 * 0 -Off
igbt6 0:df4bd867616e 330 * 0xFF -error
igbt6 0:df4bd867616e 331 * Note1: This command added in V524.
igbt6 0:df4bd867616e 332 * Note2: Please send AT+RESET to restart module if you set value 1.
igbt6 0:df4bd867616e 333 * Note3: Must execute AT+TYPE3 first.
igbt6 0:df4bd867616e 334 */
igbt6 0:df4bd867616e 335 uint8_t queryAncsSwitch(void);
igbt6 0:df4bd867616e 336
igbt6 0:df4bd867616e 337
igbt6 0:df4bd867616e 338 /** Set Whitelist switch
igbt6 0:df4bd867616e 339 * @param enable |0: Off |1: On |Default: 0
igbt6 0:df4bd867616e 340 * @return
igbt6 0:df4bd867616e 341 * 1 on success,
igbt6 0:df4bd867616e 342 * 0 on error.
igbt6 0:df4bd867616e 343 * Note1: This command added in V523
igbt6 0:df4bd867616e 344 * Note2: Whitelist allow three mac address link to module. Please use AT+AD command set whitelist mac address.
igbt6 0:df4bd867616e 345 */
igbt6 0:df4bd867616e 346 bool setWhitelistSwitch(uint8_t enable);
igbt6 0:df4bd867616e 347
igbt6 0:df4bd867616e 348
igbt6 0:df4bd867616e 349 /** query Whitelist Switch
igbt6 0:df4bd867616e 350 * @return
igbt6 0:df4bd867616e 351 * 1 - On,
igbt6 0:df4bd867616e 352 * 0 - Off,
igbt6 0:df4bd867616e 353 * 0xFF -error.
igbt6 0:df4bd867616e 354 * Note1: This command added in V523
igbt6 0:df4bd867616e 355 * Note2: Whitelist allow three mac address link to module. Please use AT+AD command set whitelist mac address.
igbt6 0:df4bd867616e 356 */
igbt6 0:df4bd867616e 357 uint8_t queryWhitelistSwitch(void);
igbt6 0:df4bd867616e 358
igbt6 0:df4bd867616e 359
igbt6 0:df4bd867616e 360 /** Set whitelist mac address
igbt6 0:df4bd867616e 361 * @param nrOfMacAddrLinkedToModule |1,2,3
igbt6 0:df4bd867616e 362 * @param macAddress |eg. 001122334455
igbt6 0:df4bd867616e 363 * @return
igbt6 0:df4bd867616e 364 * 1 on success,
igbt6 0:df4bd867616e 365 * 0 on error.
igbt6 0:df4bd867616e 366 */
igbt6 0:df4bd867616e 367 bool setWhitelistMacAddress (uint8_t nrOfMacAddrLinkedToModule, const char* macAddress);
igbt6 0:df4bd867616e 368
igbt6 0:df4bd867616e 369
igbt6 0:df4bd867616e 370 /** query whitelist mac address
igbt6 0:df4bd867616e 371 * @param nrOfMacAddrLinkedToModule |1,2,3
igbt6 0:df4bd867616e 372 * @return
igbt6 0:df4bd867616e 373 * nr of mac addr
igbt6 0:df4bd867616e 374 * null -error.
igbt6 0:df4bd867616e 375 */
igbt6 0:df4bd867616e 376 char* queryWhitelistMacAddress(uint8_t nrOfMacAddrLinkedToModule);
igbt6 0:df4bd867616e 377
igbt6 0:df4bd867616e 378
igbt6 0:df4bd867616e 379 /** Set battery monitor switch
igbt6 0:df4bd867616e 380 * @param uint8_t battSwitchEnable: |0: Off |1: On |Default: 0
igbt6 0:df4bd867616e 381 * @return
igbt6 0:df4bd867616e 382 * 1 on success,
igbt6 0:df4bd867616e 383 * 0 on error.
igbt6 0:df4bd867616e 384 * Note1: This command added in V520
igbt6 0:df4bd867616e 385 */
igbt6 0:df4bd867616e 386 bool setBatteryMonitorSwitch(uint8_t battSwitchEnable);
igbt6 0:df4bd867616e 387
igbt6 0:df4bd867616e 388
igbt6 0:df4bd867616e 389 /** query BatteryMonitorSwitch
igbt6 0:df4bd867616e 390 * @return
igbt6 0:df4bd867616e 391 * batt switch state: |0: Off |1: On
igbt6 0:df4bd867616e 392 * 0xFF -error
igbt6 0:df4bd867616e 393 * Note1: This command added in V520.
igbt6 0:df4bd867616e 394 */
igbt6 0:df4bd867616e 395 uint8_t queryBatteryMonitorSwitch(void);
igbt6 0:df4bd867616e 396
igbt6 0:df4bd867616e 397
igbt6 0:df4bd867616e 398
igbt6 0:df4bd867616e 399 /**Query battery information
igbt6 0:df4bd867616e 400 * @return
igbt6 0:df4bd867616e 401 * batt information: 000~100
igbt6 0:df4bd867616e 402 * 0xFF -error
igbt6 0:df4bd867616e 403 *
igbt6 0:df4bd867616e 404 * There has three ways to get battery information:
igbt6 0:df4bd867616e 405 a. Before establishing a connection, Send “AT+BATT?” through UART.
igbt6 0:df4bd867616e 406 b. After established a connection, In Mode 1 or 2, remote side send“AT+BATT?”
igbt6 0:df4bd867616e 407 Battery information has included in scan response data package, one hour update once
igbt6 0:df4bd867616e 408 */
igbt6 0:df4bd867616e 409 uint8_t queryBatteryInformation(void);
igbt6 0:df4bd867616e 410
igbt6 0:df4bd867616e 411
igbt6 0:df4bd867616e 412
igbt6 0:df4bd867616e 413 /** Set iBeacon into service mode(*)
igbt6 0:df4bd867616e 414 * @return
igbt6 0:df4bd867616e 415 * 1 on success,
igbt6 0:df4bd867616e 416 * 0 on error.
igbt6 0:df4bd867616e 417 * This command is added in V520, Removed in V521, Please use AT+DELO
igbt6 0:df4bd867616e 418 * This command set iBeacon into service mode until next power on.
igbt6 0:df4bd867616e 419 * In service mode, module not allow any link request.
igbt6 0:df4bd867616e 420 * BUSHU is Chinese spelling, meaning the deployment.
igbt6 0:df4bd867616e 421 * Note: Should to open iBeacon switch first (AT+IBEA).
igbt6 0:df4bd867616e 422 */
igbt6 0:df4bd867616e 423 bool setIBeaconIntoServiceMode(void);
igbt6 0:df4bd867616e 424
igbt6 0:df4bd867616e 425
igbt6 0:df4bd867616e 426
igbt6 0:df4bd867616e 427 /** Set Bit format
igbt6 0:df4bd867616e 428 * @param bit7Format: 0:NotCompatible, 1:Compatible
igbt6 0:df4bd867616e 429 * @return
igbt6 0:df4bd867616e 430 * 1 NotCompatible,
igbt6 0:df4bd867616e 431 * 0 Compatible,
igbt6 0:df4bd867616e 432 * 0xFF Error
igbt6 0:df4bd867616e 433 * This command is used only for compatible uses 7 data bits, 2 stop bit device.
igbt6 0:df4bd867616e 434 */
igbt6 0:df4bd867616e 435 bool setBitFormat(uint8_t bit7Format);
igbt6 0:df4bd867616e 436
igbt6 0:df4bd867616e 437
igbt6 0:df4bd867616e 438 /**Query BitFormat
igbt6 0:df4bd867616e 439 * @return
igbt6 0:df4bd867616e 440 * bit7 Swu=itch
igbt6 0:df4bd867616e 441 * 0xFF -error
igbt6 0:df4bd867616e 442 */
igbt6 0:df4bd867616e 443 uint8_t queryBitFormat(void);
igbt6 0:df4bd867616e 444
igbt6 0:df4bd867616e 445
igbt6 0:df4bd867616e 446 /** Set baud rate
igbt6 0:df4bd867616e 447 * @param baud: Baudrate value
igbt6 0:df4bd867616e 448 * @return
igbt6 0:df4bd867616e 449 * 1 success,
igbt6 0:df4bd867616e 450 * 0 Error,
igbt6 0:df4bd867616e 451 */
igbt6 0:df4bd867616e 452 bool setBaudRate(BaudRate_t baud);
igbt6 0:df4bd867616e 453
igbt6 0:df4bd867616e 454
igbt6 0:df4bd867616e 455
igbt6 0:df4bd867616e 456 /**Query baud rate
igbt6 0:df4bd867616e 457 * @return
igbt6 0:df4bd867616e 458 * Baudrate_t - Baudrate value
igbt6 0:df4bd867616e 459 */
igbt6 0:df4bd867616e 460 BaudRate_t queryBaudRate(void);
igbt6 0:df4bd867616e 461
igbt6 0:df4bd867616e 462 /** Set Characteristic value
igbt6 0:df4bd867616e 463 * @param chValue (characteristic value): 0x0001~0xFFFE
igbt6 0:df4bd867616e 464 * @return
igbt6 0:df4bd867616e 465 * 1 success,
igbt6 0:df4bd867616e 466 * 0 Error,
igbt6 0:df4bd867616e 467 */
igbt6 0:df4bd867616e 468 bool setCharacteristic(uint16_t chValue);
igbt6 0:df4bd867616e 469
igbt6 0:df4bd867616e 470
igbt6 0:df4bd867616e 471
igbt6 0:df4bd867616e 472 /**Query Characteristic value
igbt6 0:df4bd867616e 473 * @return
igbt6 0:df4bd867616e 474 * characteristic value: 0x0001~0xFFFE
igbt6 0:df4bd867616e 475 * error :0xFFFF
igbt6 0:df4bd867616e 476 */
igbt6 0:df4bd867616e 477 uint16_t queryCharacteristic(void);
igbt6 0:df4bd867616e 478
igbt6 0:df4bd867616e 479
igbt6 0:df4bd867616e 480 /** Try connect to last succeeded device
igbt6 0:df4bd867616e 481 * @return
igbt6 0:df4bd867616e 482 * ConnectionStatus_t connection status.
igbt6 0:df4bd867616e 483 * Notice: Only Central role is used.
igbt6 0:df4bd867616e 484 * If remote device has already connected to other device or shut down,
igbt6 0:df4bd867616e 485 * “OK+CONNF” will received after about 10 seconds.
igbt6 0:df4bd867616e 486 */
igbt6 0:df4bd867616e 487 ConnectionStatus_t connectToLastDevice(void);
igbt6 0:df4bd867616e 488
igbt6 0:df4bd867616e 489
igbt6 0:df4bd867616e 490 /** Try connect an address
igbt6 0:df4bd867616e 491 * @param address e.g." 0017EA090909 "
igbt6 0:df4bd867616e 492 * @return connection status
igbt6 0:df4bd867616e 493 * Notice: Only Central role is used.
igbt6 0:df4bd867616e 494 * If remote device has already connected to other device or shut down,
igbt6 0:df4bd867616e 495 * “OK+CONNF” will received after about 10 seconds.
igbt6 0:df4bd867616e 496 *
igbt6 0:df4bd867616e 497 * Notice: Only central role is used.
igbt6 0:df4bd867616e 498 If remote device has already connected to other device or shut down,
igbt6 0:df4bd867616e 499 “OK+CONNF” will received after about 10 Seconds.
igbt6 0:df4bd867616e 500 e.g.
igbt6 0:df4bd867616e 501 Try to connect an device which MAC address is 00:17:EA:09:09:09
igbt6 0:df4bd867616e 502 Send: AT+CON0017EA090909
igbt6 0:df4bd867616e 503 May receive a reply:
igbt6 0:df4bd867616e 504 OK+CONNA ========= Accept request, connecting
igbt6 0:df4bd867616e 505 OK+CONNE ========= Connect error
igbt6 0:df4bd867616e 506 OK+CONN ========= Connected, if AT+NOTI1 is setup
igbt6 0:df4bd867616e 507 OK+CONNF ========= Connect Failed, After 10 seconds
igbt6 0:df4bd867616e 508 */
igbt6 0:df4bd867616e 509 ConnectionStatus_t connectToAnAddress(const char* address);
igbt6 0:df4bd867616e 510
igbt6 0:df4bd867616e 511
igbt6 3:d32bdfd04d82 512 /**Query PIO04~PIO11 input(output) state
igbt6 3:d32bdfd04d82 513 * @return
igbt6 3:d32bdfd04d82 514 * in/out state: 0x00~0xFF
igbt6 3:d32bdfd04d82 515 *
igbt6 3:d32bdfd04d82 516 * This command is added since V515 version.
igbt6 3:d32bdfd04d82 517 */
igbt6 3:d32bdfd04d82 518 uint8_t queryInputOutputState(void);
igbt6 0:df4bd867616e 519
igbt6 3:d32bdfd04d82 520
igbt6 3:d32bdfd04d82 521 /**Set PIO collection rate
igbt6 3:d32bdfd04d82 522 * @param colRateSec (PIO collection rate): 00-99 unit[s]
igbt6 3:d32bdfd04d82 523 * @return
igbt6 3:d32bdfd04d82 524 * 1 success,
igbt6 3:d32bdfd04d82 525 * 0 Error,
igbt6 3:d32bdfd04d82 526 *
igbt6 3:d32bdfd04d82 527 * In mode 1, when PIO state is change, module will send OK+Col:[xx] to
igbt6 3:d32bdfd04d82 528 * UART or remote side. This command is set send interval.
igbt6 3:d32bdfd04d82 529 * This command is added since V515 version.
igbt6 3:d32bdfd04d82 530 */
igbt6 3:d32bdfd04d82 531 bool setPioCollectionRate (uint8_t colRateSec);
igbt6 3:d32bdfd04d82 532
igbt6 3:d32bdfd04d82 533
igbt6 3:d32bdfd04d82 534
igbt6 3:d32bdfd04d82 535 /**Query PIO collection rate
igbt6 3:d32bdfd04d82 536 * @return
igbt6 3:d32bdfd04d82 537 * PIO collection rate: 00-99 unit[s]
igbt6 3:d32bdfd04d82 538 * error :0xFF
igbt6 3:d32bdfd04d82 539 */
igbt6 3:d32bdfd04d82 540 uint8_t queryPioCollectionRate(void);
igbt6 3:d32bdfd04d82 541
igbt6 3:d32bdfd04d82 542
igbt6 3:d32bdfd04d82 543
igbt6 3:d32bdfd04d82 544 /**Start a device discovery scan
igbt6 3:d32bdfd04d82 545 * @param [out] scanRes
igbt6 3:d32bdfd04d82 546 * @return
igbt6 3:d32bdfd04d82 547 * 1 success,
igbt6 3:d32bdfd04d82 548 * 0 Error,
igbt6 3:d32bdfd04d82 549
igbt6 3:d32bdfd04d82 550 Please set AT+ROLE1 and AT+IMME1 first.
igbt6 3:d32bdfd04d82 551 ---usage--:
igbt6 3:d32bdfd04d82 552 Send: AT+DISC?
igbt6 3:d32bdfd04d82 553 Recv: OK+DISCS
igbt6 3:d32bdfd04d82 554 Recv: OK+DISC:123456789012 (discovered device address information)
igbt6 3:d32bdfd04d82 555 If AT+SHOW1 is setup, you will receive then Name information as follow
igbt6 3:d32bdfd04d82 556 Recv: OK+NAME: xxx
igbt6 3:d32bdfd04d82 557 After send Name value, will send two extra “\r\n” value ASCII byte
igbt6 3:d32bdfd04d82 558 Recv: OK+DISC:234567890123
igbt6 3:d32bdfd04d82 559 Recv: OK+NAME: xxx
igbt6 3:d32bdfd04d82 560 After send Name value, will send two extra “\r\n” value ASCII byte ...(Max results is 6, use array 0~5)
igbt6 3:d32bdfd04d82 561 Recv: OK+DISCE
igbt6 3:d32bdfd04d82 562 Connect to a discovered device: AT+CONN0, AT+CONN1……AT+CONN5
igbt6 3:d32bdfd04d82 563 */
igbt6 3:d32bdfd04d82 564 bool startDeviceDiscoveryScan(ScanResult_t* scanRes);
igbt6 3:d32bdfd04d82 565
igbt6 3:d32bdfd04d82 566
igbt6 3:d32bdfd04d82 567
igbt6 3:d32bdfd04d82 568 /**Connect to an Discovery device
igbt6 3:d32bdfd04d82 569 * @param [in] scanRes
igbt6 3:d32bdfd04d82 570 * @return
igbt6 3:d32bdfd04d82 571 * 1 success,
igbt6 3:d32bdfd04d82 572 * 0 Error,
igbt6 3:d32bdfd04d82 573
igbt6 3:d32bdfd04d82 574 This command is use after execute AT+DISC?
igbt6 3:d32bdfd04d82 575 This command will clear all discovery data.
igbt6 3:d32bdfd04d82 576 */
igbt6 3:d32bdfd04d82 577 bool connectToDiscoveryDevice(ScanResult_t* scanRes);
igbt6 3:d32bdfd04d82 578
igbt6 3:d32bdfd04d82 579
igbt6 3:d32bdfd04d82 580
igbt6 3:d32bdfd04d82 581 /**Set IBeaconDeployMode
igbt6 3:d32bdfd04d82 582 * @param depMode - DeployMode_t
igbt6 3:d32bdfd04d82 583 * @return
igbt6 3:d32bdfd04d82 584 * 1 success,
igbt6 3:d32bdfd04d82 585 * 0 Error,
igbt6 3:d32bdfd04d82 586 *
igbt6 3:d32bdfd04d82 587 * After receive OK+DELO[para1], module will reset after 500ms.
igbt6 3:d32bdfd04d82 588 * This command will let module into non-connectable status until next power on.
igbt6 3:d32bdfd04d82 589 */
igbt6 3:d32bdfd04d82 590 bool setIBeaconDeployMode(DeployMode_t depMode);
igbt6 3:d32bdfd04d82 591
igbt6 3:d32bdfd04d82 592
igbt6 3:d32bdfd04d82 593 /**Set filter of HM modules
igbt6 3:d32bdfd04d82 594 * @param filter -FilterOfHmModules_t
igbt6 3:d32bdfd04d82 595 * @return
igbt6 3:d32bdfd04d82 596 * 1 success,
igbt6 3:d32bdfd04d82 597 * 0 Error,
igbt6 3:d32bdfd04d82 598 */
igbt6 3:d32bdfd04d82 599 bool setFilterOfHmModules(FilterOfHmModules_t filter);
igbt6 3:d32bdfd04d82 600
igbt6 3:d32bdfd04d82 601
igbt6 3:d32bdfd04d82 602 /**Query filter of HM modules
igbt6 3:d32bdfd04d82 603 * @return
igbt6 3:d32bdfd04d82 604 * Type of filter
igbt6 3:d32bdfd04d82 605 */
igbt6 3:d32bdfd04d82 606 FilterOfHmModules_t queryFilterOfHmModules(void);
igbt6 3:d32bdfd04d82 607
igbt6 3:d32bdfd04d82 608
igbt6 3:d32bdfd04d82 609
igbt6 3:d32bdfd04d82 610 /**Remove bond information
igbt6 3:d32bdfd04d82 611 * @return
igbt6 3:d32bdfd04d82 612 * 1 success,
igbt6 3:d32bdfd04d82 613 * 0 Error,
igbt6 3:d32bdfd04d82 614 * Note1: Added in V524 version.
igbt6 3:d32bdfd04d82 615 */
igbt6 3:d32bdfd04d82 616 bool removeBondInformation(void);
igbt6 3:d32bdfd04d82 617
igbt6 3:d32bdfd04d82 618
igbt6 3:d32bdfd04d82 619 /**System Help Information
igbt6 3:d32bdfd04d82 620 * @param [in] char* helpInformation
igbt6 3:d32bdfd04d82 621 * @return
igbt6 3:d32bdfd04d82 622 * 1 success,
igbt6 3:d32bdfd04d82 623 * 0 Error,
igbt6 3:d32bdfd04d82 624 */
igbt6 3:d32bdfd04d82 625 bool getSystemHelpInformation(char* helpInformationBuf);
igbt6 3:d32bdfd04d82 626
igbt6 3:d32bdfd04d82 627
igbt6 3:d32bdfd04d82 628 /**Set Module work type
igbt6 3:d32bdfd04d82 629 * @param modWorkType -ModuleWorkType_t
igbt6 3:d32bdfd04d82 630 * @return
igbt6 3:d32bdfd04d82 631 * 1 success,
igbt6 3:d32bdfd04d82 632 * 0 Error,
igbt6 3:d32bdfd04d82 633 * This command is only used for Central role.
igbt6 3:d32bdfd04d82 634 */
igbt6 3:d32bdfd04d82 635 bool setModuleWorkType(ModuleWorkType_t modWorkType);
igbt6 3:d32bdfd04d82 636
igbt6 3:d32bdfd04d82 637
igbt6 3:d32bdfd04d82 638 /**Query Module work type
igbt6 3:d32bdfd04d82 639 * @return
igbt6 3:d32bdfd04d82 640 * module Work Type -ModuleWorkType_t
igbt6 3:d32bdfd04d82 641 * This command is only used for Central role.
igbt6 3:d32bdfd04d82 642 */
igbt6 3:d32bdfd04d82 643 ModuleWorkType_t queryModuleWorkType(void);
igbt6 3:d32bdfd04d82 644
igbt6 3:d32bdfd04d82 645
igbt6 3:d32bdfd04d82 646
igbt6 3:d32bdfd04d82 647
igbt6 3:d32bdfd04d82 648
igbt6 3:d32bdfd04d82 649 /**Set Module iBeacon Switch
igbt6 3:d32bdfd04d82 650 * @param turnOnOff
igbt6 3:d32bdfd04d82 651 0: Turn off iBeacon
igbt6 3:d32bdfd04d82 652 * 1: Turn on iBeacon
igbt6 3:d32bdfd04d82 653 * @return
igbt6 3:d32bdfd04d82 654 * 1 success,
igbt6 3:d32bdfd04d82 655 * 0 Error,
igbt6 3:d32bdfd04d82 656 * This command is added since V517 version.
igbt6 3:d32bdfd04d82 657 */
igbt6 3:d32bdfd04d82 658 bool setModuleIBeaconSwitch (uint8_t turnOnOff);
igbt6 3:d32bdfd04d82 659
igbt6 3:d32bdfd04d82 660
igbt6 3:d32bdfd04d82 661 /**Query iBeacon switch
igbt6 3:d32bdfd04d82 662 * @return
igbt6 3:d32bdfd04d82 663 * 0: Turn off iBeacon
igbt6 3:d32bdfd04d82 664 * 1: Turn on iBeacon
igbt6 3:d32bdfd04d82 665 * This command is added since V517 version.
igbt6 3:d32bdfd04d82 666 */
igbt6 3:d32bdfd04d82 667 uint8_t queryModuleIBeaconSwitch (void);
igbt6 3:d32bdfd04d82 668
igbt6 3:d32bdfd04d82 669
igbt6 3:d32bdfd04d82 670
igbt6 3:d32bdfd04d82 671 /**Set iBeacon UUID
igbt6 3:d32bdfd04d82 672 * @param: iBeacon Uuid - 0x00000001~0xFFFFFFFE
igbt6 3:d32bdfd04d82 673 * @return
igbt6 3:d32bdfd04d82 674 * 1 success,
igbt6 3:d32bdfd04d82 675 * 0 Error,
igbt6 3:d32bdfd04d82 676 * This command is added since V520 version.
igbt6 3:d32bdfd04d82 677 * Default: iBeacon UUID is: 74278BDA-B644-4520-8F0C-720EAF059935.
igbt6 3:d32bdfd04d82 678 * - uuid1 is 74278BDA
igbt6 3:d32bdfd04d82 679 * - uuid2 is B644-4520
igbt6 3:d32bdfd04d82 680 * - uuid1 is 8F0C-720E
igbt6 3:d32bdfd04d82 681 * - uuid1 is AF059935
igbt6 3:d32bdfd04d82 682 */
igbt6 3:d32bdfd04d82 683 bool setIBeaconUuid (uint32_t uuid0,uint32_t uuid1,uint32_t uuid2, uint32_t uuid3);
igbt6 3:d32bdfd04d82 684 bool setIBeaconUuid (uint32_t* uuid);
igbt6 3:d32bdfd04d82 685
igbt6 3:d32bdfd04d82 686 /**Query iBeacon Uuid
igbt6 3:d32bdfd04d82 687 * @param: part of uuid - 0~3
igbt6 3:d32bdfd04d82 688 * @return
igbt6 3:d32bdfd04d82 689 * iBeacon Uuid - 0x00000001~0xFFFFFFFE
igbt6 3:d32bdfd04d82 690 * Error - 0x00
igbt6 3:d32bdfd04d82 691 * This command is added since V520 version.
igbt6 3:d32bdfd04d82 692 */
igbt6 3:d32bdfd04d82 693 uint32_t queryIBeaconUuid(uint32_t* nr_of_uuid);
igbt6 3:d32bdfd04d82 694
igbt6 3:d32bdfd04d82 695
igbt6 3:d32bdfd04d82 696
igbt6 3:d32bdfd04d82 697
igbt6 3:d32bdfd04d82 698 /**Set Module iBeacon major version
igbt6 3:d32bdfd04d82 699 * @param: major version- 0x0001~0xFFFE
igbt6 3:d32bdfd04d82 700 * @return
igbt6 3:d32bdfd04d82 701 * 1 success,
igbt6 3:d32bdfd04d82 702 * 0 Error,
igbt6 3:d32bdfd04d82 703 ^ Default: 0xFFE0
igbt6 3:d32bdfd04d82 704 * This command is added since V517 version.
igbt6 3:d32bdfd04d82 705 */
igbt6 3:d32bdfd04d82 706 bool setIBeaconMajor(uint16_t mjrVersion);
igbt6 3:d32bdfd04d82 707
igbt6 3:d32bdfd04d82 708
igbt6 3:d32bdfd04d82 709 /**Query Module iBeacon major
igbt6 3:d32bdfd04d82 710 * @return
igbt6 3:d32bdfd04d82 711 * iBeacon major version- 0x0001~0xFFFE
igbt6 3:d32bdfd04d82 712 * Error - 0x0000
igbt6 3:d32bdfd04d82 713 * This command is added since V517 version.
igbt6 3:d32bdfd04d82 714 */
igbt6 3:d32bdfd04d82 715 uint16_t queryIBeaconMajor(void);
igbt6 3:d32bdfd04d82 716
igbt6 3:d32bdfd04d82 717
igbt6 3:d32bdfd04d82 718
igbt6 3:d32bdfd04d82 719 /**Set Module iBeacon minor version
igbt6 3:d32bdfd04d82 720 * @param: minorversion- 0x0001~0xFFFE
igbt6 3:d32bdfd04d82 721 * @return
igbt6 3:d32bdfd04d82 722 * 1 success,
igbt6 3:d32bdfd04d82 723 * 0 Error,
igbt6 3:d32bdfd04d82 724 ^ Default: 0xFFE1
igbt6 3:d32bdfd04d82 725 * This command is added since V517 version.
igbt6 3:d32bdfd04d82 726 */
igbt6 3:d32bdfd04d82 727 bool setIBeaconMinor(uint16_t mnrVersion);
igbt6 3:d32bdfd04d82 728
igbt6 3:d32bdfd04d82 729
igbt6 3:d32bdfd04d82 730 /**Query Module iBeacon minor
igbt6 3:d32bdfd04d82 731 * @return
igbt6 3:d32bdfd04d82 732 * iBeacon minor version- 0x0001~0xFFFE
igbt6 3:d32bdfd04d82 733 * Error - 0x0000
igbt6 3:d32bdfd04d82 734 * This command is added since V517 version.
igbt6 3:d32bdfd04d82 735 */
igbt6 3:d32bdfd04d82 736 uint16_t queryIBeaconMinor(void);
igbt6 3:d32bdfd04d82 737
igbt6 3:d32bdfd04d82 738
igbt6 3:d32bdfd04d82 739
igbt6 3:d32bdfd04d82 740
igbt6 3:d32bdfd04d82 741 /**Set Module iBeacon Measured power
igbt6 3:d32bdfd04d82 742 * @param: measured Power 0x0001~0xFFFE
igbt6 3:d32bdfd04d82 743 * @return
igbt6 3:d32bdfd04d82 744 * 1 success,
igbt6 3:d32bdfd04d82 745 * 0 Error,
igbt6 3:d32bdfd04d82 746 ^ Default: 0xFFE1
igbt6 3:d32bdfd04d82 747 * This command is added since V519 version.
igbt6 3:d32bdfd04d82 748 */
igbt6 3:d32bdfd04d82 749 bool setIBeaconMeasuredPower(uint16_t measuredPwr);
igbt6 3:d32bdfd04d82 750
igbt6 3:d32bdfd04d82 751
igbt6 3:d32bdfd04d82 752 /**Query Module iBeacon Measured power
igbt6 3:d32bdfd04d82 753 * @return
igbt6 3:d32bdfd04d82 754 * iBeacon minor version- 0x0001~0xFFFE
igbt6 3:d32bdfd04d82 755 * Error - 0x0000
igbt6 3:d32bdfd04d82 756 * This command is added since V519 version.
igbt6 3:d32bdfd04d82 757 */
igbt6 3:d32bdfd04d82 758 uint16_t queryIBeaconMeasuredPower(void);
igbt6 3:d32bdfd04d82 759
igbt6 3:d32bdfd04d82 760
igbt6 3:d32bdfd04d82 761
igbt6 3:d32bdfd04d82 762
igbt6 3:d32bdfd04d82 763 /**Set Module Work Mode
igbt6 3:d32bdfd04d82 764 * @param: WorkMode_t
igbt6 3:d32bdfd04d82 765 * @return
igbt6 3:d32bdfd04d82 766 * 1 success,
igbt6 3:d32bdfd04d82 767 * 0 Error,
igbt6 3:d32bdfd04d82 768 ^ Default: 0xFFE1
igbt6 3:d32bdfd04d82 769 * This command is added since V519 version.
igbt6 3:d32bdfd04d82 770 */
igbt6 3:d32bdfd04d82 771 bool setModuleWorkMode(ModuleWorkMode_t workMode);
igbt6 3:d32bdfd04d82 772
igbt6 3:d32bdfd04d82 773
igbt6 3:d32bdfd04d82 774 /**Query Module Work Mode
igbt6 3:d32bdfd04d82 775 * @return
igbt6 3:d32bdfd04d82 776 * iBeacon minor version- 0x0001~0xFFFE
igbt6 3:d32bdfd04d82 777 * Error - 0x0000
igbt6 3:d32bdfd04d82 778 * This command is added since V519 version.
igbt6 3:d32bdfd04d82 779 */
igbt6 3:d32bdfd04d82 780 ModuleWorkMode_t queryModuleWorkMode(void);
igbt6 3:d32bdfd04d82 781
igbt6 3:d32bdfd04d82 782
igbt6 3:d32bdfd04d82 783
igbt6 3:d32bdfd04d82 784
igbt6 3:d32bdfd04d82 785 /**Set Module name
igbt6 3:d32bdfd04d82 786 * @param: name, length<12
igbt6 3:d32bdfd04d82 787 * @return
igbt6 3:d32bdfd04d82 788 * 1 success,
igbt6 3:d32bdfd04d82 789 * 0 Error,
igbt6 3:d32bdfd04d82 790 */
igbt6 3:d32bdfd04d82 791 bool setModuleName(char* name, uint8_t nameLength);
igbt6 3:d32bdfd04d82 792
igbt6 3:d32bdfd04d82 793
igbt6 3:d32bdfd04d82 794 /**Query Module name
igbt6 3:d32bdfd04d82 795 * @param: name -> ptr to response buffer
igbt6 3:d32bdfd04d82 796 * @return
igbt6 3:d32bdfd04d82 797 * 1 success,
igbt6 3:d32bdfd04d82 798 * 0 Error,
igbt6 3:d32bdfd04d82 799 */
igbt6 3:d32bdfd04d82 800 bool queryModuleName(char *name);
igbt6 3:d32bdfd04d82 801
igbt6 3:d32bdfd04d82 802
igbt6 3:d32bdfd04d82 803
igbt6 3:d32bdfd04d82 804
igbt6 3:d32bdfd04d82 805 /**Set Module parity bit
igbt6 3:d32bdfd04d82 806 * @param: ParityBit_t pBit
igbt6 3:d32bdfd04d82 807 * @return
igbt6 3:d32bdfd04d82 808 * 1 success,
igbt6 3:d32bdfd04d82 809 * 0 Error,
igbt6 3:d32bdfd04d82 810 */
igbt6 3:d32bdfd04d82 811 bool setParityBit(ParityBit_t pBit);
igbt6 3:d32bdfd04d82 812
igbt6 3:d32bdfd04d82 813
igbt6 3:d32bdfd04d82 814 /**Query Module parity bit
igbt6 3:d32bdfd04d82 815 * @return
igbt6 4:65cc8bd09b18 816 * _ODD, _EVEN- val
igbt6 4:65cc8bd09b18 817 _NONE - error
igbt6 3:d32bdfd04d82 818 */
igbt6 3:d32bdfd04d82 819 ParityBit_t queryParityBit(void);
igbt6 4:65cc8bd09b18 820
igbt6 4:65cc8bd09b18 821
igbt6 4:65cc8bd09b18 822 /**Set PIO1 output status (System LED)
igbt6 4:65cc8bd09b18 823 * @param:
igbt6 4:65cc8bd09b18 824 * uint8_t status[0~1]
igbt6 4:65cc8bd09b18 825 * 0 -Unconnected Output, 500ms High 500ms Low,Connected output High.
igbt6 4:65cc8bd09b18 826 * 1 -1: Unconnected output, Low, Connected output High.
igbt6 4:65cc8bd09b18 827 * @return
igbt6 4:65cc8bd09b18 828 * 1 success,
igbt6 4:65cc8bd09b18 829 * 0 Error,
igbt6 4:65cc8bd09b18 830 */
igbt6 4:65cc8bd09b18 831 bool setPio1OutputStatus(uint8_t status);
igbt6 4:65cc8bd09b18 832
igbt6 4:65cc8bd09b18 833
igbt6 4:65cc8bd09b18 834 /**Query PIO1 output status (System LED)
igbt6 4:65cc8bd09b18 835 * @return
igbt6 4:65cc8bd09b18 836 * uint8_t status[0~1]
igbt6 4:65cc8bd09b18 837 * 0 -Unconnected Output, 500ms High 500ms Low,Connected output High.
igbt6 4:65cc8bd09b18 838 * 1 -1: Unconnected output, Low, Connected output High.
igbt6 4:65cc8bd09b18 839 * 0xFF - error
igbt6 4:65cc8bd09b18 840 */
igbt6 4:65cc8bd09b18 841 uint8_t queryPio1OutputStatus(void);
igbt6 4:65cc8bd09b18 842
igbt6 4:65cc8bd09b18 843
igbt6 4:65cc8bd09b18 844
igbt6 4:65cc8bd09b18 845
igbt6 4:65cc8bd09b18 846
igbt6 4:65cc8bd09b18 847 /**Set PIO pins output /high or low
igbt6 4:65cc8bd09b18 848 * @param:
igbt6 4:65cc8bd09b18 849 * nrOfPio - is which PIO pin you want to Query/Set: Value: 2,3,4,5,6,7,8,9,A,B
igbt6 4:65cc8bd09b18 850 * val - Query or setup value. Value: 0 is low and 1 is high
igbt6 4:65cc8bd09b18 851 * @return
igbt6 4:65cc8bd09b18 852 * 1 success,
igbt6 4:65cc8bd09b18 853 * 0 Error,
igbt6 4:65cc8bd09b18 854 */
igbt6 4:65cc8bd09b18 855 bool setPioPinsOutput(uint8_t nrOfPio, uint8_t val );
igbt6 4:65cc8bd09b18 856
igbt6 4:65cc8bd09b18 857
igbt6 4:65cc8bd09b18 858 /**Query PIO pins output /high or low
igbt6 4:65cc8bd09b18 859 * @param:
igbt6 4:65cc8bd09b18 860 * nrOfPio - is which PIO pin you want to Query/Set: Value: 2,3,4,5,6,7,8,9,A,B
igbt6 4:65cc8bd09b18 861 * @return
igbt6 4:65cc8bd09b18 862 * uint8_t val - state of given PIO: 0- low and 1 -high
igbt6 4:65cc8bd09b18 863 * 0xFF - error
igbt6 4:65cc8bd09b18 864 */
igbt6 4:65cc8bd09b18 865 uint8_t queryPioPinsOutput(uint8_t nrOfPio);
igbt6 4:65cc8bd09b18 866
igbt6 4:65cc8bd09b18 867
igbt6 4:65cc8bd09b18 868
igbt6 4:65cc8bd09b18 869
igbt6 4:65cc8bd09b18 870 /**Set Pin Code
igbt6 4:65cc8bd09b18 871 * @param:
igbt6 4:65cc8bd09b18 872 * pinCode - value: 0~999999
igbt6 4:65cc8bd09b18 873 * Default: 000000
igbt6 4:65cc8bd09b18 874 * @return
igbt6 4:65cc8bd09b18 875 * 1 success,
igbt6 4:65cc8bd09b18 876 * 0 Error,
igbt6 4:65cc8bd09b18 877 */
igbt6 4:65cc8bd09b18 878 bool setPinCode (uint32_t pinCode );
igbt6 4:65cc8bd09b18 879
igbt6 4:65cc8bd09b18 880
igbt6 4:65cc8bd09b18 881 /**Query Pin Code
igbt6 4:65cc8bd09b18 882 * @return
igbt6 4:65cc8bd09b18 883 * pinCode - value: 0~999999
igbt6 4:65cc8bd09b18 884 * 0xFFFFFFFF - error
igbt6 4:65cc8bd09b18 885 */
igbt6 4:65cc8bd09b18 886 uint8_t queryPinCode (void);
igbt6 3:d32bdfd04d82 887
igbt6 3:d32bdfd04d82 888
igbt6 3:d32bdfd04d82 889
igbt6 3:d32bdfd04d82 890
igbt6 4:65cc8bd09b18 891 /**Set Module Power
igbt6 4:65cc8bd09b18 892 * @param:
igbt6 4:65cc8bd09b18 893 * modPower - value: 0~999999
igbt6 4:65cc8bd09b18 894 * Default: 2
igbt6 4:65cc8bd09b18 895 * @return
igbt6 4:65cc8bd09b18 896 * 1 success,
igbt6 4:65cc8bd09b18 897 * 0 Error,
igbt6 4:65cc8bd09b18 898 */
igbt6 4:65cc8bd09b18 899 bool setModulePower(ModulePower_t modPower);
igbt6 4:65cc8bd09b18 900
igbt6 4:65cc8bd09b18 901
igbt6 4:65cc8bd09b18 902 /**Query Module Power
igbt6 4:65cc8bd09b18 903 * @return
igbt6 4:65cc8bd09b18 904 * modPower
igbt6 4:65cc8bd09b18 905 * _NONE - error
igbt6 4:65cc8bd09b18 906 */
igbt6 4:65cc8bd09b18 907 ModulePower_t queryModulePower (void);
igbt6 3:d32bdfd04d82 908
igbt6 3:d32bdfd04d82 909
igbt6 3:d32bdfd04d82 910
igbt6 4:65cc8bd09b18 911 /**Set Module sleep type
igbt6 4:65cc8bd09b18 912 * @param:
igbt6 4:65cc8bd09b18 913 * modSleepType[0~1] - value: 0-Auto sleep, 1-don’t auto sleep
igbt6 4:65cc8bd09b18 914 * Default: 1
igbt6 4:65cc8bd09b18 915 * @return
igbt6 4:65cc8bd09b18 916 * 1 success,
igbt6 4:65cc8bd09b18 917 * 0 Error,
igbt6 4:65cc8bd09b18 918 */
igbt6 4:65cc8bd09b18 919 bool setModuleSleepType(uint8_t modSleepType );
igbt6 4:65cc8bd09b18 920
igbt6 4:65cc8bd09b18 921
igbt6 4:65cc8bd09b18 922 /**Query Module sleep type
igbt6 4:65cc8bd09b18 923 * @return
igbt6 4:65cc8bd09b18 924 * modSleepType
igbt6 4:65cc8bd09b18 925 * 0xFF - error
igbt6 4:65cc8bd09b18 926 */
igbt6 4:65cc8bd09b18 927 uint8_t queryModuleSleepType (void);
igbt6 4:65cc8bd09b18 928
igbt6 4:65cc8bd09b18 929
igbt6 3:d32bdfd04d82 930
igbt6 4:65cc8bd09b18 931 /**Restore all setup value to factory setup
igbt6 4:65cc8bd09b18 932 * @return
igbt6 4:65cc8bd09b18 933 * 1 success,
igbt6 4:65cc8bd09b18 934 * 0 Error,
igbt6 4:65cc8bd09b18 935 */
igbt6 4:65cc8bd09b18 936 bool restoreAll(void);
igbt6 4:65cc8bd09b18 937
igbt6 4:65cc8bd09b18 938
igbt6 4:65cc8bd09b18 939 /**Restart module
igbt6 4:65cc8bd09b18 940 * @return
igbt6 4:65cc8bd09b18 941 * 1 success,
igbt6 4:65cc8bd09b18 942 * 0 Error,
igbt6 4:65cc8bd09b18 943 */
igbt6 4:65cc8bd09b18 944 bool restartModule(void);
igbt6 4:65cc8bd09b18 945
igbt6 4:65cc8bd09b18 946
igbt6 4:65cc8bd09b18 947
igbt6 4:65cc8bd09b18 948 /**Set Master and Slaver Role
igbt6 4:65cc8bd09b18 949 * @param:
igbt6 4:65cc8bd09b18 950 * role[0~1] - value: 0-Peripheral , 1-Central
igbt6 4:65cc8bd09b18 951 * Default: 0
igbt6 4:65cc8bd09b18 952 * @return
igbt6 4:65cc8bd09b18 953 * 1 success,
igbt6 4:65cc8bd09b18 954 * 0 Error,
igbt6 4:65cc8bd09b18 955 */
igbt6 4:65cc8bd09b18 956 bool setMasterAndSlaveRole(uint8_t role);
igbt6 4:65cc8bd09b18 957
igbt6 4:65cc8bd09b18 958
igbt6 4:65cc8bd09b18 959 /**Query Master and Slaver Role
igbt6 4:65cc8bd09b18 960 * @return
igbt6 4:65cc8bd09b18 961 * role [0~1] - value: 0-Peripheral , 1-Central
igbt6 4:65cc8bd09b18 962 * 0xFF - error
igbt6 4:65cc8bd09b18 963 */
igbt6 4:65cc8bd09b18 964 uint8_t queryMasterAndSlaveRole(void);
igbt6 4:65cc8bd09b18 965
igbt6 4:65cc8bd09b18 966
igbt6 4:65cc8bd09b18 967
igbt6 4:65cc8bd09b18 968 /**Query Query RSSI Value
igbt6 4:65cc8bd09b18 969 * @return
igbt6 4:65cc8bd09b18 970 * rssi - value:
igbt6 4:65cc8bd09b18 971 * 0xFF - error
igbt6 4:65cc8bd09b18 972 * Require: AT+MODE value > 0
igbt6 4:65cc8bd09b18 973 * Note: This command only used by Remote device query when connected.
igbt6 4:65cc8bd09b18 974 */
igbt6 4:65cc8bd09b18 975 uint8_t queryRssiValue(void);
igbt6 4:65cc8bd09b18 976
igbt6 4:65cc8bd09b18 977
igbt6 4:65cc8bd09b18 978
igbt6 4:65cc8bd09b18 979 /**Query Last Connected Device Address
igbt6 4:65cc8bd09b18 980 * @return
igbt6 4:65cc8bd09b18 981 * addr - value:
igbt6 4:65cc8bd09b18 982 * null - error
igbt6 4:65cc8bd09b18 983 */
igbt6 4:65cc8bd09b18 984 char* queryLastConnectedDeviceAddress(void);
igbt6 4:65cc8bd09b18 985
igbt6 4:65cc8bd09b18 986
igbt6 4:65cc8bd09b18 987
igbt6 4:65cc8bd09b18 988 /**Set Module Sensor work interval
igbt6 4:65cc8bd09b18 989 * @param:
igbt6 4:65cc8bd09b18 990 * interval [0~99] - values: 0-Save when connected, 1-Don’t Save ; Unit: minute
igbt6 4:65cc8bd09b18 991 * Default: 0
igbt6 4:65cc8bd09b18 992 * @return
igbt6 4:65cc8bd09b18 993 * 1 success,
igbt6 4:65cc8bd09b18 994 * 0 Error,
igbt6 4:65cc8bd09b18 995 * Note: This command is only use for HMSensor
igbt6 4:65cc8bd09b18 996 */
igbt6 4:65cc8bd09b18 997 bool setModuleSensorWorkInterval(uint8_t interval);
igbt6 4:65cc8bd09b18 998
igbt6 4:65cc8bd09b18 999
igbt6 4:65cc8bd09b18 1000 /**Query module Sensor work interval
igbt6 4:65cc8bd09b18 1001 * @return
igbt6 4:65cc8bd09b18 1002 * interval [0~99] - values: 0-Save when connected, 1-Don’t Save ; Unit: minute
igbt6 4:65cc8bd09b18 1003 * 0xFF - error
igbt6 4:65cc8bd09b18 1004 * Note: This command is only use for HMSensor
igbt6 4:65cc8bd09b18 1005 */
igbt6 4:65cc8bd09b18 1006 uint8_t queryModuleSensorWorkInterval(void);
igbt6 4:65cc8bd09b18 1007
igbt6 4:65cc8bd09b18 1008
igbt6 4:65cc8bd09b18 1009
igbt6 4:65cc8bd09b18 1010 /**Work immediately
igbt6 4:65cc8bd09b18 1011 * @return
igbt6 4:65cc8bd09b18 1012 * 1 success,
igbt6 4:65cc8bd09b18 1013 * 0 Error,
igbt6 4:65cc8bd09b18 1014 * Note: This command is only used when AT+IMME1 is setup.
igbt6 4:65cc8bd09b18 1015 */
igbt6 4:65cc8bd09b18 1016 bool workImmediately(void);
igbt6 4:65cc8bd09b18 1017
igbt6 4:65cc8bd09b18 1018
igbt6 4:65cc8bd09b18 1019
igbt6 4:65cc8bd09b18 1020 /**Query Module into sleep mode
igbt6 4:65cc8bd09b18 1021 * @return
igbt6 4:65cc8bd09b18 1022 * 1 success,
igbt6 4:65cc8bd09b18 1023 * 0 Error,
igbt6 4:65cc8bd09b18 1024 * Note: Only support Peripheral role.
igbt6 4:65cc8bd09b18 1025 */
igbt6 4:65cc8bd09b18 1026 bool queryModuleIntoSleepMode(void);
igbt6 4:65cc8bd09b18 1027
igbt6 4:65cc8bd09b18 1028
igbt6 4:65cc8bd09b18 1029
igbt6 4:65cc8bd09b18 1030 /**Set Module save connected address parameter
igbt6 4:65cc8bd09b18 1031 * @param:
igbt6 4:65cc8bd09b18 1032 * saveParam [0~1] - values: 0-Save when connected, 1-Don’t Save
igbt6 4:65cc8bd09b18 1033 * Default: 0
igbt6 4:65cc8bd09b18 1034 * @return
igbt6 4:65cc8bd09b18 1035 * 1 success,
igbt6 4:65cc8bd09b18 1036 * 0 Error,
igbt6 4:65cc8bd09b18 1037 */
igbt6 4:65cc8bd09b18 1038 bool setModuleSaveConnectedAddressParam(uint8_t saveParam);
igbt6 4:65cc8bd09b18 1039
igbt6 4:65cc8bd09b18 1040
igbt6 4:65cc8bd09b18 1041 /**Query Module save connected address parameter
igbt6 4:65cc8bd09b18 1042 * @return
igbt6 4:65cc8bd09b18 1043 * saveParam [0~1] - values: 0-Save when connected, 1-Don’t Save
igbt6 4:65cc8bd09b18 1044 * 0xFF - error
igbt6 4:65cc8bd09b18 1045 */
igbt6 4:65cc8bd09b18 1046 uint8_t queryModuleSaveConnectedAddressParam(void);
igbt6 4:65cc8bd09b18 1047
igbt6 4:65cc8bd09b18 1048
igbt6 4:65cc8bd09b18 1049
igbt6 4:65cc8bd09b18 1050 /**Set sensor type on module PIO11(HM-11 is PIO3)
igbt6 4:65cc8bd09b18 1051 * @param:
igbt6 4:65cc8bd09b18 1052 * SensorType_t sensorType
igbt6 4:65cc8bd09b18 1053 * Default: _NONE_SENSOR
igbt6 4:65cc8bd09b18 1054 * @return
igbt6 4:65cc8bd09b18 1055 * 1 success,
igbt6 4:65cc8bd09b18 1056 * 0 Error,
igbt6 4:65cc8bd09b18 1057 * Note: This command is use for HMSensor
igbt6 4:65cc8bd09b18 1058 */
igbt6 4:65cc8bd09b18 1059 bool setSensorTypeOnModulePio(SensorType_t sensorType);
igbt6 4:65cc8bd09b18 1060
igbt6 4:65cc8bd09b18 1061
igbt6 4:65cc8bd09b18 1062 /**Query sensor type on module PIO11(HM-11 is PIO3)
igbt6 4:65cc8bd09b18 1063 * @return
igbt6 4:65cc8bd09b18 1064 * SensorType_t sensorType
igbt6 4:65cc8bd09b18 1065 * 0xFF - _INVALID_SENSOR_TYPE
igbt6 4:65cc8bd09b18 1066 * Note: This command is use for HMSensor
igbt6 4:65cc8bd09b18 1067 */
igbt6 4:65cc8bd09b18 1068 SensorType_t querySensorTypeOnModulePio(void);
igbt6 4:65cc8bd09b18 1069
igbt6 4:65cc8bd09b18 1070
igbt6 4:65cc8bd09b18 1071
igbt6 4:65cc8bd09b18 1072 /**Set discovery parameter
igbt6 4:65cc8bd09b18 1073 * @param:
igbt6 4:65cc8bd09b18 1074 * discoverParam [0~1] - values: 0-Don’t show name, 1-Show name
igbt6 4:65cc8bd09b18 1075 * Default: 0
igbt6 4:65cc8bd09b18 1076 * @return
igbt6 4:65cc8bd09b18 1077 * 1 success,
igbt6 4:65cc8bd09b18 1078 * 0 Error,
igbt6 4:65cc8bd09b18 1079 *
igbt6 4:65cc8bd09b18 1080 * Note:Please execute AT+FILT0 first.
igbt6 4:65cc8bd09b18 1081 * If AT+SHOW1 is setup, AT+DISC? Command will show you name information
igbt6 4:65cc8bd09b18 1082 * included into scan result package.
igbt6 4:65cc8bd09b18 1083 */
igbt6 4:65cc8bd09b18 1084 bool setDiscoveryParameter (SensorType_t discoverParam);
igbt6 4:65cc8bd09b18 1085
igbt6 4:65cc8bd09b18 1086
igbt6 4:65cc8bd09b18 1087 /**Query discovery parameter
igbt6 4:65cc8bd09b18 1088 * @return
igbt6 4:65cc8bd09b18 1089 * discoverParam [0~1] - values: 0-Don’t show name, 1-Show name
igbt6 4:65cc8bd09b18 1090 * 0xFF - error
igbt6 4:65cc8bd09b18 1091 */
igbt6 4:65cc8bd09b18 1092 uint8_t queryDiscoveryParameter (void);
igbt6 4:65cc8bd09b18 1093
igbt6 4:65cc8bd09b18 1094
igbt6 4:65cc8bd09b18 1095
igbt6 4:65cc8bd09b18 1096
igbt6 4:65cc8bd09b18 1097 /**Query Module Sensor Temperature and humidity(if has a sensor)
igbt6 4:65cc8bd09b18 1098 * @param:
igbt6 4:65cc8bd09b18 1099 * temperature[out]: 0~120
igbt6 4:65cc8bd09b18 1100 * humidity[out]: 0~120
igbt6 4:65cc8bd09b18 1101 * @return
igbt6 4:65cc8bd09b18 1102 * 1 success,
igbt6 4:65cc8bd09b18 1103 * 0 Error,
igbt6 4:65cc8bd09b18 1104 * Note: This command is use for HMSensor.
igbt6 4:65cc8bd09b18 1105 * This value is added into scan response data package.
igbt6 4:65cc8bd09b18 1106 * Data format is 0x02, 0x16, 0x00, 0xB0, [reserved], [temperature], [ humidity], [battery].
igbt6 4:65cc8bd09b18 1107 * Android: Included in OnLeScan function result array, you can see it direct.
igbt6 4:65cc8bd09b18 1108 * iOS: Included in LeScan function result NSDictionary struct, service id is 0xB000.
igbt6 4:65cc8bd09b18 1109 */
igbt6 4:65cc8bd09b18 1110 bool queryModuleSensorTempAndHumidity(uint8_t* temp, uint8_t* hum);
igbt6 4:65cc8bd09b18 1111
igbt6 4:65cc8bd09b18 1112
igbt6 4:65cc8bd09b18 1113
igbt6 4:65cc8bd09b18 1114 /**Query DS18B20 Sensor temperature
igbt6 4:65cc8bd09b18 1115 * @param:
igbt6 4:65cc8bd09b18 1116 * temperature[out]: 0~255
igbt6 4:65cc8bd09b18 1117 * @return
igbt6 4:65cc8bd09b18 1118 * 1 success,
igbt6 4:65cc8bd09b18 1119 * 0 Error,
igbt6 4:65cc8bd09b18 1120 * Note1: This command is use for HMSensor.
igbt6 4:65cc8bd09b18 1121 * Note2: Added in V523 version.
igbt6 4:65cc8bd09b18 1122 */
igbt6 4:65cc8bd09b18 1123 bool queryDS18B20SensorTemperature (uint8_t* temp);
igbt6 4:65cc8bd09b18 1124
igbt6 4:65cc8bd09b18 1125
igbt6 4:65cc8bd09b18 1126
igbt6 4:65cc8bd09b18 1127 /**Set Module connect remote device timeout value
igbt6 4:65cc8bd09b18 1128 * @param:
igbt6 4:65cc8bd09b18 1129 * timeout- range: 0~999999; values: 0-Save when connected, 1-Don’t Save; Unit: ms
igbt6 4:65cc8bd09b18 1130 * Default: 0
igbt6 4:65cc8bd09b18 1131 * @return
igbt6 4:65cc8bd09b18 1132 * 1 success,
igbt6 4:65cc8bd09b18 1133 * 0 Error,
igbt6 4:65cc8bd09b18 1134 * Note: This value is only used for Central Role, when module has Last Connected address.
igbt6 4:65cc8bd09b18 1135 */
igbt6 4:65cc8bd09b18 1136 bool setModuleConnectRemoteDeviceTimeoutValue(uint32_t timeout);
igbt6 4:65cc8bd09b18 1137
igbt6 4:65cc8bd09b18 1138
igbt6 4:65cc8bd09b18 1139
igbt6 4:65cc8bd09b18 1140 /**Query connect remote device timeout value
igbt6 4:65cc8bd09b18 1141 * @return
igbt6 4:65cc8bd09b18 1142 * timeout- range: 0~999999; values: 0-Save when connected, 1-Don’t Save; Unit: ms
igbt6 4:65cc8bd09b18 1143 * 0xFFFFFFFF - error
igbt6 4:65cc8bd09b18 1144 * Note: This value is only used for Central Role, when module has Last Connected address.
igbt6 4:65cc8bd09b18 1145 */
igbt6 4:65cc8bd09b18 1146 uint32_t queryModuleConnectRemoteDeviceTimeoutValue(void);
igbt6 4:65cc8bd09b18 1147
igbt6 4:65cc8bd09b18 1148
igbt6 4:65cc8bd09b18 1149
igbt6 4:65cc8bd09b18 1150 /**Set Module Bond Mode
igbt6 4:65cc8bd09b18 1151 * @param:
igbt6 4:65cc8bd09b18 1152 * BondMode_t bondMode;
igbt6 4:65cc8bd09b18 1153 * Default: _NOT_NEED_PIN_CODE
igbt6 4:65cc8bd09b18 1154 * @return
igbt6 4:65cc8bd09b18 1155 * 1 success,
igbt6 4:65cc8bd09b18 1156 * 0 Error,
igbt6 4:65cc8bd09b18 1157 *
igbt6 4:65cc8bd09b18 1158 * Important: If your module version is less than V515, please don’t use this command.
igbt6 4:65cc8bd09b18 1159 * Under android 4.3 AT+TYPE1 is same to AT+TYPE2.
igbt6 4:65cc8bd09b18 1160 * Note1: Value 3 is added in V524.
igbt6 4:65cc8bd09b18 1161 */
igbt6 4:65cc8bd09b18 1162 bool setModuleBondMode(BondMode_t bondMode);
igbt6 4:65cc8bd09b18 1163
igbt6 4:65cc8bd09b18 1164
igbt6 4:65cc8bd09b18 1165
igbt6 4:65cc8bd09b18 1166 /**Query Module Bond Mode
igbt6 4:65cc8bd09b18 1167 * @return
igbt6 4:65cc8bd09b18 1168 * BondMode_t bondMode;
igbt6 4:65cc8bd09b18 1169 * 0xFFFFFFFF - _INVALID_BOND_MODE
igbt6 4:65cc8bd09b18 1170 *
igbt6 4:65cc8bd09b18 1171 * Important: If your module version is less than V515, please don’t use this command.
igbt6 4:65cc8bd09b18 1172 * Under android 4.3 AT+TYPE1 is same to AT+TYPE2.
igbt6 4:65cc8bd09b18 1173 * Note1: Value _AUTH_AND_BOND, is added in V524.
igbt6 4:65cc8bd09b18 1174 */
igbt6 4:65cc8bd09b18 1175 BondMode_t queryModuleBondMode(void);
igbt6 4:65cc8bd09b18 1176
igbt6 4:65cc8bd09b18 1177
igbt6 4:65cc8bd09b18 1178
igbt6 4:65cc8bd09b18 1179
igbt6 4:65cc8bd09b18 1180 /**Set service UUID
igbt6 4:65cc8bd09b18 1181 * @param: service UUID - 0x0001~0xFFFE
igbt6 4:65cc8bd09b18 1182 * Default: 0xFFE0
igbt6 4:65cc8bd09b18 1183 * @return:
igbt6 4:65cc8bd09b18 1184 * 1 success,
igbt6 4:65cc8bd09b18 1185 * 0 Error,
igbt6 4:65cc8bd09b18 1186 */
igbt6 4:65cc8bd09b18 1187 bool setServiceUuid (uint16_t serviceUuid);
igbt6 4:65cc8bd09b18 1188
igbt6 4:65cc8bd09b18 1189
igbt6 4:65cc8bd09b18 1190 /**Query service UUID
igbt6 4:65cc8bd09b18 1191 * @return
igbt6 4:65cc8bd09b18 1192 * service UUID - 0x0001~0xFFFE
igbt6 4:65cc8bd09b18 1193 * Error - 0xFFFF
igbt6 4:65cc8bd09b18 1194 */
igbt6 4:65cc8bd09b18 1195 uint16_t queryServiceUuid(void);
igbt6 4:65cc8bd09b18 1196
igbt6 4:65cc8bd09b18 1197
igbt6 4:65cc8bd09b18 1198
igbt6 4:65cc8bd09b18 1199 /**Set UART sleep type
igbt6 4:65cc8bd09b18 1200 * @param:
igbt6 4:65cc8bd09b18 1201 * sleepType- range:[0~1]
igbt6 4:65cc8bd09b18 1202 * value: 0-When module into sleep mode, you can wake up module through UART.
igbt6 4:65cc8bd09b18 1203 * 1-When module into sleep mode, shutdown UART too
igbt6 4:65cc8bd09b18 1204 * Default: 0
igbt6 4:65cc8bd09b18 1205 * @return:
igbt6 4:65cc8bd09b18 1206 * 1 success,
igbt6 4:65cc8bd09b18 1207 * 0 Error,
igbt6 4:65cc8bd09b18 1208 */
igbt6 4:65cc8bd09b18 1209 bool setUartSleepType (uint8_t sleepType);
igbt6 4:65cc8bd09b18 1210
igbt6 4:65cc8bd09b18 1211
igbt6 4:65cc8bd09b18 1212 /**Query UART sleep type
igbt6 4:65cc8bd09b18 1213 * @return:
igbt6 4:65cc8bd09b18 1214 * sleepType- range:[0~1]
igbt6 4:65cc8bd09b18 1215 * value: 0-When module into sleep mode, you can wake up module through UART.
igbt6 4:65cc8bd09b18 1216 * 1-When module into sleep mode, shutdown UART too
igbt6 4:65cc8bd09b18 1217 * Error - 0xFF
igbt6 4:65cc8bd09b18 1218 */
igbt6 4:65cc8bd09b18 1219 uint8_t queryUartSleepType(void);
igbt6 4:65cc8bd09b18 1220
igbt6 4:65cc8bd09b18 1221
igbt6 4:65cc8bd09b18 1222
igbt6 4:65cc8bd09b18 1223 /**Query Software Version
igbt6 4:65cc8bd09b18 1224 * @return
igbt6 4:65cc8bd09b18 1225 * software version- Ok,
igbt6 4:65cc8bd09b18 1226 * null - Error,
igbt6 4:65cc8bd09b18 1227 * Note1: This command is use for HMSensor.
igbt6 4:65cc8bd09b18 1228 * Note2: Added in V523 version.
igbt6 4:65cc8bd09b18 1229 */
igbt6 4:65cc8bd09b18 1230 char* querySoftwareVersion(void);
igbt6 4:65cc8bd09b18 1231
igbt6 4:65cc8bd09b18 1232
igbt6 4:65cc8bd09b18 1233
igbt6 3:d32bdfd04d82 1234
igbt6 0:df4bd867616e 1235 private:
igbt6 0:df4bd867616e 1236
igbt6 0:df4bd867616e 1237 bool waitForData(int timeoutMs);
igbt6 0:df4bd867616e 1238 BufferedSerial mSerial;
igbt6 0:df4bd867616e 1239 };
igbt6 0:df4bd867616e 1240
igbt6 0:df4bd867616e 1241
igbt6 0:df4bd867616e 1242
igbt6 0:df4bd867616e 1243
igbt6 0:df4bd867616e 1244
igbt6 0:df4bd867616e 1245
igbt6 0:df4bd867616e 1246
igbt6 0:df4bd867616e 1247
igbt6 0:df4bd867616e 1248
igbt6 0:df4bd867616e 1249
igbt6 0:df4bd867616e 1250
igbt6 0:df4bd867616e 1251 #endif