Я делаю локационную систему с сигналом iBeacon. Таким образом, я хочу получить iBeacon Singnal с коротким периодом. Я пробовал это с hm10 и Arduino. И попробовал с этим похвалить "AT+DISI?"
. Я использовал этот код
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(2,3);
char disi_result[500];
int top=0;
int d1=0;
int i=0;
struct devices {
unsigned int major=0;
unsigned int minor=0;
unsigned int power=0;
int rssi=0;
};
devices device[4];
void setup()
{
Serial.begin(9600);
BTSerial.begin(9600);
start_at();
}
void loop(){
if(d1==0)
{
Serial.println("Scanning started");
BTSerial.write("AT+DISI?");
d1=1;
}
if(d1==1){
if (BTSerial.available() ){
while(BTSerial.available()){
disi_result[i]=char(BTSerial.read());
i++;
}
}
int j;
String str="";
for(j=i-8;j<=i;j++)
{
str=str+disi_result[j];
}
if(str=="OK+DISCE" ){
d1=2;
}
}
if(d1==2)
{
int j=0;
for(j=0;j<=i;j++)
{
Serial.print(disi_result[j]);
}
i=0;
d1=0;
}
}
void start_at(){
String c="";
do{
BTSerial.print("AT");
delay(50);
if (BTSerial.available())
{
while(BTSerial.available())
{
c=c+char(BTSerial.read());
}
}
}while(c!="OK");
}
Я могу получить ответ хорошо. но период сканирования слишком медленный. Я хочу быстро получить изменение значения rssi. Как я могу это сделать?