Library for Bluetooth Low Energy Module ble 4.0 HM-11

Committer:
igbt6
Date:
Sat Dec 26 19:40:40 2015 +0000
Revision:
5:9a00e7bb0275
Parent:
4:65cc8bd09b18
Child:
6:16801af75937
first commit of the new lib

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