Commit Graph

112 Commits

Author SHA1 Message Date
Shin'ichiro Kawasaki
d46090dd7a Merge pull request #6 from chrisglencross/master
Add Lego Mindstorms EV3 functionality. This commit implements BTSession for Bluetooth devices.
2020-03-01 14:45:16 +09:00
Chris Glencross
61a4ff5dbb Fix documentation, and mention pairing on the Raspberry Pi. 2020-02-24 20:24:18 +00:00
Chris Glencross
6b7619ebeb Add Lego Mindstorms functionality 2020-02-24 19:48:12 +00:00
Shin'ichiro Kawasaki
2240de0085 BLESession.matches: Check service adtypes both 16 bits and 128 bits
LEGO Boost communicates with a Scratch extension through Scratch-link.
It was reported that bluepy-scratch-link fails to connect to LEGO Boost.
LEGO Boost advertises adtype 0x7 "Complete List of 128-bit Service Class
UUIDs". However, bluepy-scratch-link checks only adtype 0x3 "Complete
List of 16-bit Service Class UUIDs" which is valid for micro:bit.

To allow bluepy-scratch-link, check both adtypes 0x7 and 0x3. Introduce
constants to note those two adtype values.

Signed-off-by: Shin'ichiro Kawasaki <kawasaki@juno.dti.ne.jp>
2020-01-25 18:58:35 +09:00
MDE
865c613890 filter: Removed UUID conversion
Scratch 3.0 sends full UUID for LEGO Boost Extension.
If other extensions don't do this, a classifier
will be needed.
2020-01-25 18:58:35 +09:00
MDE
cea2723a0b BLESession.__del__: Fixed NameError exception on exit because of error
Message was:
NameError: name 'close' is not defined
2020-01-25 18:58:35 +09:00
Shin'ichiro Kawasaki
2b7fb7a07a README.md: Describe how to use Chrome browser
As ngammarano reported in a GitHub issue, Chrome browser has bypass key
sequence to allow local server certificate. Add that description to
README.md merging jazzpecq's patch. Thank goes to the two :)

Signed-off-by: Shin'ichiro Kawasaki <kawasaki@juno.dti.ne.jp>
2020-01-18 16:42:32 +09:00
Shin'ichiro Kawasaki
1215aa14cb Create LICENSE file
Clarify license of the bluepy-scratch-link script so that those who caring about licenses can take a look in the script code. I chose BSD 3-Clause "New" or "Revised" license, which is same as scratch-link to seek for the opportunity to get integrated into scratch-link, if possible.
2020-01-06 15:57:49 +09:00
Shin'ichiro Kawasaki
9cbe00224a README.md: Clarify python version 3.6 as the requirement
It was reported that the bluepy-scratch-link does not run on Ubuntu 16.04
which has python version 3.5. The script stopped with an error about
f-format string, which was introduce with python 3.6.

Even removing f-format string from the script, bluepy-scratch-link still
requires python 3.6 because websockets module requires it. Clarify that
python version requirement to avoid confusion.

Signed-off-by: Shin'ichiro Kawasaki <kawasaki@juno.dti.ne.jp>
2019-11-10 18:49:55 +09:00
Shin'ichiro Kawasaki
6136280c93 README.md: Describe motivation, installation and usage
Described why this script was written. Wrote down installation and usage
guide. Confirmed the guide with elementary os 5.

Signed-off-by: Shin'ichiro Kawasaki <kawasaki@juno.dti.ne.jp>
2019-09-15 20:50:32 +09:00
Shin'ichiro Kawasaki
402f79936f scratch_link.py: Initial commit
Implemented Scratch-link[1] feature as a small python script. Confirmed
it is working with Scratch 3.0[2] using a micro:bit as the BLE device to
link. This allows Linux PCs to connect Scratch and micro:bit.

Utilized bluez[3] and bluepy[4] to handle Bluetooth Low Energy connection.
Utilized Websocket module for Secure Web Socket server.

[1] https://github.com/LLK/scratch-link
[2] https://scratch.mit.edu/
[3] http://www.bluez.org/
[4] https://github.com/IanHarvey/bluepy

This is a minimal implementation to support micro:bit. Some of
Scratch-link features are not implemented. For example, Bluetooth (not
BLE) devices are not supported. BLE device support is confirmed only with
micro:bit.

Signed-off-by: Shin'ichiro Kawasaki <kawasaki@juno.dti.ne.jp>
2019-09-15 20:37:37 +09:00
Shin'ichiro Kawasaki
64ed1e53d9 Initial commit 2019-09-11 20:49:09 +09:00