Library for Bluetooth Low Energy Module ble 4.0 HM-11
hm11.cpp@6:16801af75937, 2016-02-07 (annotated)
- Committer:
- igbt6
- Date:
- Sun Feb 07 18:27:04 2016 +0000
- Revision:
- 6:16801af75937
- Parent:
- 5:9a00e7bb0275
- Child:
- 7:aa4675590203
updated
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
igbt6 | 0:df4bd867616e | 1 | #include "hm11.h" |
igbt6 | 0:df4bd867616e | 2 | #include "string.h" |
igbt6 | 0:df4bd867616e | 3 | |
igbt6 | 5:9a00e7bb0275 | 4 | |
igbt6 | 5:9a00e7bb0275 | 5 | #define WAIT_FOR_DATA_TIMEOUT_MS 1000 |
igbt6 | 5:9a00e7bb0275 | 6 | #define DEFAULT_WAIT_FOR_DATA_TIMEOUT_MS 50 //required to get correct data |
igbt6 | 5:9a00e7bb0275 | 7 | |
igbt6 | 0:df4bd867616e | 8 | HM11::HM11(PinName uartTx , PinName uartRx):mSerial(uartTx,uartRx){ |
igbt6 | 0:df4bd867616e | 9 | |
igbt6 | 0:df4bd867616e | 10 | mSerial.baud(HM11_SERIAL_DEFAULT_BAUD ); |
igbt6 | 0:df4bd867616e | 11 | } |
igbt6 | 0:df4bd867616e | 12 | |
igbt6 | 0:df4bd867616e | 13 | |
igbt6 | 0:df4bd867616e | 14 | |
igbt6 | 0:df4bd867616e | 15 | bool HM11::sendSetCommand(const char* command, const int param){ |
igbt6 | 0:df4bd867616e | 16 | |
igbt6 | 0:df4bd867616e | 17 | if(!isCorrectCommand(command,HM11_SEND_COMMAND)) |
igbt6 | 0:df4bd867616e | 18 | return false; |
igbt6 | 0:df4bd867616e | 19 | char dataBuf[12]; |
igbt6 | 0:df4bd867616e | 20 | memset(dataBuf,0,sizeof(dataBuf)); |
igbt6 | 0:df4bd867616e | 21 | snprintf(dataBuf,strlen(command)+4,"%s%s%d",hm11TestCommands[HM11_START_CMD],command,param); //TODO strlen +4 ? not all params are 1 char long |
igbt6 | 0:df4bd867616e | 22 | sendDataToDevice(dataBuf); |
igbt6 | 0:df4bd867616e | 23 | return true; |
igbt6 | 0:df4bd867616e | 24 | } |
igbt6 | 0:df4bd867616e | 25 | |
igbt6 | 0:df4bd867616e | 26 | |
igbt6 | 0:df4bd867616e | 27 | bool HM11::sendGetCommand(const char* command){ |
igbt6 | 0:df4bd867616e | 28 | |
igbt6 | 0:df4bd867616e | 29 | if(!isCorrectCommand(command,HM11_SEND_COMMAND)) |
igbt6 | 0:df4bd867616e | 30 | return false; |
igbt6 | 0:df4bd867616e | 31 | char dataBuf[12]; |
igbt6 | 0:df4bd867616e | 32 | memset(dataBuf,0,sizeof(dataBuf)); |
igbt6 | 0:df4bd867616e | 33 | snprintf(dataBuf,strlen(hm11TestCommands[HM11_START_CMD])+strlen(command)+strlen(hm11TestCommands[HM11_QUERY_SIGN]+2),"%s%s%s\0",hm11TestCommands[HM11_START_CMD],command,hm11TestCommands[HM11_QUERY_SIGN]); |
igbt6 | 0:df4bd867616e | 34 | sendDataToDevice(dataBuf); |
igbt6 | 0:df4bd867616e | 35 | return true; |
igbt6 | 0:df4bd867616e | 36 | } |
igbt6 | 0:df4bd867616e | 37 | |
igbt6 | 0:df4bd867616e | 38 | //@param : cmdType - 0 test cmd |
igbt6 | 0:df4bd867616e | 39 | bool HM11::isCorrectCommand(const char* command, HM11CommandType cmdType){ |
igbt6 | 0:df4bd867616e | 40 | int i = 0 ; |
igbt6 | 0:df4bd867616e | 41 | const char**cmdPtr=NULL; |
igbt6 | 0:df4bd867616e | 42 | if(cmdType>=HM11_NUM_OF_COMMAND_TYPE){ |
igbt6 | 0:df4bd867616e | 43 | |
igbt6 | 0:df4bd867616e | 44 | return false; |
igbt6 | 0:df4bd867616e | 45 | } |
igbt6 | 0:df4bd867616e | 46 | if(command==NULL) |
igbt6 | 0:df4bd867616e | 47 | return false; |
igbt6 | 0:df4bd867616e | 48 | switch(cmdType){ |
igbt6 | 0:df4bd867616e | 49 | case HM11_TEST_COMMAND: |
igbt6 | 0:df4bd867616e | 50 | i = HM11_NUM_OF_TEST_COMMANDS ; |
igbt6 | 0:df4bd867616e | 51 | cmdPtr=hm11TestCommands; |
igbt6 | 0:df4bd867616e | 52 | break; |
igbt6 | 0:df4bd867616e | 53 | case HM11_SEND_COMMAND: |
igbt6 | 0:df4bd867616e | 54 | i = HM11_NUM_OF_COMMANDS; |
igbt6 | 0:df4bd867616e | 55 | cmdPtr=hm11SendCommands; |
igbt6 | 0:df4bd867616e | 56 | break; |
igbt6 | 0:df4bd867616e | 57 | } |
igbt6 | 0:df4bd867616e | 58 | while(i>0){ |
igbt6 | 0:df4bd867616e | 59 | if(strcmp(command,cmdPtr[i])==0){ |
igbt6 | 0:df4bd867616e | 60 | return true; |
igbt6 | 0:df4bd867616e | 61 | } |
igbt6 | 0:df4bd867616e | 62 | i--; |
igbt6 | 0:df4bd867616e | 63 | } |
igbt6 | 0:df4bd867616e | 64 | return false; |
igbt6 | 0:df4bd867616e | 65 | } |
igbt6 | 0:df4bd867616e | 66 | //comands |
igbt6 | 5:9a00e7bb0275 | 67 | |
igbt6 | 0:df4bd867616e | 68 | |
igbt6 | 0:df4bd867616e | 69 | bool HM11:: waitForData(int timeoutMs){ |
igbt6 | 5:9a00e7bb0275 | 70 | int endTime; |
igbt6 | 5:9a00e7bb0275 | 71 | int startTime; // sometimes not needed 50ms |
igbt6 | 0:df4bd867616e | 72 | Timer timer; |
igbt6 | 5:9a00e7bb0275 | 73 | timer.start() ; |
igbt6 | 5:9a00e7bb0275 | 74 | startTime=timer.read_ms(); |
igbt6 | 5:9a00e7bb0275 | 75 | endTime= startTime+timeoutMs; |
igbt6 | 5:9a00e7bb0275 | 76 | while((timer.read_ms())<endTime){ |
igbt6 | 5:9a00e7bb0275 | 77 | if(isRxDataAvailable()&&(timer.read_ms()-startTime)>DEFAULT_WAIT_FOR_DATA_TIMEOUT_MS) |
igbt6 | 0:df4bd867616e | 78 | return true; |
igbt6 | 0:df4bd867616e | 79 | } |
igbt6 | 0:df4bd867616e | 80 | return false; |
igbt6 | 0:df4bd867616e | 81 | } |
igbt6 | 0:df4bd867616e | 82 | |
igbt6 | 0:df4bd867616e | 83 | |
igbt6 | 5:9a00e7bb0275 | 84 | int HM11::sendDataToDevice(const char* data) |
igbt6 | 5:9a00e7bb0275 | 85 | { |
igbt6 | 0:df4bd867616e | 86 | |
igbt6 | 0:df4bd867616e | 87 | return mSerial.printf(data); |
igbt6 | 0:df4bd867616e | 88 | } |
igbt6 | 0:df4bd867616e | 89 | |
igbt6 | 6:16801af75937 | 90 | int HM11::sendDataToDevice(const uint8_t * byteData,uint8_t dataLength) |
igbt6 | 5:9a00e7bb0275 | 91 | { |
igbt6 | 3:d32bdfd04d82 | 92 | |
igbt6 | 3:d32bdfd04d82 | 93 | return mSerial.write(byteData,dataLength); |
igbt6 | 3:d32bdfd04d82 | 94 | } |
igbt6 | 5:9a00e7bb0275 | 95 | |
igbt6 | 5:9a00e7bb0275 | 96 | int HM11::isRxDataAvailable() |
igbt6 | 5:9a00e7bb0275 | 97 | { |
igbt6 | 5:9a00e7bb0275 | 98 | return mSerial.readable(); |
igbt6 | 5:9a00e7bb0275 | 99 | } |
igbt6 | 5:9a00e7bb0275 | 100 | |
igbt6 | 5:9a00e7bb0275 | 101 | bool HM11::copyAvailableDataToBuf(uint8_t *buf, uint8_t bufLength) |
igbt6 | 5:9a00e7bb0275 | 102 | { |
igbt6 | 5:9a00e7bb0275 | 103 | int lenCounter =0; |
igbt6 | 5:9a00e7bb0275 | 104 | if(buf==NULL||bufLength<1) |
igbt6 | 5:9a00e7bb0275 | 105 | return false; |
igbt6 | 5:9a00e7bb0275 | 106 | while(isRxDataAvailable()&&lenCounter<bufLength){ |
igbt6 | 5:9a00e7bb0275 | 107 | buf[lenCounter++]=getDataFromRx(); |
igbt6 | 5:9a00e7bb0275 | 108 | } |
igbt6 | 5:9a00e7bb0275 | 109 | if(lenCounter==bufLength) |
igbt6 | 5:9a00e7bb0275 | 110 | return true; |
igbt6 | 5:9a00e7bb0275 | 111 | else |
igbt6 | 5:9a00e7bb0275 | 112 | return false; |
igbt6 | 5:9a00e7bb0275 | 113 | } |
igbt6 | 5:9a00e7bb0275 | 114 | |
igbt6 | 5:9a00e7bb0275 | 115 | |
igbt6 | 5:9a00e7bb0275 | 116 | void HM11::hexToString(uint32_t hex, char*str,uint8_t len) |
igbt6 | 5:9a00e7bb0275 | 117 | { |
igbt6 | 5:9a00e7bb0275 | 118 | if(len>8||str==NULL) |
igbt6 | 5:9a00e7bb0275 | 119 | return; |
igbt6 | 5:9a00e7bb0275 | 120 | for(int i=0;i<len;i++){ |
igbt6 | 5:9a00e7bb0275 | 121 | int temp =(hex>>(i*4))&0x0F; |
igbt6 | 5:9a00e7bb0275 | 122 | if(temp>=0&&temp<=9) |
igbt6 | 5:9a00e7bb0275 | 123 | { |
igbt6 | 5:9a00e7bb0275 | 124 | str[i]=temp+'0'; |
igbt6 | 5:9a00e7bb0275 | 125 | } |
igbt6 | 5:9a00e7bb0275 | 126 | else |
igbt6 | 5:9a00e7bb0275 | 127 | { |
igbt6 | 5:9a00e7bb0275 | 128 | str[i]=temp+'A'-10; |
igbt6 | 5:9a00e7bb0275 | 129 | } |
igbt6 | 5:9a00e7bb0275 | 130 | } |
igbt6 | 5:9a00e7bb0275 | 131 | } |
igbt6 | 5:9a00e7bb0275 | 132 | |
igbt6 | 5:9a00e7bb0275 | 133 | |
igbt6 | 5:9a00e7bb0275 | 134 | //returns hex in reverse direction |
igbt6 | 5:9a00e7bb0275 | 135 | uint32_t HM11::strToHex(char*str,uint8_t len) |
igbt6 | 5:9a00e7bb0275 | 136 | { |
igbt6 | 5:9a00e7bb0275 | 137 | uint32_t ret=0; |
igbt6 | 5:9a00e7bb0275 | 138 | uint8_t temp; |
igbt6 | 5:9a00e7bb0275 | 139 | if(len<1||str==NULL) |
igbt6 | 5:9a00e7bb0275 | 140 | return -1; |
igbt6 | 5:9a00e7bb0275 | 141 | |
igbt6 | 5:9a00e7bb0275 | 142 | for(int i=0;i<len&&str[i]!='\0';i++) |
igbt6 | 5:9a00e7bb0275 | 143 | { |
igbt6 | 5:9a00e7bb0275 | 144 | if(str[i]>='0'&&str[i]<='9') |
igbt6 | 5:9a00e7bb0275 | 145 | { |
igbt6 | 5:9a00e7bb0275 | 146 | temp=str[i]-'0'; |
igbt6 | 5:9a00e7bb0275 | 147 | ret|=temp<<(i*4); |
igbt6 | 5:9a00e7bb0275 | 148 | } |
igbt6 | 5:9a00e7bb0275 | 149 | else if(str[i]>='A'&&str[i]<='F') |
igbt6 | 5:9a00e7bb0275 | 150 | { |
igbt6 | 5:9a00e7bb0275 | 151 | temp=str[i]-'A'+10; |
igbt6 | 5:9a00e7bb0275 | 152 | ret|=temp<<(i*4); |
igbt6 | 5:9a00e7bb0275 | 153 | } |
igbt6 | 5:9a00e7bb0275 | 154 | else if(str[i]>='a'&&str[i]<='f') |
igbt6 | 5:9a00e7bb0275 | 155 | { |
igbt6 | 5:9a00e7bb0275 | 156 | temp=str[i]-'a'+10; |
igbt6 | 5:9a00e7bb0275 | 157 | ret|=temp<<(i*4); |
igbt6 | 5:9a00e7bb0275 | 158 | } |
igbt6 | 5:9a00e7bb0275 | 159 | else |
igbt6 | 5:9a00e7bb0275 | 160 | return -1; //0xFFFFFFFF |
igbt6 | 5:9a00e7bb0275 | 161 | } |
igbt6 | 5:9a00e7bb0275 | 162 | return ret; |
igbt6 | 5:9a00e7bb0275 | 163 | } |
igbt6 | 5:9a00e7bb0275 | 164 | |
igbt6 | 5:9a00e7bb0275 | 165 | // public methods |
igbt6 | 5:9a00e7bb0275 | 166 | bool HM11::queryModuleAddress(char* addrBuf) |
igbt6 | 5:9a00e7bb0275 | 167 | { |
igbt6 | 5:9a00e7bb0275 | 168 | flushBuffers(); |
igbt6 | 5:9a00e7bb0275 | 169 | sendDataToDevice("AT+ADDR?"); |
igbt6 | 5:9a00e7bb0275 | 170 | char headerBuf[8];//for OK+ADDR: |
igbt6 | 5:9a00e7bb0275 | 171 | if(!waitForData(WAIT_FOR_DATA_TIMEOUT_MS)) |
igbt6 | 5:9a00e7bb0275 | 172 | return false; |
igbt6 | 5:9a00e7bb0275 | 173 | else{ |
igbt6 | 5:9a00e7bb0275 | 174 | copyAvailableDataToBuf((uint8_t*)headerBuf,sizeof(headerBuf)); |
igbt6 | 5:9a00e7bb0275 | 175 | if(strncmp(headerBuf,"OK+ADDR:",sizeof(headerBuf)) == 0){ |
igbt6 | 5:9a00e7bb0275 | 176 | if(copyAvailableDataToBuf((uint8_t*)addrBuf,12)){ |
igbt6 | 5:9a00e7bb0275 | 177 | addrBuf[12]='\0'; |
igbt6 | 5:9a00e7bb0275 | 178 | return true; |
igbt6 | 5:9a00e7bb0275 | 179 | } |
igbt6 | 5:9a00e7bb0275 | 180 | } |
igbt6 | 5:9a00e7bb0275 | 181 | return false; |
igbt6 | 5:9a00e7bb0275 | 182 | } |
igbt6 | 5:9a00e7bb0275 | 183 | } |
igbt6 | 5:9a00e7bb0275 | 184 | |
igbt6 | 5:9a00e7bb0275 | 185 | |
igbt6 | 5:9a00e7bb0275 | 186 | bool HM11::setAdvertisingInterval(AdvertisingInterval_t advInt) |
igbt6 | 5:9a00e7bb0275 | 187 | { |
igbt6 | 5:9a00e7bb0275 | 188 | flushBuffers(); |
igbt6 | 5:9a00e7bb0275 | 189 | char buf[9]={"AT+ADVI"}; |
igbt6 | 5:9a00e7bb0275 | 190 | hexToString((uint32_t)advInt, &buf[7],1); |
igbt6 | 5:9a00e7bb0275 | 191 | sendDataToDevice(buf); |
igbt6 | 5:9a00e7bb0275 | 192 | if(!waitForData(WAIT_FOR_DATA_TIMEOUT_MS)) |
igbt6 | 5:9a00e7bb0275 | 193 | return false; |
igbt6 | 5:9a00e7bb0275 | 194 | else |
igbt6 | 5:9a00e7bb0275 | 195 | { |
igbt6 | 5:9a00e7bb0275 | 196 | copyAvailableDataToBuf((uint8_t*)buf,sizeof(buf)); |
igbt6 | 5:9a00e7bb0275 | 197 | if(strncmp(buf,"OK+Set:",7) == 0){ |
igbt6 | 5:9a00e7bb0275 | 198 | if(strToHex(&buf[7],1)<_INVALID_ADV_INTERVAL){ |
igbt6 | 5:9a00e7bb0275 | 199 | return true; |
igbt6 | 5:9a00e7bb0275 | 200 | } |
igbt6 | 5:9a00e7bb0275 | 201 | } |
igbt6 | 5:9a00e7bb0275 | 202 | return false; |
igbt6 | 5:9a00e7bb0275 | 203 | } |
igbt6 | 5:9a00e7bb0275 | 204 | } |
igbt6 | 5:9a00e7bb0275 | 205 | |
igbt6 | 5:9a00e7bb0275 | 206 | |
igbt6 | 5:9a00e7bb0275 | 207 | AdvertisingInterval_t HM11::queryAdvertisingInterval(void) |
igbt6 | 5:9a00e7bb0275 | 208 | { |
igbt6 | 5:9a00e7bb0275 | 209 | flushBuffers(); |
igbt6 | 5:9a00e7bb0275 | 210 | AdvertisingInterval_t retVal=_INVALID_ADV_INTERVAL; |
igbt6 | 5:9a00e7bb0275 | 211 | char respBuf[8]; |
igbt6 | 5:9a00e7bb0275 | 212 | sendDataToDevice("AT+ADVI?"); |
igbt6 | 5:9a00e7bb0275 | 213 | if(!waitForData(WAIT_FOR_DATA_TIMEOUT_MS)) |
igbt6 | 5:9a00e7bb0275 | 214 | { |
igbt6 | 5:9a00e7bb0275 | 215 | //nothing |
igbt6 | 5:9a00e7bb0275 | 216 | } |
igbt6 | 5:9a00e7bb0275 | 217 | else |
igbt6 | 5:9a00e7bb0275 | 218 | { |
igbt6 | 5:9a00e7bb0275 | 219 | copyAvailableDataToBuf((uint8_t*)respBuf,sizeof(respBuf)); |
igbt6 | 5:9a00e7bb0275 | 220 | if(strncmp(respBuf,"OK+Get:",sizeof(respBuf)-1) == 0){ |
igbt6 | 5:9a00e7bb0275 | 221 | retVal=(AdvertisingInterval_t)strToHex(&respBuf[sizeof(respBuf)-1],1); |
igbt6 | 5:9a00e7bb0275 | 222 | } |
igbt6 | 5:9a00e7bb0275 | 223 | |
igbt6 | 5:9a00e7bb0275 | 224 | } |
igbt6 | 5:9a00e7bb0275 | 225 | return retVal; |
igbt6 | 5:9a00e7bb0275 | 226 | } |
igbt6 | 5:9a00e7bb0275 | 227 | |
igbt6 | 5:9a00e7bb0275 | 228 | |
igbt6 | 5:9a00e7bb0275 | 229 | bool HM11::setAdvertisingType(AdvertisingType_t advInt) |
igbt6 | 5:9a00e7bb0275 | 230 | { |
igbt6 | 5:9a00e7bb0275 | 231 | flushBuffers(); |
igbt6 | 5:9a00e7bb0275 | 232 | char buf[9]={"AT+ADTY"}; |
igbt6 | 5:9a00e7bb0275 | 233 | hexToString((uint32_t)advInt, &buf[7],1); |
igbt6 | 5:9a00e7bb0275 | 234 | sendDataToDevice(buf); |
igbt6 | 5:9a00e7bb0275 | 235 | if(!waitForData(WAIT_FOR_DATA_TIMEOUT_MS)) |
igbt6 | 5:9a00e7bb0275 | 236 | return false; |
igbt6 | 5:9a00e7bb0275 | 237 | else |
igbt6 | 5:9a00e7bb0275 | 238 | { |
igbt6 | 5:9a00e7bb0275 | 239 | copyAvailableDataToBuf((uint8_t*)buf,sizeof(buf)); |
igbt6 | 5:9a00e7bb0275 | 240 | if(strncmp(buf,"OK+Set:",7) == 0){ |
igbt6 | 5:9a00e7bb0275 | 241 | if(strToHex(&buf[7],1)<_INVALID_ADV_TYPE){ |
igbt6 | 5:9a00e7bb0275 | 242 | return true; |
igbt6 | 5:9a00e7bb0275 | 243 | } |
igbt6 | 5:9a00e7bb0275 | 244 | } |
igbt6 | 5:9a00e7bb0275 | 245 | return false; |
igbt6 | 5:9a00e7bb0275 | 246 | } |
igbt6 | 5:9a00e7bb0275 | 247 | } |
igbt6 | 5:9a00e7bb0275 | 248 | |
igbt6 | 5:9a00e7bb0275 | 249 | AdvertisingType_t HM11::queryAdvertisingType(void) |
igbt6 | 5:9a00e7bb0275 | 250 | { |
igbt6 | 5:9a00e7bb0275 | 251 | flushBuffers(); |
igbt6 | 5:9a00e7bb0275 | 252 | AdvertisingType_t retVal=_INVALID_ADV_TYPE; |
igbt6 | 5:9a00e7bb0275 | 253 | char respBuf[8]; |
igbt6 | 5:9a00e7bb0275 | 254 | sendDataToDevice("AT+ADTY?"); |
igbt6 | 5:9a00e7bb0275 | 255 | if(!waitForData(WAIT_FOR_DATA_TIMEOUT_MS)) |
igbt6 | 5:9a00e7bb0275 | 256 | { |
igbt6 | 5:9a00e7bb0275 | 257 | //nothing |
igbt6 | 5:9a00e7bb0275 | 258 | } |
igbt6 | 5:9a00e7bb0275 | 259 | else |
igbt6 | 5:9a00e7bb0275 | 260 | { |
igbt6 | 5:9a00e7bb0275 | 261 | copyAvailableDataToBuf((uint8_t*)respBuf,sizeof(respBuf)); |
igbt6 | 5:9a00e7bb0275 | 262 | if(strncmp(respBuf,"OK+Get:",sizeof(respBuf)-1) == 0){ |
igbt6 | 5:9a00e7bb0275 | 263 | retVal=(AdvertisingType_t)strToHex(&respBuf[sizeof(respBuf)-1],1); |
igbt6 | 5:9a00e7bb0275 | 264 | } |
igbt6 | 5:9a00e7bb0275 | 265 | } |
igbt6 | 5:9a00e7bb0275 | 266 | return retVal; |
igbt6 | 5:9a00e7bb0275 | 267 | } |
igbt6 | 5:9a00e7bb0275 | 268 | |
igbt6 | 5:9a00e7bb0275 | 269 | |
igbt6 | 5:9a00e7bb0275 | 270 | |
igbt6 | 5:9a00e7bb0275 | 271 | bool HM11::setAncsSwitch(uint8_t enable) |
igbt6 | 5:9a00e7bb0275 | 272 | { |
igbt6 | 5:9a00e7bb0275 | 273 | flushBuffers(); |
igbt6 | 5:9a00e7bb0275 | 274 | char buf[9]={"AT+ANCS"}; |
igbt6 | 5:9a00e7bb0275 | 275 | hexToString(enable, &buf[7],1); |
igbt6 | 5:9a00e7bb0275 | 276 | sendDataToDevice(buf); |
igbt6 | 5:9a00e7bb0275 | 277 | if(!waitForData(WAIT_FOR_DATA_TIMEOUT_MS)) |
igbt6 | 5:9a00e7bb0275 | 278 | return false; |
igbt6 | 5:9a00e7bb0275 | 279 | else |
igbt6 | 5:9a00e7bb0275 | 280 | { |
igbt6 | 5:9a00e7bb0275 | 281 | copyAvailableDataToBuf((uint8_t*)buf,sizeof(buf)); |
igbt6 | 5:9a00e7bb0275 | 282 | if(strncmp(buf,"OK+Set:",7) == 0){ |
igbt6 | 5:9a00e7bb0275 | 283 | if(strToHex(&buf[7],1)<0x2){ |
igbt6 | 5:9a00e7bb0275 | 284 | return true; |
igbt6 | 5:9a00e7bb0275 | 285 | } |
igbt6 | 5:9a00e7bb0275 | 286 | } |
igbt6 | 5:9a00e7bb0275 | 287 | return false; |
igbt6 | 5:9a00e7bb0275 | 288 | } |
igbt6 | 5:9a00e7bb0275 | 289 | } |
igbt6 | 5:9a00e7bb0275 | 290 | |
igbt6 | 5:9a00e7bb0275 | 291 | |
igbt6 | 5:9a00e7bb0275 | 292 | |
igbt6 | 5:9a00e7bb0275 | 293 | uint8_t HM11::queryAncsSwitch(void) |
igbt6 | 5:9a00e7bb0275 | 294 | { |
igbt6 | 5:9a00e7bb0275 | 295 | flushBuffers(); |
igbt6 | 5:9a00e7bb0275 | 296 | uint8_t retVal=0xFF; |
igbt6 | 5:9a00e7bb0275 | 297 | char respBuf[8]; |
igbt6 | 5:9a00e7bb0275 | 298 | sendDataToDevice("AT+ANCS?"); |
igbt6 | 5:9a00e7bb0275 | 299 | if(!waitForData(WAIT_FOR_DATA_TIMEOUT_MS)) |
igbt6 | 5:9a00e7bb0275 | 300 | { |
igbt6 | 5:9a00e7bb0275 | 301 | retVal=0xFF; |
igbt6 | 5:9a00e7bb0275 | 302 | } |
igbt6 | 5:9a00e7bb0275 | 303 | else |
igbt6 | 5:9a00e7bb0275 | 304 | { |
igbt6 | 5:9a00e7bb0275 | 305 | copyAvailableDataToBuf((uint8_t*)respBuf,sizeof(respBuf)); |
igbt6 | 5:9a00e7bb0275 | 306 | if(strncmp(respBuf,"OK+Get:",sizeof(respBuf)-1) == 0){ |
igbt6 | 5:9a00e7bb0275 | 307 | retVal=strToHex(&respBuf[sizeof(respBuf)-1],1); |
igbt6 | 5:9a00e7bb0275 | 308 | } |
igbt6 | 5:9a00e7bb0275 | 309 | } |
igbt6 | 5:9a00e7bb0275 | 310 | return retVal; |
igbt6 | 5:9a00e7bb0275 | 311 | } |
igbt6 | 5:9a00e7bb0275 | 312 | |
igbt6 | 5:9a00e7bb0275 | 313 | |
igbt6 | 5:9a00e7bb0275 | 314 | bool HM11::setWhitelistSwitch(uint8_t enable) |
igbt6 | 5:9a00e7bb0275 | 315 | { |
igbt6 | 5:9a00e7bb0275 | 316 | flushBuffers(); |
igbt6 | 5:9a00e7bb0275 | 317 | char buf[9]={"AT+ALLO"}; |
igbt6 | 5:9a00e7bb0275 | 318 | hexToString(enable, &buf[7],1); |
igbt6 | 5:9a00e7bb0275 | 319 | sendDataToDevice(buf); |
igbt6 | 5:9a00e7bb0275 | 320 | if(!waitForData(WAIT_FOR_DATA_TIMEOUT_MS)) |
igbt6 | 5:9a00e7bb0275 | 321 | return false; |
igbt6 | 5:9a00e7bb0275 | 322 | else |
igbt6 | 5:9a00e7bb0275 | 323 | { |
igbt6 | 5:9a00e7bb0275 | 324 | copyAvailableDataToBuf((uint8_t*)buf,sizeof(buf)); |
igbt6 | 5:9a00e7bb0275 | 325 | if(strncmp(buf,"OK+Set:",7) == 0){ |
igbt6 | 5:9a00e7bb0275 | 326 | if(strToHex(&buf[7],1)<0x2){ |
igbt6 | 5:9a00e7bb0275 | 327 | return true; |
igbt6 | 5:9a00e7bb0275 | 328 | } |
igbt6 | 5:9a00e7bb0275 | 329 | } |
igbt6 | 5:9a00e7bb0275 | 330 | return false; |
igbt6 | 5:9a00e7bb0275 | 331 | } |
igbt6 | 5:9a00e7bb0275 | 332 | } |
igbt6 | 5:9a00e7bb0275 | 333 | |
igbt6 | 5:9a00e7bb0275 | 334 | |
igbt6 | 5:9a00e7bb0275 | 335 | uint8_t HM11::queryWhitelistSwitch(void) |
igbt6 | 5:9a00e7bb0275 | 336 | { |
igbt6 | 5:9a00e7bb0275 | 337 | flushBuffers(); |
igbt6 | 5:9a00e7bb0275 | 338 | uint8_t retVal=0xFF; |
igbt6 | 5:9a00e7bb0275 | 339 | char respBuf[8]; |
igbt6 | 5:9a00e7bb0275 | 340 | sendDataToDevice("AT+ALLO?"); |
igbt6 | 5:9a00e7bb0275 | 341 | if(!waitForData(WAIT_FOR_DATA_TIMEOUT_MS)) |
igbt6 | 5:9a00e7bb0275 | 342 | { |
igbt6 | 5:9a00e7bb0275 | 343 | retVal=0xFF; |
igbt6 | 5:9a00e7bb0275 | 344 | } |
igbt6 | 5:9a00e7bb0275 | 345 | else |
igbt6 | 5:9a00e7bb0275 | 346 | { |
igbt6 | 5:9a00e7bb0275 | 347 | copyAvailableDataToBuf((uint8_t*)respBuf,sizeof(respBuf)); |
igbt6 | 5:9a00e7bb0275 | 348 | if(strncmp(respBuf,"OK+Get:",sizeof(respBuf)-1) == 0){ |
igbt6 | 5:9a00e7bb0275 | 349 | retVal=strToHex(&respBuf[sizeof(respBuf)-1],1); |
igbt6 | 5:9a00e7bb0275 | 350 | } |
igbt6 | 5:9a00e7bb0275 | 351 | } |
igbt6 | 5:9a00e7bb0275 | 352 | return retVal; |
igbt6 | 5:9a00e7bb0275 | 353 | } |
igbt6 | 5:9a00e7bb0275 | 354 | |
igbt6 | 5:9a00e7bb0275 | 355 | //TODO |
igbt6 | 5:9a00e7bb0275 | 356 | // bool HM11::setWhitelistMacAddress (uint8_t nrOfMacAddrLinkedToModule, const char* macAddress); |
igbt6 | 5:9a00e7bb0275 | 357 | |
igbt6 | 5:9a00e7bb0275 | 358 | // char* HM11::queryWhitelistMacAddress(uint8_t nrOfMacAddrLinkedToModule); |
igbt6 | 5:9a00e7bb0275 | 359 | |
igbt6 | 5:9a00e7bb0275 | 360 | |
igbt6 | 5:9a00e7bb0275 | 361 | bool HM11::setBatteryMonitorSwitch(uint8_t battSwitchEnable) |
igbt6 | 5:9a00e7bb0275 | 362 | { |
igbt6 | 5:9a00e7bb0275 | 363 | flushBuffers(); |
igbt6 | 5:9a00e7bb0275 | 364 | char buf[9]={"AT+BATC"}; |
igbt6 | 5:9a00e7bb0275 | 365 | hexToString(battSwitchEnable, &buf[7],1); |
igbt6 | 5:9a00e7bb0275 | 366 | sendDataToDevice(buf); |
igbt6 | 5:9a00e7bb0275 | 367 | if(!waitForData(WAIT_FOR_DATA_TIMEOUT_MS)) |
igbt6 | 5:9a00e7bb0275 | 368 | return false; |
igbt6 | 5:9a00e7bb0275 | 369 | else |
igbt6 | 5:9a00e7bb0275 | 370 | { |
igbt6 | 5:9a00e7bb0275 | 371 | copyAvailableDataToBuf((uint8_t*)buf,sizeof(buf)); |
igbt6 | 5:9a00e7bb0275 | 372 | if(strncmp(buf,"OK+Set:",7) == 0){ |
igbt6 | 5:9a00e7bb0275 | 373 | if(strToHex(&buf[7],1)<0x2){ |
igbt6 | 5:9a00e7bb0275 | 374 | return true; |
igbt6 | 5:9a00e7bb0275 | 375 | } |
igbt6 | 5:9a00e7bb0275 | 376 | } |
igbt6 | 5:9a00e7bb0275 | 377 | return false; |
igbt6 | 5:9a00e7bb0275 | 378 | } |
igbt6 | 5:9a00e7bb0275 | 379 | } |
igbt6 | 5:9a00e7bb0275 | 380 | |
igbt6 | 5:9a00e7bb0275 | 381 | |
igbt6 | 5:9a00e7bb0275 | 382 | uint8_t HM11::queryBatteryMonitorSwitch(void) |
igbt6 | 5:9a00e7bb0275 | 383 | { |
igbt6 | 5:9a00e7bb0275 | 384 | flushBuffers(); |
igbt6 | 5:9a00e7bb0275 | 385 | uint8_t retVal=0xFF; |
igbt6 | 5:9a00e7bb0275 | 386 | char respBuf[8]; |
igbt6 | 5:9a00e7bb0275 | 387 | sendDataToDevice("AT+BATC?"); |
igbt6 | 5:9a00e7bb0275 | 388 | if(!waitForData(WAIT_FOR_DATA_TIMEOUT_MS)) |
igbt6 | 5:9a00e7bb0275 | 389 | { |
igbt6 | 5:9a00e7bb0275 | 390 | retVal=0xFF; |
igbt6 | 5:9a00e7bb0275 | 391 | } |
igbt6 | 5:9a00e7bb0275 | 392 | else |
igbt6 | 5:9a00e7bb0275 | 393 | { |
igbt6 | 5:9a00e7bb0275 | 394 | copyAvailableDataToBuf((uint8_t*)respBuf,sizeof(respBuf)); |
igbt6 | 5:9a00e7bb0275 | 395 | if(strncmp(respBuf,"OK+Get:",sizeof(respBuf)-1) == 0){ |
igbt6 | 5:9a00e7bb0275 | 396 | retVal=strToHex(&respBuf[sizeof(respBuf)-1],1); |
igbt6 | 5:9a00e7bb0275 | 397 | } |
igbt6 | 5:9a00e7bb0275 | 398 | } |
igbt6 | 5:9a00e7bb0275 | 399 | return retVal; |
igbt6 | 5:9a00e7bb0275 | 400 | } |
igbt6 | 5:9a00e7bb0275 | 401 | |
igbt6 | 5:9a00e7bb0275 | 402 | |
igbt6 | 5:9a00e7bb0275 | 403 | #if 0 |
igbt6 | 5:9a00e7bb0275 | 404 | uint8_t HM11::queryBatteryInformation(void); |
igbt6 | 5:9a00e7bb0275 | 405 | |
igbt6 | 5:9a00e7bb0275 | 406 | |
igbt6 | 5:9a00e7bb0275 | 407 | |
igbt6 | 5:9a00e7bb0275 | 408 | bool HM11::setIBeaconIntoServiceMode(void); |
igbt6 | 3:d32bdfd04d82 | 409 | |
igbt6 | 3:d32bdfd04d82 | 410 | |
igbt6 | 0:df4bd867616e | 411 | |
igbt6 | 5:9a00e7bb0275 | 412 | bool HM11::setBitFormat(uint8_t bit7Format); |
igbt6 | 5:9a00e7bb0275 | 413 | |
igbt6 | 5:9a00e7bb0275 | 414 | |
igbt6 | 5:9a00e7bb0275 | 415 | uint8_t HM11::queryBitFormat(void); |
igbt6 | 5:9a00e7bb0275 | 416 | |
igbt6 | 5:9a00e7bb0275 | 417 | |
igbt6 | 5:9a00e7bb0275 | 418 | |
igbt6 | 5:9a00e7bb0275 | 419 | bool HM11::setBaudRate(BaudRate_t baud); |
igbt6 | 5:9a00e7bb0275 | 420 | |
igbt6 | 5:9a00e7bb0275 | 421 | |
igbt6 | 5:9a00e7bb0275 | 422 | |
igbt6 | 5:9a00e7bb0275 | 423 | BaudRate_t HM11::queryBaudRate(void); |
igbt6 | 5:9a00e7bb0275 | 424 | |
igbt6 | 5:9a00e7bb0275 | 425 | |
igbt6 | 5:9a00e7bb0275 | 426 | bool HM11::setCharacteristic(uint16_t chValue); |
igbt6 | 5:9a00e7bb0275 | 427 | |
igbt6 | 5:9a00e7bb0275 | 428 | |
igbt6 | 5:9a00e7bb0275 | 429 | |
igbt6 | 5:9a00e7bb0275 | 430 | uint16_t HM11::queryCharacteristic(void); |
igbt6 | 5:9a00e7bb0275 | 431 | |
igbt6 | 5:9a00e7bb0275 | 432 | |
igbt6 | 5:9a00e7bb0275 | 433 | ConnectionStatus_t HM11::connectToLastDevice(void); |
igbt6 | 5:9a00e7bb0275 | 434 | |
igbt6 | 5:9a00e7bb0275 | 435 | |
igbt6 | 5:9a00e7bb0275 | 436 | |
igbt6 | 5:9a00e7bb0275 | 437 | ConnectionStatus_t HM11::connectToAnAddress(const char* address); |
igbt6 | 5:9a00e7bb0275 | 438 | |
igbt6 | 5:9a00e7bb0275 | 439 | |
igbt6 | 5:9a00e7bb0275 | 440 | uint8_t HM11::queryInputOutputState(void); |
igbt6 | 5:9a00e7bb0275 | 441 | |
igbt6 | 5:9a00e7bb0275 | 442 | |
igbt6 | 5:9a00e7bb0275 | 443 | bool HM11::setPioCollectionRate (uint8_t colRateSec); |
igbt6 | 5:9a00e7bb0275 | 444 | |
igbt6 | 5:9a00e7bb0275 | 445 | |
igbt6 | 5:9a00e7bb0275 | 446 | uint8_t HM11::queryPioCollectionRate(void); |
igbt6 | 5:9a00e7bb0275 | 447 | |
igbt6 | 5:9a00e7bb0275 | 448 | |
igbt6 | 5:9a00e7bb0275 | 449 | bool HM11::startDeviceDiscoveryScan(ScanResult_t* scanRes); |
igbt6 | 5:9a00e7bb0275 | 450 | |
igbt6 | 5:9a00e7bb0275 | 451 | |
igbt6 | 5:9a00e7bb0275 | 452 | |
igbt6 | 5:9a00e7bb0275 | 453 | bool HM11::connectToDiscoveryDevice(ScanResult_t* scanRes); |
igbt6 | 5:9a00e7bb0275 | 454 | |
igbt6 | 5:9a00e7bb0275 | 455 | |
igbt6 | 5:9a00e7bb0275 | 456 | |
igbt6 | 5:9a00e7bb0275 | 457 | |
igbt6 | 5:9a00e7bb0275 | 458 | bool HM11::setIBeaconDeployMode(DeployMode_t depMode); |
igbt6 | 5:9a00e7bb0275 | 459 | |
igbt6 | 5:9a00e7bb0275 | 460 | |
igbt6 | 5:9a00e7bb0275 | 461 | |
igbt6 | 5:9a00e7bb0275 | 462 | bool HM11::setFilterOfHmModules(FilterOfHmModules_t filter); |
igbt6 | 5:9a00e7bb0275 | 463 | |
igbt6 | 5:9a00e7bb0275 | 464 | |
igbt6 | 5:9a00e7bb0275 | 465 | |
igbt6 | 5:9a00e7bb0275 | 466 | FilterOfHmModules_t HM11::queryFilterOfHmModules(void); |
igbt6 | 5:9a00e7bb0275 | 467 | |
igbt6 | 5:9a00e7bb0275 | 468 | |
igbt6 | 5:9a00e7bb0275 | 469 | |
igbt6 | 5:9a00e7bb0275 | 470 | bool HM11::removeBondInformation(void); |
igbt6 | 5:9a00e7bb0275 | 471 | |
igbt6 | 5:9a00e7bb0275 | 472 | |
igbt6 | 5:9a00e7bb0275 | 473 | bool HM11::getSystemHelpInformation(char* helpInformationBuf); |
igbt6 | 5:9a00e7bb0275 | 474 | |
igbt6 | 5:9a00e7bb0275 | 475 | |
igbt6 | 5:9a00e7bb0275 | 476 | bool HM11::setModuleWorkType(ModuleWorkType_t modWorkType); |
igbt6 | 5:9a00e7bb0275 | 477 | |
igbt6 | 5:9a00e7bb0275 | 478 | |
igbt6 | 5:9a00e7bb0275 | 479 | |
igbt6 | 5:9a00e7bb0275 | 480 | ModuleWorkType_t HM11::queryModuleWorkType(void); |
igbt6 | 5:9a00e7bb0275 | 481 | |
igbt6 | 5:9a00e7bb0275 | 482 | |
igbt6 | 5:9a00e7bb0275 | 483 | |
igbt6 | 5:9a00e7bb0275 | 484 | |
igbt6 | 5:9a00e7bb0275 | 485 | |
igbt6 | 5:9a00e7bb0275 | 486 | bool HM11::setModuleIBeaconSwitch (uint8_t turnOnOff); |
igbt6 | 5:9a00e7bb0275 | 487 | |
igbt6 | 5:9a00e7bb0275 | 488 | |
igbt6 | 5:9a00e7bb0275 | 489 | uint8_t HM11::queryModuleIBeaconSwitch (void); |
igbt6 | 5:9a00e7bb0275 | 490 | |
igbt6 | 5:9a00e7bb0275 | 491 | |
igbt6 | 5:9a00e7bb0275 | 492 | |
igbt6 | 5:9a00e7bb0275 | 493 | bool HM11::setIBeaconUuid (uint32_t uuid0,uint32_t uuid1,uint32_t uuid2, uint32_t uuid3); |
igbt6 | 5:9a00e7bb0275 | 494 | bool HM11::setIBeaconUuid (uint32_t* uuid); |
igbt6 | 5:9a00e7bb0275 | 495 | |
igbt6 | 5:9a00e7bb0275 | 496 | |
igbt6 | 5:9a00e7bb0275 | 497 | uint32_t HM11::queryIBeaconUuid(uint32_t* nr_of_uuid); |
igbt6 | 5:9a00e7bb0275 | 498 | |
igbt6 | 5:9a00e7bb0275 | 499 | |
igbt6 | 5:9a00e7bb0275 | 500 | |
igbt6 | 5:9a00e7bb0275 | 501 | |
igbt6 | 5:9a00e7bb0275 | 502 | bool HM11::setIBeaconMajor(uint16_t mjrVersion); |
igbt6 | 5:9a00e7bb0275 | 503 | |
igbt6 | 5:9a00e7bb0275 | 504 | |
igbt6 | 5:9a00e7bb0275 | 505 | uint16_t HM11::queryIBeaconMajor(void); |
igbt6 | 5:9a00e7bb0275 | 506 | |
igbt6 | 5:9a00e7bb0275 | 507 | |
igbt6 | 5:9a00e7bb0275 | 508 | |
igbt6 | 5:9a00e7bb0275 | 509 | |
igbt6 | 5:9a00e7bb0275 | 510 | bool HM11::setIBeaconMinor(uint16_t mnrVersion); |
igbt6 | 5:9a00e7bb0275 | 511 | |
igbt6 | 5:9a00e7bb0275 | 512 | |
igbt6 | 5:9a00e7bb0275 | 513 | uint16_t HM11::queryIBeaconMinor(void); |
igbt6 | 5:9a00e7bb0275 | 514 | |
igbt6 | 5:9a00e7bb0275 | 515 | |
igbt6 | 5:9a00e7bb0275 | 516 | |
igbt6 | 5:9a00e7bb0275 | 517 | |
igbt6 | 5:9a00e7bb0275 | 518 | bool HM11::setIBeaconMeasuredPower(uint16_t measuredPwr); |
igbt6 | 5:9a00e7bb0275 | 519 | |
igbt6 | 5:9a00e7bb0275 | 520 | |
igbt6 | 5:9a00e7bb0275 | 521 | |
igbt6 | 5:9a00e7bb0275 | 522 | uint16_t HM11::queryIBeaconMeasuredPower(void); |
igbt6 | 5:9a00e7bb0275 | 523 | |
igbt6 | 5:9a00e7bb0275 | 524 | |
igbt6 | 5:9a00e7bb0275 | 525 | |
igbt6 | 5:9a00e7bb0275 | 526 | bool HM11::setModuleWorkMode(ModuleWorkMode_t workMode); |
igbt6 | 5:9a00e7bb0275 | 527 | |
igbt6 | 5:9a00e7bb0275 | 528 | |
igbt6 | 5:9a00e7bb0275 | 529 | |
igbt6 | 5:9a00e7bb0275 | 530 | ModuleWorkMode_t HM11::queryModuleWorkMode(void); |
igbt6 | 5:9a00e7bb0275 | 531 | |
igbt6 | 5:9a00e7bb0275 | 532 | |
igbt6 | 5:9a00e7bb0275 | 533 | |
igbt6 | 5:9a00e7bb0275 | 534 | |
igbt6 | 5:9a00e7bb0275 | 535 | bool HM11::setModuleName(char* name, uint8_t nameLength); |
igbt6 | 5:9a00e7bb0275 | 536 | |
igbt6 | 5:9a00e7bb0275 | 537 | |
igbt6 | 5:9a00e7bb0275 | 538 | bool HM11::queryModuleName(char *name); |
igbt6 | 5:9a00e7bb0275 | 539 | |
igbt6 | 5:9a00e7bb0275 | 540 | |
igbt6 | 5:9a00e7bb0275 | 541 | |
igbt6 | 5:9a00e7bb0275 | 542 | |
igbt6 | 5:9a00e7bb0275 | 543 | bool HM11::setParityBit(ParityBit_t pBit); |
igbt6 | 5:9a00e7bb0275 | 544 | |
igbt6 | 5:9a00e7bb0275 | 545 | |
igbt6 | 5:9a00e7bb0275 | 546 | |
igbt6 | 5:9a00e7bb0275 | 547 | ParityBit_t HM11::queryParityBit(void); |
igbt6 | 5:9a00e7bb0275 | 548 | |
igbt6 | 5:9a00e7bb0275 | 549 | |
igbt6 | 5:9a00e7bb0275 | 550 | bool HM11::setPio1OutputStatus(uint8_t status); |
igbt6 | 5:9a00e7bb0275 | 551 | |
igbt6 | 5:9a00e7bb0275 | 552 | |
igbt6 | 5:9a00e7bb0275 | 553 | |
igbt6 | 5:9a00e7bb0275 | 554 | uint8_t HM11::queryPio1OutputStatus(void); |
igbt6 | 5:9a00e7bb0275 | 555 | |
igbt6 | 0:df4bd867616e | 556 | |
igbt6 | 0:df4bd867616e | 557 | |
igbt6 | 5:9a00e7bb0275 | 558 | |
igbt6 | 5:9a00e7bb0275 | 559 | |
igbt6 | 5:9a00e7bb0275 | 560 | bool HM11::setPioPinsOutput(uint8_t nrOfPio, uint8_t val ); |
igbt6 | 5:9a00e7bb0275 | 561 | |
igbt6 | 5:9a00e7bb0275 | 562 | |
igbt6 | 5:9a00e7bb0275 | 563 | uint8_t HM11::queryPioPinsOutput(uint8_t nrOfPio); |
igbt6 | 5:9a00e7bb0275 | 564 | |
igbt6 | 5:9a00e7bb0275 | 565 | |
igbt6 | 5:9a00e7bb0275 | 566 | |
igbt6 | 5:9a00e7bb0275 | 567 | |
igbt6 | 5:9a00e7bb0275 | 568 | bool HM11::setPinCode (uint32_t pinCode ); |
igbt6 | 5:9a00e7bb0275 | 569 | |
igbt6 | 5:9a00e7bb0275 | 570 | |
igbt6 | 5:9a00e7bb0275 | 571 | |
igbt6 | 5:9a00e7bb0275 | 572 | uint8_t HM11::queryPinCode (void); |
igbt6 | 5:9a00e7bb0275 | 573 | |
igbt6 | 5:9a00e7bb0275 | 574 | |
igbt6 | 5:9a00e7bb0275 | 575 | |
igbt6 | 5:9a00e7bb0275 | 576 | |
igbt6 | 5:9a00e7bb0275 | 577 | bool HM11::setModulePower(ModulePower_t modPower); |
igbt6 | 5:9a00e7bb0275 | 578 | |
igbt6 | 5:9a00e7bb0275 | 579 | |
igbt6 | 5:9a00e7bb0275 | 580 | |
igbt6 | 5:9a00e7bb0275 | 581 | ModulePower_t HM11::queryModulePower (void); |
igbt6 | 5:9a00e7bb0275 | 582 | |
igbt6 | 5:9a00e7bb0275 | 583 | |
igbt6 | 5:9a00e7bb0275 | 584 | |
igbt6 | 5:9a00e7bb0275 | 585 | bool HM11::setModuleSleepType(uint8_t modSleepType ); |
igbt6 | 5:9a00e7bb0275 | 586 | |
igbt6 | 5:9a00e7bb0275 | 587 | |
igbt6 | 5:9a00e7bb0275 | 588 | |
igbt6 | 5:9a00e7bb0275 | 589 | uint8_t HM11::queryModuleSleepType (void); |
igbt6 | 5:9a00e7bb0275 | 590 | |
igbt6 | 5:9a00e7bb0275 | 591 | |
igbt6 | 5:9a00e7bb0275 | 592 | |
igbt6 | 5:9a00e7bb0275 | 593 | |
igbt6 | 5:9a00e7bb0275 | 594 | bool HM11::restoreAll(void); |
igbt6 | 5:9a00e7bb0275 | 595 | |
igbt6 | 5:9a00e7bb0275 | 596 | |
igbt6 | 5:9a00e7bb0275 | 597 | bool HM11::restartModule(void); |
igbt6 | 5:9a00e7bb0275 | 598 | |
igbt6 | 5:9a00e7bb0275 | 599 | |
igbt6 | 5:9a00e7bb0275 | 600 | |
igbt6 | 5:9a00e7bb0275 | 601 | bool HM11::setMasterAndSlaveRole(uint8_t role); |
igbt6 | 5:9a00e7bb0275 | 602 | |
igbt6 | 5:9a00e7bb0275 | 603 | |
igbt6 | 5:9a00e7bb0275 | 604 | |
igbt6 | 5:9a00e7bb0275 | 605 | uint8_t HM11::queryMasterAndSlaveRole(void); |
igbt6 | 5:9a00e7bb0275 | 606 | |
igbt6 | 5:9a00e7bb0275 | 607 | |
igbt6 | 5:9a00e7bb0275 | 608 | |
igbt6 | 5:9a00e7bb0275 | 609 | |
igbt6 | 5:9a00e7bb0275 | 610 | uint8_t HM11::queryRssiValue(void); |
igbt6 | 5:9a00e7bb0275 | 611 | |
igbt6 | 5:9a00e7bb0275 | 612 | |
igbt6 | 5:9a00e7bb0275 | 613 | |
igbt6 | 5:9a00e7bb0275 | 614 | |
igbt6 | 5:9a00e7bb0275 | 615 | char* HM11::queryLastConnectedDeviceAddress(void); |
igbt6 | 5:9a00e7bb0275 | 616 | |
igbt6 | 5:9a00e7bb0275 | 617 | |
igbt6 | 5:9a00e7bb0275 | 618 | |
igbt6 | 5:9a00e7bb0275 | 619 | |
igbt6 | 5:9a00e7bb0275 | 620 | bool HM11::setModuleSensorWorkInterval(uint8_t interval); |
igbt6 | 5:9a00e7bb0275 | 621 | |
igbt6 | 5:9a00e7bb0275 | 622 | |
igbt6 | 5:9a00e7bb0275 | 623 | |
igbt6 | 5:9a00e7bb0275 | 624 | uint8_t HM11::queryModuleSensorWorkInterval(void); |
igbt6 | 5:9a00e7bb0275 | 625 | |
igbt6 | 5:9a00e7bb0275 | 626 | |
igbt6 | 5:9a00e7bb0275 | 627 | |
igbt6 | 5:9a00e7bb0275 | 628 | bool HM11::workImmediately(void); |
igbt6 | 5:9a00e7bb0275 | 629 | |
igbt6 | 5:9a00e7bb0275 | 630 | |
igbt6 | 5:9a00e7bb0275 | 631 | |
igbt6 | 5:9a00e7bb0275 | 632 | bool HM11::queryModuleIntoSleepMode(void); |
igbt6 | 5:9a00e7bb0275 | 633 | |
igbt6 | 5:9a00e7bb0275 | 634 | |
igbt6 | 5:9a00e7bb0275 | 635 | |
igbt6 | 5:9a00e7bb0275 | 636 | bool HM11::setModuleSaveConnectedAddressParam(uint8_t saveParam); |
igbt6 | 5:9a00e7bb0275 | 637 | |
igbt6 | 5:9a00e7bb0275 | 638 | |
igbt6 | 5:9a00e7bb0275 | 639 | uint8_t HM11::queryModuleSaveConnectedAddressParam(void); |
igbt6 | 5:9a00e7bb0275 | 640 | |
igbt6 | 5:9a00e7bb0275 | 641 | |
igbt6 | 5:9a00e7bb0275 | 642 | |
igbt6 | 5:9a00e7bb0275 | 643 | bool HM11::setSensorTypeOnModulePio(SensorType_t sensorType); |
igbt6 | 5:9a00e7bb0275 | 644 | |
igbt6 | 5:9a00e7bb0275 | 645 | |
igbt6 | 5:9a00e7bb0275 | 646 | |
igbt6 | 5:9a00e7bb0275 | 647 | SensorType_t HM11::querySensorTypeOnModulePio(void); |
igbt6 | 5:9a00e7bb0275 | 648 | |
igbt6 | 5:9a00e7bb0275 | 649 | |
igbt6 | 5:9a00e7bb0275 | 650 | bool HM11::setDiscoveryParameter (SensorType_t discoverParam); |
igbt6 | 5:9a00e7bb0275 | 651 | |
igbt6 | 0:df4bd867616e | 652 | |
igbt6 | 5:9a00e7bb0275 | 653 | uint8_t HM11::queryDiscoveryParameter (void); |
igbt6 | 5:9a00e7bb0275 | 654 | |
igbt6 | 5:9a00e7bb0275 | 655 | |
igbt6 | 5:9a00e7bb0275 | 656 | |
igbt6 | 5:9a00e7bb0275 | 657 | |
igbt6 | 5:9a00e7bb0275 | 658 | bool HM11::queryModuleSensorTempAndHumidity(uint8_t* temp, uint8_t* hum); |
igbt6 | 5:9a00e7bb0275 | 659 | |
igbt6 | 5:9a00e7bb0275 | 660 | |
igbt6 | 5:9a00e7bb0275 | 661 | |
igbt6 | 5:9a00e7bb0275 | 662 | bool HM11::queryDS18B20SensorTemperature (uint8_t* temp); |
igbt6 | 5:9a00e7bb0275 | 663 | |
igbt6 | 5:9a00e7bb0275 | 664 | |
igbt6 | 5:9a00e7bb0275 | 665 | |
igbt6 | 5:9a00e7bb0275 | 666 | |
igbt6 | 5:9a00e7bb0275 | 667 | bool HM11::setModuleConnectRemoteDeviceTimeoutValue(uint32_t timeout); |
igbt6 | 5:9a00e7bb0275 | 668 | |
igbt6 | 5:9a00e7bb0275 | 669 | |
igbt6 | 5:9a00e7bb0275 | 670 | |
igbt6 | 5:9a00e7bb0275 | 671 | |
igbt6 | 5:9a00e7bb0275 | 672 | uint32_t HM11::queryModuleConnectRemoteDeviceTimeoutValue(void); |
igbt6 | 5:9a00e7bb0275 | 673 | |
igbt6 | 5:9a00e7bb0275 | 674 | |
igbt6 | 5:9a00e7bb0275 | 675 | |
igbt6 | 5:9a00e7bb0275 | 676 | bool HM11::setModuleBondMode(BondMode_t bondMode); |
igbt6 | 5:9a00e7bb0275 | 677 | |
igbt6 | 5:9a00e7bb0275 | 678 | |
igbt6 | 5:9a00e7bb0275 | 679 | |
igbt6 | 5:9a00e7bb0275 | 680 | BondMode_t HM11::queryModuleBondMode(void); |
igbt6 | 5:9a00e7bb0275 | 681 | |
igbt6 | 5:9a00e7bb0275 | 682 | |
igbt6 | 5:9a00e7bb0275 | 683 | |
igbt6 | 5:9a00e7bb0275 | 684 | |
igbt6 | 5:9a00e7bb0275 | 685 | |
igbt6 | 5:9a00e7bb0275 | 686 | bool HM11::setServiceUuid (uint16_t serviceUuid); |
igbt6 | 5:9a00e7bb0275 | 687 | |
igbt6 | 5:9a00e7bb0275 | 688 | |
igbt6 | 5:9a00e7bb0275 | 689 | |
igbt6 | 5:9a00e7bb0275 | 690 | uint16_t HM11::queryServiceUuid(void); |
igbt6 | 5:9a00e7bb0275 | 691 | |
igbt6 | 5:9a00e7bb0275 | 692 | |
igbt6 | 5:9a00e7bb0275 | 693 | |
igbt6 | 5:9a00e7bb0275 | 694 | |
igbt6 | 5:9a00e7bb0275 | 695 | bool HM11::setUartSleepType (uint8_t sleepType); |
igbt6 | 5:9a00e7bb0275 | 696 | |
igbt6 | 5:9a00e7bb0275 | 697 | |
igbt6 | 5:9a00e7bb0275 | 698 | |
igbt6 | 5:9a00e7bb0275 | 699 | uint8_t HM11::queryUartSleepType(void); |
igbt6 | 5:9a00e7bb0275 | 700 | |
igbt6 | 5:9a00e7bb0275 | 701 | char* HM11::querySoftwareVersion(void); |
igbt6 | 5:9a00e7bb0275 | 702 | |
igbt6 | 5:9a00e7bb0275 | 703 | #endif |