2010-03-22 17 views
16

Ich fragte mich, ob ich PHP verwenden kann, um eine externe Hardware zu steuern, die mit dem parallelen Anschluss oder dem USB-Anschluss verbunden ist? irgendwelche Ideen oder Ressourcen?Kann ich Hardware über PHP Language steuern?

+0

Auf welcher Plattform? Können Sie etwas konkreter über welche Art von Hardware sein? –

+0

An welchen Computer angeschlossen? Server oder Client? –

+0

@Pekka eine einfache Hardware lassen Sie uns eine Lampe mit Parallelanschluss geführt betrachten. – Waseem

Antwort

0

Sie müssen ein Programm schreiben, das Sie über Systemaufrufe anrufen können. PHP-Code kann nicht direkt auf Ihre Hardware zugreifen.

+0

Nicht vollständig. Es gibt nur Windows-Erweiterungen für den Zugriff auf Drucker und (indirekt) Hardware über Windows-COM. Trotzdem, im Allgemeinen wahr. –

+0

@Pekka - AFAIK das alles funktioniert auf virtuellen Druckergeräten - nicht physikalische Ports. – symcbean

+0

@symcbean ah, alles klar. –

3

Sie möchten möglicherweise in php exec suchen. PHP erlaubt keinen Direktzugriff auf Hardware über die API, dafür müssen Sie Unterprogramme aufrufen.

+1

Es gibt nichts Wesentliches, php davon abzuhalten, auf die Hardware zuzugreifen - in der Tat, wenn Berechtigungen es erlauben, kann das Mapping auf dem Dateisystem ohne zusätzliche Erweiterungen/Code manipuliert werden. z.B. $ von = fopen ('/ dev/lp0', 'w'); Eine große Menge hängt jedoch vom Betriebssystem und vom Gerätetreiber ab, was tatsächlich möglich ist. – symcbean

5

Dies ist eine nützliche Klasse für serielle attatched Geräte auf Linux: PHP Serial

Serielle Ports oft verwendet wird Kommunikation mit Peripheriegeräten, wie: Modem, POS-Terminals, spezieller Drucker, etc. .

Diese Klasse kann verwendet werden zu kommunizieren und zu eine serielle Schnittstelle unter Linux vereinfacht die Entwicklung von Anwendungen, dieangeschlossenen Peripheriegeräte konfigurierenbenötigen Zugriff auf serielle Geräte.

0

Laut meinem Kommentar auf Filip Ekbergs Antwort .... vielleicht.

Es hängt von Ihrem Betriebssystem und der erforderlichen Zugriffsberechtigung ab - sollte es bidirektional sein? Versuchen Sie, die Steuerleitungen für andere Zwecke als die Flusskontrolle zu verwenden? Kennen Sie die Details des Kommunikationsprotokolls?

C.

0

Wenn Sie beabsichtigen, diese auf einem * NIX-System zu laufen, können Sie möchte Plan 9 From User Space betrachten. Mit diesen Bibliotheken könnten Sie ein C-Programm schreiben, das Ihre Hardware als Teil Ihres Dateisystems erscheinen lässt, d. H. Sie mounten es so, wie Sie beispielsweise ein USB-Laufwerk mounten würden. Sobald Sie angemeldet sind, können Sie die PHP-Funktion zum Bearbeiten von Dateien verwenden, um Ihre Hardware zu steuern.

Wenn Sie nicht wissen, was Plan 9 ist, kann dies nicht sehr klar sein. Lassen Sie mich anhand eines Dummy-Beispiels veranschaulichen: Ihre Hardware ist eine elektronische Karte, die die Nummer des angemeldeten Benutzers über eine 7-Segment-Anzeige anzeigt. Mit Plan 9 vom User-Space, ein Programm zu schreiben, das 2-Dateien besteigt:

/irgendwo/Eingang

/irgendwo/Ausgabe

Writing "42" (wie Sie mit einer Textdatei tun würden) Zur Eingabe wird Ihr Board 42 anzeigen. Die Ausgabe zeigt Ihnen beispielsweise an, wie lange sich diese Nummer nicht geändert hat.

Dies ist vielleicht nicht der einfachste Weg, um Ihr Ziel zu erreichen, da das Lernen der Plan 9 Bibliotheken nicht einfach ist (obwohl die Leute im IRC sehr nett und hilfreich sind), aber es ist meiner Meinung nach der eleganteste Weg .

Damit könnten Sie auch Ihre Hardware von jeder anderen Sprache aus steuern, für alle Sprachen, die ich kenne kann Dateien manipulieren.

Verwandte Themen