2010-07-22 9 views
5

Voglio la progettazione di un modulo web che l'utente deve riempire alcuni campi. Il valore di un campo deve essere letto dalla porta seriale (COM1) del computer client a cui è collegato un hardware speciale e l'utente preme la chiave Send to PC dell'hardware durante la compilazione del modulo.Come leggere dalla porta seriale in una pagina web

Come posso ascoltare la porta COM1 nella mia pagina Web e ottenere il valore di COM1 e inserirlo automaticamente nel modulo Web?

Ho sentito che i controlli ActiveX possono farlo ma è compatibile solo con IE (giusto?). L'altra opzione sono le applet Java.

Voglio una soluzione semplice che sia compatibile con (almeno) IE/Firefox/Opera.

I lato server posso avere ASP o PHP, ma sono grato se si fornisce una soluzione per ciascuno.

UPDATE:

Possiamo dire ai clienti a cambiare le loro impostazioni di sicurezza di accettare il nostro ActiveX/applet.

È anche possibile per noi dire ai clienti di installare un programma personalizzato che viene eseguito come servizio e che legge dalla porta seriale.

Il problema è che i dati letti devono essere inseriti automaticamente nel webform.

L'applet java è una buona idea, ma il client deve installare JRE che è di grandi dimensioni.

C'è qualche altra opzione?

+0

Perché deve essere una pagina Web? È possibile avere un'app client (che non avrebbe problemi di comunicazione con una porta com) inviare i dati a una pagina Web, a un servizio RESTful o al servizio WS- *. –

+0

@Matthew: hai ragione, ma questa pagina web fa parte di un grande sito web e il BOSS preferisce che tutte le cose siano integrate nel web. : -/ – Isaac

risposta

3

Con un'applet Java è possibile leggere dalla porta seriale ma è necessario firmare l'applet per motivi di sicurezza. Per dichiarare ufficiosamente (senza sole) devi creare un certificato. Here è un esempio.

+0

Puoi aggiornare il link? questo link è scaduto –

1

Ciò sembrerebbe rompere la maggior parte dei modelli di sicurezza per il web. Non riesco a pensare a un modo in cui sarebbe possibile farlo all'interno di un browser senza concedere a un'applet o controllo ActiveX un sacco di permessi (e anche allora non sono sicuro che sia possibile). Penso che sia probabile che richieda una sorta di applicazione client "spessa" nativa per effettuare la comunicazione con la porta seriale.

+0

I nostri clienti non hanno problemi a concedere tali permessi all'applet. Ho anche aggiornato la domanda per chiarimenti. – Isaac

0

Java potrebbe essere la scelta migliore per mantenere la compatibilità cross-browser e multipiattaforma. Una rapida ricerca portato queste pagine che si possono trovare utili:

La scelta del lato server non importa affatto. Una volta che il client legge i dati, equivale a inviare altri dati a uno script sul lato server.

+2

Ciò richiederà tuttavia un client grasso poiché non può essere eseguito da un'applet a causa delle restrizioni di sicurezza. – Chris

4

stavo risolvere lo stesso problema e l'ho fatto. È fatto utilizzando una Web Applet Java. Avrai bisogno di NetBeans. Leggi prima "readme". Fammi sapere se qualcosa, pls.

http://racky.wz.cz/applet_rs232.zip

Progettato per COM1 di serie. Inserire un cavo RS-232 e collegare (collegare) i pin 2 e 3 sull'altra estremità.

+1

+1 Questa risposta sembra legittima e richiede più attenzione. Questo è probabilmente un buon codice di template per questo problema. – Isaac

+0

@Racky: file danneggiato – GerManson