mirror of
https://github.com/kawasaki/pyscrlink.git
synced 2025-09-06 17:50:20 +02:00
Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
0f9ccd3b63 | ||
|
d1f7f58ca2 | ||
|
7050016ee6 |
21
README.md
21
README.md
@@ -141,10 +141,22 @@ In Case You Fail to Connect
|
||||
* If the service is not working, refer guide of your distro to set it up.
|
||||
* If the service is working, also check that /etc/bluetooth/main.conf sets AutoEnable=true.
|
||||
|
||||
3. If scratch_link.py says "failed to connect to BT device: [Errno 13] Permission denied",
|
||||
3. If device scan still fails, use -r option to retry device scan.
|
||||
The command line below does device scan twice. Each scan takes 10 seconds.
|
||||
```
|
||||
$ scratch_link -r 2
|
||||
```
|
||||
It would be good to use -s option together to reduce each scan duration.
|
||||
The command line below does 3 seconds device scan twice.
|
||||
|
||||
```
|
||||
$ scratch_link -r 2 -s 3
|
||||
```
|
||||
|
||||
4. If scratch_link.py says "failed to connect to BT device: [Errno 13] Permission denied",
|
||||
make sure to pair the bluetooth device to your PC before connecting to Scratch.
|
||||
|
||||
4. To connect to multiple devices at the same time, make all the target devices
|
||||
5. To connect to multiple devices at the same time, make all the target devices
|
||||
ready for scan at the first device scan. This is important for toio. The toio
|
||||
allows a single project to connect to two toio devices.
|
||||
* When the second device was prepared after the first device was connected, device scan can not find the second device.
|
||||
@@ -158,6 +170,11 @@ Please file issues to [GitHub issue tracker](https://github.com/kawasaki/pyscrli
|
||||
Releases
|
||||
--------
|
||||
|
||||
Release 0.2.7
|
||||
|
||||
* Supported Snap Firefox and Chromium
|
||||
* Added -r option to retry BLE scan
|
||||
|
||||
Release 0.2.6
|
||||
|
||||
* Removed Bluetooth Classic and LEGO Mindstorm EV3 support
|
||||
|
@@ -318,16 +318,23 @@ class BLESession(Session):
|
||||
BLESession.found_devices.clear()
|
||||
for i in range(self.MAX_SCANNER_IF):
|
||||
scanner = Scanner(iface=i)
|
||||
try:
|
||||
logger.debug(f"start BLE scan: {scan_seconds} seconds")
|
||||
devices = scanner.scan(scan_seconds)
|
||||
for dev in devices:
|
||||
if self.matches(dev, params['filters']):
|
||||
BLESession.found_devices.append(dev)
|
||||
found = True
|
||||
logger.debug(f"BLE device found with iface #{i}");
|
||||
except BTLEManagementError as e:
|
||||
logger.debug(f"BLE iface #{i}: {e}");
|
||||
for j in range(scan_retry):
|
||||
try:
|
||||
logger.debug(f"start BLE scan: {scan_seconds} seconds")
|
||||
devices = scanner.scan(scan_seconds)
|
||||
for dev in devices:
|
||||
if self.matches(dev, params['filters']):
|
||||
BLESession.found_devices.append(dev)
|
||||
found = True
|
||||
logger.debug(f"BLE device found with iface #{i}");
|
||||
if found:
|
||||
break
|
||||
except BTLEDisconnectError as de:
|
||||
logger.debug(f"BLE iface #{i}: {de}");
|
||||
except BTLEManagementError as me:
|
||||
logger.debug(f"BLE iface #{i}: {me}");
|
||||
if found:
|
||||
break
|
||||
else:
|
||||
found = len(BLESession.found_devices) > 0
|
||||
return found
|
||||
@@ -534,11 +541,14 @@ def stack_trace():
|
||||
|
||||
def main():
|
||||
global scan_seconds
|
||||
global scan_retry
|
||||
parser = argparse.ArgumentParser(description='start Scratch-link')
|
||||
parser.add_argument('-d', '--debug', action='store_true',
|
||||
help='print debug messages')
|
||||
parser.add_argument('-s', '--scan_seconds', type=float, default=10.0,
|
||||
help='specifiy duration to scan BLE devices in seconds')
|
||||
parser.add_argument('-r', '--scan_retry', type=int, default=1,
|
||||
help='specifiy retry times to scan BLE devices')
|
||||
args = parser.parse_args()
|
||||
if args.debug:
|
||||
print("Print debug messages")
|
||||
@@ -546,7 +556,9 @@ def main():
|
||||
handler.setLevel(logLevel)
|
||||
logger.setLevel(logLevel)
|
||||
scan_seconds = args.scan_seconds
|
||||
scan_retry = args.scan_retry
|
||||
logger.debug(f"set scan_seconds: {scan_seconds}")
|
||||
logger.debug(f"set scan_retry: {scan_retry}")
|
||||
|
||||
# Prepare certificate of the WSS server
|
||||
gencert.prep_cert()
|
||||
|
Reference in New Issue
Block a user