import 'dart:typed_data'; import 'package:vid/us/vid_us_application.dart'; import 'package:vid/us/vid_us_data_reader.dart'; import 'package:vid/us/vid_us_data_writer.dart'; enum VidUsProbeType { Undefined, Linear, Convex, Sector, } class VidUsProbe { late String _name; late VidUsProbeType _type; late VidUsApplication _application; late double _frameRate; String get name => _name; VidUsProbeType get type => _type; VidUsApplication get application => _application; double get frameRate => _frameRate; VidUsProbe(String name, VidUsProbeType type, VidUsApplication application, double frameRate) { _name = name; _type = type; _application = application; _frameRate = frameRate; } Uint8List toBytes() { var writer = new VidUsDataWriter(); writer.writeString(_name); writer.writeByte(_type.index); writer.writeBytes(_application.toBytes()); writer.writeDouble(_frameRate); return writer.data; } static VidUsProbe fromBytes(Uint8List bytes) { var reader = new VidUsDataReader(bytes); var name = reader.readString(); var type = VidUsProbeType.values[reader.readByte()]; var application = VidUsApplication.fromBytes(reader.readBytes()); var frameRate = reader.readDouble(); return new VidUsProbe(name, type, application, frameRate); } }