digital-dream-labs / vector-bluetooth Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
I've compiled vector-bluetooth on 3x different machines and they all lacked Go and resulted in error during 'make build' command. I suggest adding a pre-requisite check for Go if possible.
This will allow a user to fetch logs from vector
vector-bluetooth/rts/external.go
Line 1951 in cb43b5e
I suggest adding a message for the user to check that vector is in bluetooth pairing mode when the 'connect' command fails. Took me some time to realize that this was the reason I wasn't being able to connect.
Lots of the values here would be better if displayed as false or empty instead of omitempty. It'd be better feedback when parsed by a human
vector-bluetooth/ble/status.go
Line 16 in e09d697
This will allow this library to fetch the IP of Vector
vector-bluetooth/rts/external.go
Line 745 in cb43b5e
This will allow one to remove entries for Vectors wifi networks
vector-bluetooth/rts/external.go
Line 445 in cb43b5e
For user convenience, the tool should check to make sure that the robot is auth'd prior to the user being able to run the config command. Currently, the configuration command dumps changes if the robot isn't auth'd (after everything has been filled out), but it would be a much better experience to simply be informed that the robot isn't auth'd before the command runs.
I have successfully been able to build and run vector-ble in linux arm (arm64, on manjaro, pine book pro).
I have been able to build vector-ble on both M1(arm64) and Intel(x64) Macs. However note the following:
michael@MoonMini vector-bluetooth % ./vector-ble panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x2 addr=0x20 pc=0x10255a910]
goroutine 19 [running]: github.com/currantlabs/ble/linux/hci.(*HCI).sktLoop(0x14000106780) /Users/michael/go/pkg/mod/github.com/currantlabs/[email protected]/linux/hci/hci.go:267 +0x80 created by github.com/currantlabs/ble/linux/hci.(*HCI).Init /Users/michael/go/pkg/mod/github.com/currantlabs/[email protected]/linux/hci/hci.go:146 +0x4f4
michael@MoonMBP vector-bluetooth % ./vector-ble panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x11bc802]
goroutine 1 [running]: github.com/currantlabs/ble/linux/hci.(*HCI).send(0xc000001c80, 0x12c0bc0, 0x14503e8, 0xc000068778, 0xc000176240, 0xc000105bd8, 0x10, 0x12354c0) /Users/michael/go/pkg/mod/github.com/currantlabs/[email protected]/linux/hci/hci.go:249 +0x302 github.com/currantlabs/ble/linux/hci.(*HCI).Send(0xc000001c80, 0x12c0bc0, 0x14503e8, 0x0, 0x0, 0xc00001c240, 0x0) /Users/michael/go/pkg/mod/github.com/currantlabs/[email protected]/linux/hci/hci.go:221 +0x45 github.com/currantlabs/ble/linux/hci.(*HCI).init(0xc000001c80, 0x1286658, 0xc000001c80) /Users/michael/go/pkg/mod/github.com/currantlabs/[email protected]/linux/hci/hci.go:178 +0x52 github.com/currantlabs/ble/linux/hci.(*HCI).Init(0xc000001c80, 0x0, 0x0) /Users/michael/go/pkg/mod/github.com/currantlabs/[email protected]/linux/hci/hci.go:147 +0x596 github.com/currantlabs/ble/linux.NewDevice(0x1256b60, 0xc000176180, 0x20) /Users/michael/go/pkg/mod/github.com/currantlabs/[email protected]/linux/device.go:21 +0x5f github.com/digital-dream-labs/vector-bluetooth/ble/conn.New(0xc0000686c0, 0x5, 0xc0000686c0, 0xc000013190) /Users/michael/Downloads/vector-bluetooth/ble/conn/conn.go:41 +0x1fa github.com/digital-dream-labs/vector-bluetooth/ble.New(0xc000105ea8, 0x2, 0x2, 0x126c8a0, 0x100000000000178, 0x2a09218) /Users/michael/Downloads/vector-bluetooth/ble/vector.go:57 +0xb1 github.com/digital-dream-labs/vector-bluetooth/cli.BLEShell() /Users/michael/Downloads/vector-bluetooth/cli/blecli.go:21 +0xd4 main.main() /Users/michael/Downloads/vector-bluetooth/cmd/main.go:6 +0x25
Regards,
-Michael
Closing the connection does not make the HCI device available again, which blocks off anyone from using BLE until exit. I need to dig into the multiple forks and issues to see if there's a fix available.
Even when the user sets metric temperature units to "false" in configuration, metric units are used for temperature once that configuration is finalized, when they should be Imperial units.
If possible, we should implement OS detection for the correct build steps to run and the tool to compile clean across platforms.
Wifi-connect does not properly handle wifi passwords with space.
If enclosing with quotations, or adding a '\' before the space, the separate words are treated as separate arguments instead of a single password.
I believe the issue is in how blecli.go processes the arguments before passing over to wifi.go.
This will allow one to turn on AP mode for Vector
vector-bluetooth/rts/external.go
Line 1732 in cb43b5e
It isn't clear what is the proper way to exit vector-ble. 'exit' and 'quit' does not work. Had to Ctrl+C...
I suggest supporting 'exit' or 'quit' or mentioning what is the proper way to exit.
When performing a scan, devices tend to show up more than once. De-duplicate the list before displaying it.
vector-bluetooth/ble/conn/scan.go
Line 46 in e09d697
In addition, the type returned from scan shouldn't be passed through from the bleconn package.
Users need to be able to grab their cloud token somehow.
The downloaded logs filename includes ':' characters in Linux. I was having trouble decompressing the file due to this. After renaming the file I was able to decompress. I am not sure if this was the reason but I suggest not to return a file with those characters. I used 'tar -xvjf filename' to decompress.
When exiting the script while configuration is being submitted, the app will fail to release bluetooth lock, and will require machine reboot to re-run the tool and establish connection.
Very few users should encounter this problem, but hey, just in case we want to save a few reboots if something goes wrong...
It would be good to implement lists of time zones and locales in the tool (or maybe even just in the documentation to copy/paste) so that people can easily understand the format of each configuration option.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.