概要
ビーコンを3秒周期で検知してその結果をキューに貯めます。貯めたキューは7個まで保存できて、要素の多い宛先を選択します。
# coding: utf-8
import bluepy
def get_uuid():
scanner = bluepy.btle.Scanner(0)
devices = scanner.scan(3) #3秒のスキャンデータ
rssi_dic = {}
rssi_dic2 = {}
#アドレスとRSSIをディクショナリに登録
for device in devices:
rssi_dic[device.addr] = str(device.rssi)
#ディクショナリを昇順に並べ替え
rssi_dic2 = sorted(rssi_dic.items(), key=lambda x:x[1])
#一番強いRSSIを返す
ret = rssi_dic2[0][0]
#RSSIが-40以下ならunknown
if int(rssi_dic2[0][1]) <= -40:
ret = "unknown"
return ret
def main():
from collections import Counter
check_uuid = []
i = 0
while True:
check_uuid.append(str(get_uuid()))
uuid_ranking = Counter(check_uuid).most_common()
best_uuid = uuid_ranking[0][0]
if len(check_uuid) >= 7 :
check_uuid.pop(0)
if __name__ == "__main__":
main()
import bluepy
def get_uuid():
scanner = bluepy.btle.Scanner(0)
devices = scanner.scan(3) #3秒のスキャンデータ
rssi_dic = {}
rssi_dic2 = {}
#アドレスとRSSIをディクショナリに登録
for device in devices:
rssi_dic[device.addr] = str(device.rssi)
#ディクショナリを昇順に並べ替え
rssi_dic2 = sorted(rssi_dic.items(), key=lambda x:x[1])
#一番強いRSSIを返す
ret = rssi_dic2[0][0]
#RSSIが-40以下ならunknown
if int(rssi_dic2[0][1]) <= -40:
ret = "unknown"
return ret
def main():
from collections import Counter
check_uuid = []
i = 0
while True:
check_uuid.append(str(get_uuid()))
uuid_ranking = Counter(check_uuid).most_common()
best_uuid = uuid_ranking[0][0]
if len(check_uuid) >= 7 :
check_uuid.pop(0)
if __name__ == "__main__":
main()
0 件のコメント:
コメントを投稿