2015-12-16 8 views
5

Das Gerät ist ein Etikettendrucker. Es kann über Bluetooth und USB verbunden werden. Ich würde mir vorstellen, dass es eine Art Linux läuft, da es eine ziemlich komplexe Schnittstelle/Bildschirm hat, aber ich bin mir nicht sicher. Genau das möchte ich gerne bestimmen. Aber mein Ziel ist es, eine Schale oder eine Art ‚sinnvolle‘ Verbindung zu bekommen, durch die ich Befehle/Daten senden, die durch den Drucker Druckereignisse ausgelöst werden, ohne die Software des Herstellers mitKommunizieren und steuern Sie ein Druckergerät über Bluetooth oder USB

Verbindung mit dem Gerät in ubuntu via USB erstellt /dev/usb/lp0. Ich versuchte, Verbindung zu diesem mit Python serial Modul, aber es konnte keine Verbindung zum seriellen Port.

Via Bluetooth war ich auch, hcitool scan mit verbinden können die Geräte MAC-Adresse zu bekommen und dann rfcomm zu verbinden (this Ansatz). Dies erstellt /dev/rfcomm0, mit dem ich eine Verbindung herstellen und Daten an Python senden konnte.

Ist es möglich, die Daten, die normalerweise über die Software des Herstellers über USB/Bluetooth gesendet werden, nachzuahmen, um ohne die Software zu drucken? Ich nehme an, dass dies möglich wäre, indem man über Bluetooth gesendete Daten "schnüffelt", während ein normaler Druckbefehl von der Software des Herstellers gesendet wird (obwohl ich denke, es gibt keinen Grund, dass er für einen Menschen verständlich wäre).

Wenn diese Art von Mimikry möglich ist, frage ich mich, ob das Senden der entsprechenden Daten über Bluetooth zum Beispiel zu einem Druckereignis führen würde. Bisher habe ich keinen Grund zu glauben, dass Daten, die ich über die Bluetooth-Verbindung sende, nicht empfangen werden, aber ich habe noch keine Antwort (Daten oder physisch) von der Bluetooth-Verbindung erhalten.

Jede Beratung/Vorschläge, wie könnte ich meine Gesamtziel erreichen würde

+1

Normalerweise verwenden diese Geräte ein bestimmtes Protokoll, z. Epson hat sein Protokoll gut definiert. Sie bieten eine Anleitung für Programmierer und alle Befehle, die über die serielle Schnittstelle gesendet werden, stehen Entwicklern zur Verfügung. Ich gehe davon aus, dass die Erstellung von Software, die ihr Protokoll nachahmt, eine Zertifizierung erfordert. Da Ihr 'udev' Gerät'/dev/usb/lp0' erstellt hat, bedeutet es, dass es versteht, dass Sie den Drucker angeschlossen haben. Die Ausgabe von 'dmesg | tail' kann nützlich sein. Wenn Sie den Druckerhersteller und das Druckermodell kennen, können Sie nach dem richtigen Treiber und der richtigen Methode suchen, um den Drucker mit Daten zu versorgen. Ich bin mit Bluetooth nicht so vertraut, daher kann ich es nicht empfehlen. –

+0

@ PiotrKról Dies war ein wirklich hilfreicher Kommentar, ich konnte eine vom Hersteller veröffentlichte Referenz finden, die das vom Drucker verwendete Kommunikationsprotokoll beschreibt. Ich werde damit herumspielen und über meine Fortschritte berichten. – Ryan

Antwort

1

klar sein, ich bin nicht sicher über Bluetooth, sondern für USB-Drucken Sie die Tassen Bibliothek verwenden können (licups) und verwenden Sie die APIs der priting zu tun . Es verwendet IPP-Protokoll. Normalerweise verwendet cups eine für den Drucker spezifische .ppd-Datei (die die Details zum Drucker enthält) für die Installation. Für neue Sprachversionen wie PCL5, 5e, 6 usw. gibt es generische PPD-Dateien, die verwendet werden können, um einen Drucker zu installieren, der die jeweilige Sprache verwendet

Verwandte Themen