Library for Bluetooth Low Energy Module ble 4.0 HM-11

Committer:
igbt6
Date:
Thu Feb 25 02:44:30 2016 +0000
Revision:
7:aa4675590203
Parent:
6:16801af75937
more functions implemented

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