bluetooth code updated with latest github.com/muka/go-bluetooth@v0.0.0-20210812063148-b6c83362e27d

This commit is contained in:
cuu 2021-10-07 21:54:30 +08:00
parent b4680f1a3e
commit 0461450ea9
5 changed files with 70 additions and 43 deletions

View File

@ -6,6 +6,7 @@ import (
"log"
"strings"
//"errors"
gotime "time"
"github.com/fatih/structs"
"github.com/veandco/go-sdl2/ttf"
@ -23,7 +24,9 @@ import (
//"github.com/muka/go-bluetooth/bluez"
// "github.com/muka/go-bluetooth/bluez/profile"
"github.com/muka/go-bluetooth/bluez/profile/device"
"github.com/muka/go-bluetooth/bluez/profile/adapter"
logrus "github.com/sirupsen/logrus"
"github.com/clockworkpi/LauncherGoDev/sysgo/UI"
)
@ -169,8 +172,6 @@ func (self *BleInfoPage) Init() {
self.Ps = ps
self.PsIndex = 0
//self.GenList()
self.Scroller = UI.NewListScroller()
self.Scroller.Parent = self
self.Scroller.PosX = 2
@ -211,8 +212,6 @@ func (self *BleInfoPage) GenList() {
continue
}
li := UI.NewInfoPageListItem()
li.Parent = self
li.PosX = start_x
@ -566,8 +565,6 @@ func (self *BluetoothPage) Init() {
self.Scroller.PosY = 2
self.Scroller.Init()
self.GenNetworkList()
self.InfoPage = NewBleInfoPage()
self.InfoPage.Screen = self.Screen
self.InfoPage.Name = "BluetoothInfo"
@ -664,7 +661,7 @@ func (self *BluetoothPage) GetDevices() ([]*device.Device1, error) {
func (self *BluetoothPage) RefreshDevices() {
// sync the cached devices
self.Devices = nil
self.Devices = self.Devices[:0]
devices, err := self.GetDevices()
if err != nil {
@ -683,7 +680,6 @@ func (self *BluetoothPage) GenNetworkList() {
start_x := 0
start_y := 0
for i, v := range self.Devices { // v == bleapi.Device
props, err := v.GetProperties()
@ -716,29 +712,56 @@ func (self *BluetoothPage) GenNetworkList() {
}
func (self *BluetoothPage) Rescan() {
self.Scanning = true
self.ShowBox("Bluetooth scanning")
if self.Scanning == true {
self.ShowBox("Bluetooth scanning")
self.Screen.FootBar.UpdateNavText("Scanning")
}
a, err := adapter.GetAdapter(adapterID)
if err != nil {
fmt.Println(err)
return
}
discovery, cancel, err := bleapi.Discover(a, nil)
if err != nil {
fmt.Println(err)
}
defer cancel()
wait := make(chan error)
self.Scanning = true
self.ShowBox("Bluetooth scanning")
self.Screen.FootBar.UpdateNavText("Scanning")
a,nil := bleapi.GetAdapter(adapterID)
err := a.StopDiscovery()
go func() {
for dev := range discovery {
if dev == nil {
return
}
wait <- nil
}
}()
go func() {
sleep := 5
gotime.Sleep(gotime.Duration(sleep) * gotime.Second)
logrus.Debugf("Discovery timeout exceeded (%ds)", sleep)
wait <- nil
}()
err = <-wait
if err != nil {
fmt.Println(err)
}
err = a.StartDiscovery()
if err != nil {
fmt.Println(err)
}
fmt.Println("Started discovery")
self.Scanning = false
self.HideBox()
self.Screen.FootBar.ResetNavText()
}
func (self *BluetoothPage) OnLoadCb() {
self.Offline = false
@ -748,6 +771,7 @@ func (self *BluetoothPage) OnLoadCb() {
self.Offline = true
fmt.Println("Bluetooth OnLoadCb ,can not find hci0 alive,try to reboot")
}else {
self.Rescan()
self.RefreshDevices()
self.GenNetworkList()
}
@ -860,6 +884,7 @@ func (self *BluetoothPage) KeyDown(ev *event.Event) {
}
func (self *BluetoothPage) Draw() {
self.ClearCanvas()
if len(self.MyList) == 0 {

View File

@ -2,15 +2,15 @@ package Bluetooth
import (
"fmt"
// "log"
//"os"
"time"
//"log"
//"os"
//"time"
"github.com/godbus/dbus/v5"
"github.com/muka/go-bluetooth/api"
//"github.com/muka/go-bluetooth/api"
"github.com/muka/go-bluetooth/hw"
//"github.com/muka/go-bluetooth/bluez/profile"
"github.com/muka/go-bluetooth/bluez/profile/agent"
"github.com/muka/go-bluetooth/bluez/profile/adapter"
//"github.com/muka/go-bluetooth/bluez/profile/adapter"
/*
"github.com/veandco/go-sdl2/ttf"
@ -76,7 +76,7 @@ func (self *BluetoothPlugin) Init( main_screen *UI.MainScreen ) {
self.InitAgent()
/*
a, err := adapter.GetAdapter(adapterID)
if err != nil {
fmt.Println(err)
@ -112,12 +112,12 @@ func (self *BluetoothPlugin) Init( main_screen *UI.MainScreen ) {
if err != nil {
fmt.Println(err)
}
*/
//self.BluetoothPage.RefreshDevices()
//self.BluetoothPage.GenNetworkList()
self.BluetoothPage.RefreshDevices()
self.BluetoothPage.GenNetworkList()
main_screen.Draw()
main_screen.SwapAndShow()
}

View File

@ -402,6 +402,7 @@ func (self *MainScreen) Draw() {
}
if self.TitleBar != nil {
//every plugin_init should not do any Draw actions since CurrentPage might be nil at that time
self.TitleBar.Draw( self.CurrentPage.GetName())
}

View File

@ -64,7 +64,7 @@ func (self *SkinManager) Init() {
self.Colors["White"] = &color.Color{255,255,255,255}
self.Colors["Black"] = &color.Color{0,0,0,255}
fname := "skin/"+sysgo.SKIN+"/config.ini"
fname := sysgo.SKIN+"/config.ini"
load_opts := ini.LoadOptions{
IgnoreInlineComment:true,

View File

@ -9,7 +9,8 @@ type PowerLevel struct {
var PowerLevels map[string]*PowerLevel
var (
CurKeySet = "GameShell" // PC or GameShell
//CurKeySet = "PC" // PC or GameShell
CurKeySet = "GameShell"
DontLeave = false
BackLight = "/proc/driver/backlight"
Battery = "/sys/class/power_supply/axp20x-battery/uevent"