From 4cfb26b1aaaf4c1470770e7367453ff9c599b60c Mon Sep 17 00:00:00 2001 From: "suguo.yao" Date: Thu, 16 Dec 2021 10:59:48 +0800 Subject: [PATCH] init --- .gitignore | 6 ++++++ Makefile | 8 ++++++++ go.mod | 5 +++++ main.go | 33 +++++++++++++++++++++++++++++++++ readme.md | 21 +++++++++++++++++++++ 5 files changed, 73 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 go.mod create mode 100644 main.go create mode 100644 readme.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ec2c5ae --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +go.sum +ble-ibeacon +*.exe +*.bin +logs/ +.vscode/ \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..21ba741 --- /dev/null +++ b/Makefile @@ -0,0 +1,8 @@ +.PHONY: arm +arm: + go mod tidy + GOOS=linux GOARCH=arm GOARM=7 go build + +.PHONY: release +release: arm + scp ./ble-ibeacon pi@192.168.0.21:~/ \ No newline at end of file diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..177e9aa --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module myschools.me/suguo/ble-ibeacon + +go 1.17 + +require github.com/paypal/gatt v0.0.0-20151011220935-4ae819d591cf diff --git a/main.go b/main.go new file mode 100644 index 0000000..f548dcc --- /dev/null +++ b/main.go @@ -0,0 +1,33 @@ +package main + +import ( + "fmt" + "log" + + "github.com/paypal/gatt" + "github.com/paypal/gatt/examples/option" +) + +func onPerhipheralDiscovered(p gatt.Peripheral, a *gatt.Advertisement, rssi int) { + fmt.Println(string(a.ManufacturerData)) +} + +func onStateChanged(device gatt.Device, s gatt.State) { + switch s { + case gatt.StatePoweredOn: + device.Scan([]gatt.UUID{}, true) + return + default: + device.StopScanning() + } +} + +func main() { + dev, err := gatt.NewDevice(option.DefaultClientOptions...) + if err != nil { + log.Fatalf("Failed to open device, err:%s\n", err) + } + dev.Handle(gatt.PeripheralDiscovered(onPerhipheralDiscovered)) + dev.Init(onStateChanged) + select {} +} diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..e62af89 --- /dev/null +++ b/readme.md @@ -0,0 +1,21 @@ +# 蓝牙通讯例子 + +### 概述 +希望用于通过蓝牙RSSI值判断距离的研究。 + +### 组件 +- github.com/paypal/gatt + +### 部署 +- sudo hciconfig hci0 down +- sudo service bluetooth stop + +### QA +- Failed to open device, err:no supported devices available + > 执行权限不够导致设备找不到,记得sudo +- 查看raspberrypi几位系统 + > getconf LONG_BIT +- 查看操作系统信息 + > lsb_release -a +- 直接查看系统的架构 + > arch \ No newline at end of file