Objective-C中的串行通信错误:资源繁忙

时间:2012-01-09 02:13:49

标签: objective-c c serial-port serial-communication

我正在编写一些代码,其目的是读取心电图发送的值。 ECG通过串行连接发送由其传感器读取的值,并且(作为开始)所有程序必须读取输入并在文本视图中显示它。

然而,我遇到了障碍,似乎无法解决以下两个问题:

我尝试连接心电图很多时候出现以下错误:无法打开/dev/tty.usbserial.A700eLwM - :资源忙。 该端口未被任何其他应用程序使用,但ECG正在发送号码。 我可以以某种方式告诉操作系统无论发生什么,无论谁使用该端口,我都想完全控制端口?

我的代码如下:

fd = open("/dev/tty.usbserial-A700eLwM", O_RDWR | O_NOCTTY | O_NDELAY);

[textView insertText:[NSString stringWithFormat:@"Port status: %f\n", fd]];

if (fd == -1)
{
    /*
     * Could not open the port.
     */

    perror("open_port: Unable to open /dev/tty.usbserial.A700eLwM - ");

}
    else {
    fcntl(fd, F_SETFL, 0);
}

我的第二个问题是我不太明白如何将读取缓冲到字符串或整数变量并将其发送到文本视图。

任何帮助将不胜感激

提前致谢

1 个答案:

答案 0 :(得分:0)

最可能的原因是您已在网络偏好设置中将串行端口激活为网络设备。如果它列在那里,选择它并使用齿轮菜单项“标记为非活动”。

对于您的第二个问题,网站上还有很多其他匹配问题,请搜索它。