webserial 1.0.0+1 copy "webserial: ^1.0.0+1" to clipboard
webserial: ^1.0.0+1 copied to clipboard

Platformweb

WebSerial support for Dart built on the web package.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:webserial/webserial.dart';
import 'dart:js_interop';

void main() {
  runApp(const MainApp());
}

class MainApp extends StatelessWidget {
  const MainApp({super.key});

  void chooseSerialDevice() async {
    late final JSSerialPort? port;
    try {
      port = await requestWebSerialPort();
      print("got serial port: $port");
    } catch (e) {
      print(e);
      return;
    }

    if (port?.readable == null) {
      // Open the serial port.
      await port
          ?.open(
            JSSerialOptions(
              baudRate: 115200,
              dataBits: 8,
              stopBits: 1,
              parity: "none",
              bufferSize: 64,
              flowControl: "none",
            ),
          )
          .toDart;

      print("port opened: ${port?.readable}");
    } else {
      print("port already opened: ${port?.readable}");
    }
    // Listen to data coming from the serial device.
    final reader = port?.readable?.getReader() as ReadableStreamDefaultReader;

    while (true) {
      final result = await reader.read().toDart;
      if (result.done) {
        // Allow the serial port to be closed later.
        reader.releaseLock();
        break;
      } else {
        // value is a Uint8Array.
        print("DATA: ${result.value}");
      }
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: MaterialButton(
            child: Text("choose serial port"),
            onPressed: () {
              chooseSerialDevice();
            },
          ),
        ),
      ),
    );
  }
}

@JS()
external set dartSerialDataCallback(JSFunction value);

void onSerialData(JSUint8Array data) {
  print("$data");
}
0
likes
150
points
23
downloads

Publisher

verified publishermanichord.com

Weekly Downloads

WebSerial support for Dart built on the web package.

Repository (GitHub)

Documentation

API reference

License

unknown (license)

Dependencies

web

More

Packages that depend on webserial