iBeacon Raspberry PI

Я новый участник этого сайта, поэтому, если этот вопрос покажется вам слишком простым, пожалуйста, сделайте мне поблажку. Я использую устройства Pi в качестве считывателей iBeacon в течение нескольких недель, и я смог без проблем найти свои маяки LE, используя hcitool lescan и hcidump. Проблема, с которой я столкнулся сейчас, заключается в том, что по какой-то причине, когда я запускаю hcitool lescan, я вижу свои устройства, но hcidump не работает - кажется, что он даже не работает.

Поскольку hcitool lescan работает, я знаю, что устройства работают и что мой Pi может их найти.

Любые мысли о том, что может быть причиной этого? Какую информацию я могу предоставить, чтобы помочь вам лучше понять ситуацию?


person Brian Koffler    schedule 12.12.2014    source источник
comment
что происходит, когда вы вводите hcidump во время запуска hcitool lescan? Вставьте вывод команды в свой вопрос, чтобы мы могли помочь.   -  person davidgyoung    schedule 13.12.2014
comment
Поскольку это происходит на двух устройствах, я думаю, что это должно быть что-то с маяками, но я не знаю, что я мог с ними сделать... К сожалению, я не в курсе.   -  person Brian Koffler    schedule 13.12.2014
comment
Вот файл журнала, когда я запускаю hcidump -at, который раньше давал мне всю необходимую информацию. [108.30.56.142/test1.log]   -  person Brian Koffler    schedule 14.12.2014
comment
..а вот hcitool lescan распечатка с теми же устройствами в тех же местах, что и скрипт запускал выше LE SCAN   -  person Brian Koffler    schedule 14.12.2014


Ответы (1)


Это известная ошибка с bluez.

Чтобы исправить это, вам просто нужно отключить интерфейс Bluetooth и снова включить его.

sudo hciconfig hci0 down

sudo hciconfig hci0 up

hci0 — это интерфейс вашего Bluetooth-ключа.

Затем вы можете запустить дамп одновременно со сканированием:

sudo hcitool lescan --duplicates & sudo hcidump -w file.txt

person Jonathan Davies    schedule 13.12.2014
comment
Спасибо за ответ. На самом деле я запускаю эти команды в своем сценарии перед запуском lescan или hcidump с тем же результатом - lescan находит маяки, но hcidump не показывает мне ничего от них. - person Brian Koffler; 13.12.2014
comment
Я отвечу позже сегодня вечером после того, как посмотрю свой код, так как я не могу точно вспомнить, как я заставил свой дамп работать. - person Jonathan Davies; 13.12.2014
comment
Отлично, большое спасибо. Мой дамп ДЕЙСТВИТЕЛЬНО работал нормально, но затем из ниоткуда.. По крайней мере, я думаю, из ниоткуда.. Он просто остановился! - person Brian Koffler; 13.12.2014
comment
sudo hcitool lescan --duplicates & sudo hcidump -w file.txt. Работает после включения интерфейса. Поместите hcidump в файл, а затем прочитайте его с помощью sudo hcidump -r file.txt. @БрайанКоффлер - person Jonathan Davies; 14.12.2014
comment
Кажется, это помогает! Если это не слишком сложно, можете ли вы помочь мне понять, почему это работает? А у вас есть идеи, почему раньше я мог видеть маяки с помощью простого hcidump -at, а теперь не могу? Теперь, когда я снова могу получить эти данные, я могу двигаться дальше в своем проекте, но мне любопытно, что произошло. - person Brian Koffler; 14.12.2014
comment
Чтобы он работал эффективно, вам нужно, чтобы обе команды выполнялись одновременно. --duplicates не фильтрует дубликаты и позволяет hcidump постоянно сканировать и выдавать результаты. Когда вы заглянете в file.txt вручную, вы ничего не увидите. Чтобы преодолеть это, вы можете просто добавить file.txt> scan.txt в конец команды чтения, чтобы вывести все сканы в удобочитаемый формат, который вы можете повторить, если это необходимо. Если вам нужна еще помощь, просто кричите. Не забудьте отметить ответ и поднять его :) @BrianKoffler - person Jonathan Davies; 14.12.2014
comment
Как вы предлагаете добавлять временную метку к каждому чтению? Раньше я использовал -t, но с этим новым методом я не уверен, как это связать. Пожалуйста, дайте мне знать, что вы думаете, когда у вас будет возможность! - person Brian Koffler; 15.12.2014
comment
После hcidump -t -w...... и во время чтения вы также можете добавить -t после hcidump -t -r..... Это должно работать. @БрайанКоффлер - person Jonathan Davies; 15.12.2014
comment
Идеальный! Это именно то, что мне нужно. - person Brian Koffler; 15.12.2014