sendCommand method
Sends a command to the switcher.
Implementation
Future<AtemPacket?> sendCommand(AtemCommand command,
{bool reliable = true}) async {
if (!_connected) throw StateError('Not connected');
final data = command.toBytes();
final packet = _createDataPacket(data, reliable: reliable);
if (reliable) {
final completer = Completer<AtemPacket>();
_pendingCommands[packet.sequenceNumber] = completer;
_sendPacket(packet);
try {
return await completer.future.timeout(_config.timeout);
} finally {
_pendingCommands.remove(packet.sequenceNumber);
_retransmissionBuffer.remove(packet.sequenceNumber);
}
} else {
_sendPacket(packet);
return null;
}
}