私は Windows と OS X 用のシリアル ポート アクセス コードを書きましたが、OS X では DTR を低くしてポートを開く方法をまだ見つけていません。(私は Arduino のリセットを回避しようとしています。) 問題を示す C コードの最も単純なバージョンを次に示します。
const char *pathname = "/dev/tty.usbmodem411";
….
int main()
{
int fd;
int status;
printf(" STARTING SERIAL PORT PROGRAM \n");
fd = open(pathname, O_RDWR | O_NOCTTY | O_NDELAY);
if (fd != -1) printf(" port successfully opened, fd = %d\n",fd) ;
else
{
printf(" could not open port\n");
return;
}
printf("closing port and quitting app\n");
if (fd !=-1) close(fd);
return 0;
}
役立つ他の open() フラグは見つかりませんでした。ioctl() を介してポートを開いた後、DTR を低く設定することはできますが、Arduino が open() でリセットされるため、これは役に立ちません。
open() 中に DTR を低く保つ方法を知っている人はいますか? これは USB ドライバの機能でしょうか?