2011-05-27 15 views
10

मैं वर्तमान में यूएसबी सीरियल पर कमांड भेजने के लिए टर्मिनल में फॉलोइन चला रहा हूं।उद्देश्य-सी सीरियल - मैक ओएस एक्स

/Users/drummerboyx/Library/Scripts/arduino-serial -b 9600 -p /dev/tty.usbserial-A800ev0Z -s 1 

वहाँ ऑब्जेक्टिव-सी में ऐसा करने का कोई तरीका है?

उत्तर

8

कुछ गूगल फू पाया:

मैं इसके बारे में काफी कुछ भी नहीं पता है, लेकिन नाम "IOKit" भी बहुत आशाजनक लगता है ...

+0

बहुत बढ़िया! AMSerialPort सही दिखता है ... धन्यवाद। – objectiveccoder001

1

तुम सिर्फ अपने कोड से कि आदेश चलाना चाहते हैं, तो आप system फ़ंक्शन का उपयोग कर सकते हैं:

#include <stdio.h> 
#include <stdlib.h> 

system("/Users/drummerboyx/Library/Scripts/arduino-serial -b 9600 -p /dev/tty.usbserial-A800ev0Z -s 1"); 

आप .mm है, जो बताता है कि आपके ऑब्जेक्टिव-सी स्रोत कोड फ़ाइल एक्सटेंशन सेट करना होगा एक्सकोडिव-सी ++ के रूप में इसे संकलित करने के लिए एक्सकोड।

1

यदि आप कोको से चिपकना चाहते हैं - NSTask पर एक नज़र डालें।

+0

हाँ, पर वहाँ प्रणाली आदेशों चलने के बिना यह करने के लिए एक तरीका है? – objectiveccoder001

20

ORSSerialPort AMSerialPort के विकल्प का उपयोग करने के लिए एक नया, आसान है।

ORSSerialPort का उपयोग करते हुए एक बंदरगाह खोलने के लिए और भेजने के डेटा इस रूप में सरल किया जा सकता है:

ORSSerialPort *serialPort = [ORSSerialPort serialPortWithPath:@"/dev/cu.KeySerial1"]; 
serialPort.baudRate = [NSNumber numberWithInteger:4800]; 
[serialPort open]; 
[serialPort sendData:someData]; // someData is an NSData object 
[serialPort close]; 
+3

टिप के लिए धन्यवाद, यह एक बहुत साफ पुस्तकालय की तरह दिखता है! –

+1

आपने 'serialPortWithPath: 'के साथ एक टाइपो बनाया है, आपने कहा' serialPortWithWithPath: ', आपने विधि नाम में अतिरिक्त जोड़ा। –

+0

नोट: यदि आप पावरपीसी आधारित मैक का समर्थन करना चाहते हैं, तो आप (दुर्भाग्य से) ORSSerialPort का उपयोग नहीं कर सकते हैं। –