10

I'm currently running the followin in Terminal to send a command over USB serial.

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

Is there a way to do this in Objective-C?

Peter Mortensen
  • 30,030
  • 21
  • 100
  • 124
objectiveccoder001
  • 2,969
  • 10
  • 44
  • 71

4 Answers4

21

ORSSerialPort is a newer, easier to use alternative to AMSerialPort.

Using ORSSerialPort to open a port and send data can be as simple as this:

ORSSerialPort *serialPort = [ORSSerialPort serialPortWithPath:@"/dev/cu.KeySerial1"];
serialPort.baudRate = [NSNumber numberWithInteger:4800];
[serialPort open];
[serialPort sendData:someData]; // someData is an NSData object
[serialPort close];
danVnest
  • 949
  • 10
  • 11
8

Some google-fu found:

I know pretty much nothing about it, but the name "IOKit" also sounds pretty promising...

Dave DeLong
  • 241,045
  • 58
  • 447
  • 497
1

If you just want to run that command from your code, you can use the system function:

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

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

You'll need to set your Objective-C source code file extension to .mm, which tells Xcode to compile it as Objective-C++.

Julio Gorgé
  • 10,018
  • 2
  • 44
  • 60
1

If you want to stick to Cocoa - Have a look at NSTask.

Abizern
  • 138,728
  • 38
  • 201
  • 254