NEWS
String (ASCII Zeichen) an USB-Gerät senden
-
Ich suche seit Tagen nach einer Möglichkeit einen String aus ASCII Zeichen
an ein USB-Gerät per Javascript zu senden, leider ohne Erfolg.In diesem Fall nutze ich:
- TinkerBoard S (mit Armbian OS v22.x, inkl. ioBroker)
- EA Plug (OLED Display mit USB Schnittstelle zur Steuerung)
Mit "lsusb" werden mir die angeschlossen USB-Geräte angezeigt, u.a. auch
das Display.Hat jemand ein Code-Beispiel zum Senden an USB-Geräte?
Danke im Voraus.
ATARIEdit:
Ein zu sendender String sieht z.B. so aus: "#GR10,10,117,53"
(zeichnet ein Rechteck an den Koordinaten 10,10,117,53)Habe von npm das Modul "usb" installiert und in Javascript
auch als Modul "usb" eingetragen.
Im Script wird mir beim Befehl:import { getDeviceList } from 'usb';
"Cannot find modul 'usb'" angezeigt.
Was mache ich falsch? -
okay, das Thema USB scheint dann doch nicht so trivial zu sein wie dachte.
(USB = Universal Serial Bus, so universell ist es dann wohl doch nicht)Ich könnte das Display auch notfalls seriell per RS232 oder I2C ansteuern.
Beim TinkerBoard S hätte ich hierfür ttyS 1-4 zur Auswahl.Gibt es hierfür ein Code-Beispiel in JavaScript?
Schönen Gruß
ATARI -
Update !!!
In der Zwischenzeit bin ich von TinkerBoard S (leider den Hitzetod gestorben) auf Raspberry Pi 4B umgestiegen.
Mittlerweile kann ich nun über eine 'Putty' ssh Verbindung (PC <-> Raspberry) mittels:
- echo "#ZL 1,1 Test" > /dev/ttyACM0
auf dem Display an Position x1,y1 das Wort "Test" anzeigen lassen.
Soweit..., so gut.Wie muss ich das Ganze nun in eine Javascript 'verpacken'?
Da hab' ich echt null Ahnung.Baudrate vom Display ist standartmäßig: 115200 baud.
Gruß
Peter -
-
@atari Ansonsten - ich verstehe zwar auch immer nicht, warum dieser Import nicht tut, aber mit require geht es:
const usb = require('usb'); const devices = usb.getDeviceList(); for (const device of devices) { console.log(device); // Legacy device }
-
exec('echo "#ZL 1,1 Test" > /dev/ttyACM0');
SUPER !!!
PERFEKT !!!Funktioniert tadellos..., nochmal DANKE dafür.
Nur zum Verständnis, muss ich zwingend über "exec('echo "IRGENDWAS" > /dev/ttyACM0')" arbeiten?
Geht da nichts über 'usb' ?Schönen Gruß
ATARI (Peter)