Hallo TS,
kann ich mittels PHP auf die/eine serielle Schnittstelle des Hosts zugreifen?
Ich würde vermuten, ja.
https://www.php.net/manual/en/function.dio-open.php
Gemacht hab ich das noch nicht. Mangels serieller Schnittstelle in meinem PC 😉
Die Frage ist, ob Du das als Kommandozeilentool laufen lassen willst oder in einer Webseite. Die Frage ist auch, ob Du eine Interrupt-gesteuerte Meldung haben willst, wenn sich auf der seriellen Schnittstelle was tut (was ich in PHP eher nicht verorten würde), oder ob Du ein einfaches Request/Response Verfahren brauchst (was durch Polling machbar sein dürfte).
Mit dio_tcsetattr kannst Du auf jeden Fall die Schnittstellenparameter einstellen. Ein Open, Write, Read, Close sollte dann machbar sein, beim Read musst Du aber - denke ich - damit rechnen, dass Du nicht alle Daten in einem Rutsch bekommst. Und bei einer schlechten Datenflusssteuerung kannst Du auch Daten verlieren, wenn Du zu langsam liest.
Ich erinnere mich an einen Drucker, der seriell an einen Siemens-pseudokompatiblen PC angeschlossen war und der nur über Software-Flusskontrolle verfügte. Aber bis der sein "STOOOPPPP!" gesendet hatte, war sein Puffer schon übergelaufen und man musste ihn aus- und einschalten. Hach ja, die frühen Achtziger…
Wo bleibt dann die Response auf einen Call?
Die musst Du Byte für Byte einlesen, nachdem Du den Request raussgeschickt hast. Und dem Gerät auch etwas Zeit einräumen, über deinen Request nachzudenken. DAS programmierst Du dann tatsächlich lowest level mit busy-waiting.
Rolf
sumpsi - posui - obstruxi