native library

dart:io + dart:ffi-only additions for mcp_io_serial.

Importing the main mcp_io_serial library keeps the package web-safe (the abstract SerialTransport + InMemorySerialTransport). Importing this native library opts in to the libserialport-backed implementation and is only available on VM / Flutter desktop / Flutter mobile (anywhere dart:ffi works).

Runtime requirement: the libserialport shared library must be on the system search path, or supply libraryPath: to the constructor.

import 'package:mcp_io_serial/mcp_io_serial.dart';
import 'package:mcp_io_serial/native.dart';

final transport = LibserialportSerialTransport();
final adapter = SerialIoAdapter(
  deviceId: 'uart-1',
  portName: '/dev/ttyUSB0',
  config: const SerialConfig(baudRate: 115200),
  transport: transport,
);
await adapter.connect();

Classes

LibserialportBindings
LibserialportSerialTransport
SpFlowControl
sp_flowcontrol.
SpMode
sp_mode — open mode flags.
SpParity
sp_parity.
SpReturn
sp_return — libserialport error / success codes.
SpSignal
sp_signal — for LibserialportBindings.spSetDtr / spSetRts.
SpSignalMask
sp_signal bitmask returned by sp_get_signals (libserialport.h).

Functions

defaultLibserialportFilename() String
Default per-platform soname / filename for libserialport.
openLibserialport({String? path}) DynamicLibrary
Opens libserialport from path (or the default soname when null). Throws if the library is not present on the system.

Typedefs

SpFreePortDart = void Function(Pointer<Void> port)
SpFreePortNative = Void Function(Pointer<Void> port)
SpGetPortByNameDart = int Function(Pointer<Utf8> portName, Pointer<Pointer<Void>> portPtr)
SpGetPortByNameNative = Int32 Function(Pointer<Utf8> portName, Pointer<Pointer<Void>> portPtr)
SpGetSignalsDart = int Function(Pointer<Void> port, Pointer<Int32> signals)
SpGetSignalsNative = Int32 Function(Pointer<Void> port, Pointer<Int32> signals)
SpReadWriteDart = int Function(Pointer<Void> port, Pointer<Uint8> buf, int count)
SpReadWriteNative = IntPtr Function(Pointer<Void> port, Pointer<Uint8> buf, IntPtr count)
SpVoidIntDart = int Function(Pointer<Void> port)
SpVoidIntFlagDart = int Function(Pointer<Void> port, int flag)
SpVoidIntFlagNative = Int32 Function(Pointer<Void> port, Int32 flag)
SpVoidIntNative = Int32 Function(Pointer<Void> port)