Du hast auf den Branch log-test-branch 2026-04-12 20:57:35 +00:00 gepusht
Neuer Pull-Request
Du hast auf den Branch anon-test2 2026-04-12 20:50:35 +00:00 gepusht
Neuer Pull-Request
Dateien
Soft-LTS/Models/SimplePrinterState.cs
2026-04-12 17:22:31 +02:00

37 Zeilen
1.4 KiB
C#

namespace PrinterMonitor.Models;
/// <summary>
/// Die drei überwachten Druckerzustände.
/// Wird bei jedem Poll-Zyklus erzeugt und mit dem vorherigen Zustand verglichen.
/// </summary>
public class SimplePrinterState : IEquatable<SimplePrinterState>
{
/// <summary>LTS Sensor: true = Etikett steht an / Sensor belegt</summary>
public bool LtsSensor { get; init; }
/// <summary>Druckerklappe: true = Druckkopf offen</summary>
public bool Druckerklappe { get; init; }
/// <summary>Keine Etiketten: true = Papier leer/niedrig</summary>
public bool KeineEtiketten { get; init; }
/// <summary>
/// Erzeugt den VW-Protokoll-Payload (ohne STX/ETX-Framing).
/// V1=LTS-Sensor, V2=Druckerklappe, V3=Keine Etiketten, V4=Reserviert (immer 0).
/// Beispiel: "VW;V1=1,V2=0,V3=0,V4=0" = LTS belegt, Klappe zu, Papier vorhanden.
/// </summary>
public string ToTcpString() =>
$"VW;V1={(LtsSensor ? '1' : '0')},V2={(Druckerklappe ? '1' : '0')},V3={(KeineEtiketten ? '1' : '0')},V4=0";
public bool Equals(SimplePrinterState? other)
{
if (other is null) return false;
return LtsSensor == other.LtsSensor
&& Druckerklappe == other.Druckerklappe
&& KeineEtiketten == other.KeineEtiketten;
}
public override bool Equals(object? obj) => Equals(obj as SimplePrinterState);
public override int GetHashCode() => HashCode.Combine(LtsSensor, Druckerklappe, KeineEtiketten);
}