Transaction<T> class
The transaction class is an easy way to use the UsbPort class in a more linear way without blocking.
Example
// Create a parser that splits incoming data on endline newline combination ( \r\n)
var c = Transaction.terminated(p.inputStream, Uint8List.fromList([13, 10]));
// Listen asynchronously if you need this:
c.stream.listen((data) {
print("ASYNC LISTEN $data");
});
var request_1 = Uint8List.fromList([65]);
// Wait two seconds for the answer
Uint8List response_1 = await c.transaction(p, request_1, Duration(seconds: 2));
if (response_1 == null ) {
print("Failed to get a response.");
}
Constructors
-
Transaction(Stream<
Uint8List> stream, DisposableStreamTransformer<Uint8List, T> transformer) - Transaction Constructor, pass it the untransformed input stream and the transformer to work on the stream.
Properties
Methods
-
dispose(
) → void - Call dispose when you are done with the object. this will release the underlying stream.
-
flush(
) → Future< void> - Flush all existing messages from the queue.
-
getMsg(
Duration duration) → Future< T?> - Get the next message from the queue if any. returns data or null on error.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
transaction(
AsyncDataSinkSource port, Uint8List message, Duration duration) → Future< T?> - The transaction functions does 3 things.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
magicHeader(
Stream< Uint8List> stream, List<int> header, {int maxLen = 1024}) → Transaction<Uint8List> - Create a transaction that uses MagicHeaderAndLengthByteTransformer
-
stringTerminated(
Stream< Uint8List> stream, Uint8List terminator, {int maxLen = 1024, bool stripTerminator = true}) → Transaction<String> - Create a transaction that transforms the incoming stream into events delimited by 'terminator', returning Strings.
-
terminated(
Stream< Uint8List> stream, Uint8List terminator, {int maxLen = 1024, bool stripTerminator = true}) → Transaction<Uint8List> - Create a transaction that transforms the incoming stream into events delimited by 'terminator'.