serial_port_win32

A SerialPort library using win32 API.

pub

Getting Started

Get Ports

var ports = SerialPort.getAvailablePorts();
print(ports);
/// result like [COM3, COM4]

Create Serial Port

final port = SerialPort("COM5", openNow: false, ByteSize: 8);
// port.open()
port.openWithSettings(BaudRate: CBR_115200);
// final port = SerialPort("COM5"); /// auto open with default settings

Set parameters

port.BaudRate = CBR_115200;
port.ByteSize = 8;
port.StopBits = ONESTOPBIT;
port.Parity = NOPARITY;
port.ReadIntervalTimeout = 10;
/// and so on, parameters like win32.

Read

port.readBytesOnListen(8, (value) => print(value));

Write

Write String

String buffer = "hello";
port.writeBytesFromString(buffer);

Write Uint8List

final uint8_data = Uint8List.fromList([1, 2, 3, 4, 5, 6]);
print(port.writeBytesFromUint8List(uint8_data));

Get Port Connection Status

port.isOpened == false;

Close Serial Port

Close Without Listen

port.close();

Close On Listen

port.closeOnListen(
  onListen: () => print(port.isOpened),
)
  ..onError((err) {
    print(err);
  })
  ..onDone(() {
    print("is closed");
    print(port.isOpened);
  });

Small Example

import 'package:serial_port_win32/src/serial_port.dart';

void main() {
    var ports = SerialPort.getAvailablePorts();
    print(ports);
    if(ports.isNotEmpty){
      var port = SerialPort(ports[0]);
      port.BaudRate = CBR_115200;
      port.StopBits = ONESTOPBIT;
      port.close();
    }
}

Libraries

serial_port_win32