PHP

2012-07-27 12 views
5

के माध्यम से एक्सेस सीरियल पोर्ट मैंने PHP के साथ एक सीरियल पोर्ट तक पहुंचने के साथ खेलने की कोशिश की, लेकिन इसमें बहुत भाग्य नहीं था।PHP

मैंने fsockopen, fopen, proc_open, आदि का उपयोग करने का प्रयास किया है। मैं सॉकेट को पढ़ या लिख ​​नहीं सकता।

उदाहरण:

$fp = fopen("/dev/ttyUSB0", "w+"); 
fwrite("enable"); 
echo fread($fp, 1024); 
+1

उपयोगकर्ता स्क्रिप्ट पर कार्य करता है कि डिवाइस पर लिखने perms है? 'ls -l/dev/ttyUSB0' –

+0

यदि आप एक यूयूसीपी पैकेज स्थापित करते हैं, तो क्या' cu/dev/ttyUSB0' या 'tip/dev/ttyUSB0' अपेक्षित कार्य करता है? ('स्क्रीन' सीरियल चीजें भी कर सकती है, अगर आपके पास यूयूसीपी तक आसान पहुंच नहीं है ...) – sarnold

+1

मैंने php में एक सीरियल पोर्ट एक्सेस किया है, लेकिन क्या आप अपने बॉड, समानता, स्टॉपबिट इत्यादि को सेट नहीं करना चाहिए। । किसी न किसी तरह? – hackattack

उत्तर

3

मैं अतीत में इस कई बार आई है। एक बार सिस्को 2811 के लिए प्रबंधन इंटरफ़ेस बना रहा था। यह आपके लिए काम कर सकता है, हालांकि मुझे आपके आईओएस संस्करण के बारे में निश्चित नहीं है (सिस्को को आपके fwrite(); कंसोल के माध्यम से मानते हुए)।

देखें कि आपके उपयोगकर्ता के पास डिवाइस पर पहले पहुंच है या नहीं। आसानी से, यह screen /dev/ttyUSB0 के साथ किया जा सकता है। अलग करने के लिए अपने आदेश चलाएं, ctrl+a दबाएं, फिर d दबाएं।

मैं आमतौर पर इस तरह के कुछ के लिए stream_* परिवार का उपयोग करता हूं।

यहाँ एक उदाहरण है:

$stream = stream_socket_client("udg:///dev/ttyUSB0", $errno, $errstr, 30); 
fwrite($stream, "enable"); 

while(true){ 
    $line = stream_get_contents($stream); 
    if($line == 'exit'){ 
     break; 
    } 
} 

डिफ़ॉल्ट रूप से, मोड को रोकने में stream_socket_client शुरू होता है, तो आप मैन्युअल रूप से यह टॉगल की जरूरत नहीं है।

यदि आप एक्सटेंशन को स्थापित करने में कोई ध्यान नहीं रखते हैं तो आप एक और चीज कर सकते हैं DirectIO एक्सटेंशन। इसमें बॉड दर और सभी उपहारों को सेट करने की अनुमति देने के लिए फ़ंक्शन हैं, example here

तुम भी इस परियोजना पर एक नज़र ले जा सकते हैं: http://code.google.com/p/php-serial/source/browse/trunk/

+0

डायरेक्टियो वह मार्ग है जिसे मैं ले जा रहा हूं। धन्यवाद! –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^