2010-03-22 4 views
16

Mi chiedevo se posso usare PHP per controllare un hardware esterno collegato alla porta parallela o alla porta USB? qualche idea o risorsa?Posso controllare l'hardware tramite PHP Language?

+0

Su quale piattaforma? Puoi essere un po 'più specifico su che tipo di hardware? –

+0

Connesso a quale computer? Server o client? –

+0

@Pekka un hardware semplice consideriamo una lampada collegata con led a porta parallela. – Waseem

risposta

0

È necessario scrivere un programma che è possibile chiamare tramite chiamate di sistema. Il codice PHP non può accedere direttamente al tuo hardware.

+0

Non completamente. Esistono estensioni solo per Windows per accedere alle stampanti e (indirettamente) all'hardware tramite COM di Windows. Ancora, generalmente vero. –

+0

@Pekka - AFAIK funzionano tutti su dispositivi di stampa virtuali, non su porte fisiche. – symcbean

+0

@symcbean ah, va bene. –

3

Si potrebbe voler esaminare php exec. PHP non consente l'accesso diretto all'hardware tramite l'API, è necessario chiamare i sottoprogrammi per farlo.

+1

Non c'è niente di intrinseco nel bloccare l'accesso all'hardware da parte di php - infatti, se le autorizzazioni lo consentono, può manipolare la mappatura sul filesystem senza ulteriori estensioni/codice. per esempio. $ Di = fopen ('/ dev/lp0', 'w'); Tuttavia una quantità enorme dipende dal sistema operativo e dal driver del dispositivo rispetto a ciò che è effettivamente possibile. – symcbean

5

Questa è una classe utile per dispositivi attatched seriali su Linux: PHP Serial

porte seriali sono spesso utilizzati per comunicare con dispositivi periferici, quali: modem, terminali POS, stampanti speciali, ecc .

Questa classe può essere utilizzato per comunicare e configurare le periferiche collegate una porta seriale sotto Linux, semplificando lo sviluppo di applicazioni che richiede l'accesso ai dispositivi seriali.

0

Come per il mio commento sulla risposta di Filip Ekberg .... forse.

Dipende dal tuo sistema operativo e dal livello di accesso richiesto - dovrebbe essere bidirezionale? Stai cercando di utilizzare le linee di controllo per scopi diversi dal controllo di flusso? Conosci i dettagli del protocollo di comunicazione?

C.

0

Se avete intenzione di eseguire questo su un sistema * nix, si può voglio guardare Plan 9 From User Space. Con queste librerie, è possibile scrivere un programma C che faccia apparire l'hardware come parte del file system, ad esempio lo si monta come si monterebbe un'unità USB, ad esempio. Una volta montato, puoi usare la funzione di PHP per manipolare i file per controllare il tuo hardware.

Se non si conosce il piano 9, questo potrebbe non essere molto chiaro. Lasciatemi illustrare con un esempio fittizio: il tuo hardware è una scheda elettronica che mostra il numero di utenti registrati tramite un display a 7 segmenti. Si utilizza Piano 9 da spazio utente di scrivere un programma che monta 2 file:

/da qualche parte/ingresso

/da qualche parte/uscita

scrittura "42" (come si farebbe con un file di testo) inserire l'input per rendere il display della scheda 42. L'output di lettura, ad esempio, indica per quanto tempo questo numero non è cambiato.

questo non può essere il modo più semplice per raggiungere il tuo obiettivo, come imparare ad usare il Piano 9 biblioteche non è molto facile (anche se le persone su IRC sono molto gentile e disponibile), ma è a mio parere il modo più elegante .

Con questo, sarete anche in grado di controllare il vostro hardware da qualsiasi altra lingua, in quanto tutte le lingue che conosco possono manipolare i file.