2011-05-27 17 views
10

estoy actualmente en ejecución la siguientes caracteres en la terminal para enviar un comando de más de serie USB.Objective-C de serie - Mac OS X

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

¿Hay alguna manera de hacer esto en Objective-C?

Respuesta

1

Si lo que desea es ejecutar ese comando desde el código, puede utilizar la función system:

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

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

Tendrá que ajustar su extensión de archivo de código fuente de Objective-C para .MM, que dice Xcode para compilarlo como Objective-C++.

1

Si usted quiere meter a Cacao - Tenga una mirada en NSTask.

+0

Sí, pero hay una manera de hacer esto sin ejecutar comandos del sistema? – objectiveccoder001

20

ORSSerialPort es una nueva, más fácil de usar alternativa a AMSerialPort.

Usando ORSSerialPort abrir un puerto y enviar datos pueden ser tan simple como esto:

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

Gracias por el consejo, parece una biblioteca mucho más limpia. –

+1

Hiciste un error tipográfico con 'serialPortWithPath:', dijiste 'serialPortWithWithPath:', agregaste un extra en el nombre del método. –

+0

Nota: Si desea admitir Mac basadas en PowerPC, (desafortunadamente) no puede usar ORSSerialPort. –