зеркало из https://github.com/microsoft/jacdac-ts.git
patch: harmonize bus creation (#253)
* harmonize bus creation * patch: rename web sub
This commit is contained in:
Родитель
7006b34032
Коммит
8ad90cd2f3
4
DOCS.md
4
DOCS.md
|
@ -25,8 +25,8 @@ yarn add jacdac-ts
|
|||
then import components as needed using ES6 import syntax
|
||||
|
||||
```javascript
|
||||
import { createUSBBus } from "jacdac-ts"
|
||||
const jd = createUSBBus()
|
||||
import { createWebBus } from "jacdac-ts"
|
||||
const jd = createWebBus()
|
||||
```
|
||||
|
||||
### CDN / UMD
|
||||
|
|
|
@ -54,6 +54,7 @@ export * from "./transport/usb"
|
|||
export * from "./transport/webserial"
|
||||
export * from "./transport/nodewebusb"
|
||||
export * from "./transport/nodewebserialio"
|
||||
export * from "./transport/createbus"
|
||||
export * from "./error"
|
||||
export * from "./rolemanager"
|
||||
export * from "./filters/servicefilter"
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
import JDBus from "../bus"
|
||||
import { createUSBTransport } from "./usb"
|
||||
import { createWebSerialTransport } from "./webserial"
|
||||
import { createBluetoothTransport } from "./bluetooth"
|
||||
import { USBOptions } from "./usbio"
|
||||
|
||||
/**
|
||||
* Creates a Jacdac bus using WebUSB, WebSerial or WebBluetooth
|
||||
* @param options
|
||||
* @returns
|
||||
* @category Transport
|
||||
*/
|
||||
export function createWebBus(options?: { usbOptions?: USBOptions }) {
|
||||
return new JDBus([
|
||||
createUSBTransport(options?.usbOptions),
|
||||
createWebSerialTransport(),
|
||||
createBluetoothTransport(),
|
||||
])
|
||||
}
|
|
@ -5,7 +5,6 @@ import Transport from "./transport"
|
|||
import JDBus from "../bus"
|
||||
import Proto from "./proto"
|
||||
import WebSerialIO from "./webserialio"
|
||||
import { createUSBTransport } from "./usb"
|
||||
import { HF2_IO } from "./hf2"
|
||||
|
||||
export function isWebSerialEnabled(): boolean {
|
||||
|
@ -59,7 +58,7 @@ class WebSerialTransport extends Transport {
|
|||
export function createWebSerialTransport(
|
||||
mkTransport: () => HF2_IO = () => new WebSerialIO()
|
||||
): Transport {
|
||||
return new WebSerialTransport(mkTransport)
|
||||
return isWebSerialSupported() && new WebSerialTransport(mkTransport)
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -69,7 +68,3 @@ export function createWebSerialTransport(
|
|||
export function createWebSerialBus() {
|
||||
return new JDBus([createWebSerialTransport()])
|
||||
}
|
||||
|
||||
export function createAnyUSBBus() {
|
||||
return new JDBus([createUSBTransport(), createWebSerialTransport()])
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ import {
|
|||
} from "../jdom/constants"
|
||||
import { JDDevice } from "../jdom/device"
|
||||
import { isSensor, serviceSpecifications } from "../jdom/spec"
|
||||
import { createAnyUSBBus } from "../jdom/transport/webserial"
|
||||
import { createWebBus } from "../jdom/transport/createbus"
|
||||
import { toMap } from "../jdom/utils"
|
||||
|
||||
// p5 registration
|
||||
|
@ -20,7 +20,7 @@ const sensorSpecs = serviceSpecifications().filter(
|
|||
/**
|
||||
* The Jacdac bus
|
||||
*/
|
||||
export const bus = createAnyUSBBus()
|
||||
export const bus = createWebBus()
|
||||
|
||||
// ensure that the bus queries those services
|
||||
bus.on(DEVICE_ANNOUNCE, (dev: JDDevice) =>
|
||||
|
|
Загрузка…
Ссылка в новой задаче