2013-10-23 53 views
0

我需要讓Web應用程序向LPT端口發送信號。該硬件設計用於偵聽0V或5V TTL信號。從Web應用程序向LPT端口發送信號

您是否知道任何activeX,PHP類,JS甚至是中間件軟件,或者任何可以讓我將此LPT功能「插入」到Windows環境中本地使用的PHP/JS應用程序的任何東西?

回答

0

我從來沒有使用此功能的工作,但PHP有1,或許您可以使用 http://nl1.php.net/Exec

編輯這是我在網上找到了一個例子

<?php 
$cmd = "start /D C:\OpenSA\Apache /B Apache.exe -D SSL"; 
exec($cmd,$output,$rv); 
?> 
+0

我發現在命令提示符下運行'echo 1> lpt1'確實有效。 'exec()'聽起來很有希望,但我沒有得到如何使用它來運行'echo 1' ... – Yako

+0

這看起來是個不錯的例子: <?php $ computername =「MyComputer」; $ ip = gethostbyname($ computername); exec(「ping」。$ ip。「-n 1 -w 90 && exit」,$ output); print_r($ output); ?>更多示例,請看這裏http://nl1.php.net/manual/en/function.exec.php –

0

我們有一個基於瀏覽器的票務(如電影院的票房系統),該系統使用串行端口將命令直接發送到票證打印機。在這裏,它是如何工作的:

  • 一個小的應用程序,由於歷史原因,卡萊「代理」啓動,並讀取配置文件
  • 這個配置文件只包含工作站ID和路徑首選瀏覽器可執行
  • 的代理詢問用戶名和密碼,驗證通過普通的HTTP服務器(鹽漬哈希值,沒有什麼祕密通過線路),從配置文件
  • 如果認證被授予也發送工作站ID,服務器發送一個配置(例如「port = com1」,「baud = 19200」,...),會話ID和一次性URL
  • 代理啓動瀏覽器,將其指向此一次性URL
  • 然後,代理通過HTTP進入一個長輪詢循環,從而將命令從服務器轉發到串行端口,使用之前獲得的設置(並中繼任何來自打印機的輸入,例如「出紙」)

基本上,這意味着兩個客戶端同時使用同一個會話:瀏覽器和代理 - 一種非常簡單的方法分享信息。實際上,這意味着中繼串行端口和瀏覽器共享一個會話。

我相信,這可以很容易地適應您的使用。因爲歷史原因,代理是用TCL/TK編寫的,因爲那時候這是在Windows(9x,NT和CE系列),OSX和Linux上獲得跨平臺HTTP和串口處理的最簡單方法。它也可以很容易地被打包成一個自包含的.exe(或相應的.app,ELF可執行文件,...)

今天,我會使用C#代理,因爲Mono現在已經不夠好了給你Mac,Linux,Android和iOS

+0

這似乎是一條有趣的路徑。但是,我沒有那麼多的技能,我寧願尋找更簡單的PHP解決方案...... – Yako

+0

沒有任何東西:服務器上的PHP腳本只能控制傳送到客戶端瀏覽器的內容。客戶端的瀏覽器沒有內置的方式直接與LPT硬件進行通信(而代理商有 - 這就是要點) –

相關問題