printRawBytesWifi static method

Future<KeckPrintResult> printRawBytesWifi(
  1. List<int> bytes, {
  2. required String ip,
  3. int port = 9100,
  4. Duration timeout = const Duration(seconds: 5),
})

Sendet fertige ESC/POS-Bytes direkt an einen WiFi-Drucker — ohne den globalen aktiven Drucker zu verändern. Liefert Erfolg/Fehler zurück.

Stateless: nutzt eine eigene, kurzlebige Socket-Verbindung zu ip:port und rührt weder ipAddress/port noch den initialisierten Drucker an. Wirft nicht — das Ergebnis kommt im KeckPrintResult. success heißt gesendet, nicht garantiert gedruckt (kein TCP-ACK; siehe KeckPrintResult).

Implementation

static Future<KeckPrintResult> printRawBytesWifi(
  List<int> bytes, {
  required String ip,
  int port = 9100,
  Duration timeout = const Duration(seconds: 5),
}) async {
  if (bytes.isEmpty) return const KeckPrintResult.failure('Keine Bytes zum Drucken.');
  if (ip.trim().isEmpty) return const KeckPrintResult.failure('Keine Drucker-IP angegeben.');
  try {
    await _rawSocketSend(bytes, ip, port, timeout);
    return const KeckPrintResult.success();
  } catch (e) {
    return KeckPrintResult.failure('WiFi-Druck fehlgeschlagen ($ip:$port): $e');
  }
}