diff options
Diffstat (limited to 'vendor/web-sys/webidls/unstable/WebSerial.webidl')
-rw-r--r-- | vendor/web-sys/webidls/unstable/WebSerial.webidl | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/vendor/web-sys/webidls/unstable/WebSerial.webidl b/vendor/web-sys/webidls/unstable/WebSerial.webidl new file mode 100644 index 000000000..f2ac7d0b1 --- /dev/null +++ b/vendor/web-sys/webidls/unstable/WebSerial.webidl @@ -0,0 +1,80 @@ +[Exposed=Window, SecureContext] +partial interface Navigator { + [SameObject] readonly attribute Serial serial; +}; + +[Exposed=DedicatedWorker, SecureContext] +partial interface WorkerNavigator { + [SameObject] readonly attribute Serial serial; +}; + +[Exposed=(DedicatedWorker, Window), SecureContext] +interface Serial : EventTarget { + attribute EventHandler onconnect; + attribute EventHandler ondisconnect; + Promise<sequence<SerialPort>> getPorts(); + [Exposed=Window] Promise<SerialPort> requestPort(optional SerialPortRequestOptions options = {}); +}; + +dictionary SerialPortRequestOptions { + sequence<SerialPortFilter> filters; +}; + +dictionary SerialPortFilter { + unsigned short usbVendorId; + unsigned short usbProductId; +}; + +[Exposed=(DedicatedWorker,Window), SecureContext] +interface SerialPort : EventTarget { + attribute EventHandler onconnect; + attribute EventHandler ondisconnect; + readonly attribute ReadableStream readable; + readonly attribute WritableStream writable; + + SerialPortInfo getInfo(); + + Promise<undefined> open(SerialOptions options); + Promise<undefined> setSignals(optional SerialOutputSignals signals = {}); + Promise<SerialInputSignals> getSignals(); + Promise<undefined> close(); + Promise<undefined> forget(); +}; + +dictionary SerialPortInfo { + unsigned short usbVendorId; + unsigned short usbProductId; +}; + +dictionary SerialOptions { + [EnforceRange] required unsigned long baudRate; + [EnforceRange] octet dataBits = 8; + [EnforceRange] octet stopBits = 1; + ParityType parity = "none"; + [EnforceRange] unsigned long bufferSize = 255; + FlowControlType flowControl = "none"; +}; + +enum ParityType { + "none", + "even", + "odd" +}; + +enum FlowControlType { + "none", + "hardware" +}; + +dictionary SerialOutputSignals { + boolean dataTerminalReady; + boolean requestToSend; + boolean break; +}; + +dictionary SerialInputSignals { + required boolean dataCarrierDetect; + required boolean clearToSend; + required boolean ringIndicator; + required boolean dataSetReady; +}; |