问题标签 [orsserialport]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
878 浏览

objective-c - ORSSerialPort 等待回复

我正在使用 ORSSerialPort (Objective C) 向 Arduino 发送指令。问题是我发送的指令太多,arduino 无法立即处理并溢出其缓冲区(据我所知)。我最初只是在每条指令之后添加延迟,以便它可以处理它,但我想在它处理完每条指令后收到它的响应,以便我知道它已为下一条指令做好准备。

然而,来自 arduino 的回复消息必须由 ORSSerialPortDelegate 接收,这意味着它不会阻止我的主循环继续向 arduino 发送更多指令。

让这样的事情发挥作用的最佳方法是什么?我猜以下代码必须位于与主线程不同的线程中,这样它就不会阻塞主线程,但我希望 updateItems 循环被阻塞,直到它收到继续更新项目的信号。

0 投票
1 回答
78 浏览

cocoa - 主窗口在 Snow Leopard 上无法正常运行

我在 Mountain Lion 上使用 Xcode 4.5 开发的应用程序可以在 Lion 和 ML 上完美运行。

我的雪豹测试仪报告说,当应用程序启动时,它被禁用。他的意思是没有任何控件处于活动状态,红色、黄色、绿色的“交通灯”变灰。如果打开了覆盖我的应用程序的另一个应用程序,则在移动覆盖应用程序时,它所覆盖的任何控件或控件的一部分都不存在。

菜单栏是响应式的,我的首选项面板有效。该应用程序可以从菜单关闭,我不知道它是否可以从键盘关闭。

另一个使用相同序列号的应用程序可以正常工作。

我需要帮助制定解决方案。我不知道如何追踪这个。

0 投票
1 回答
729 浏览

objective-c - 使用 ORSSerialPort / Xcode 进行串行读取

我正在尝试使用 ORSSerialPort 库读取 XCode Cocoa 应用程序中的串行端口。我可以打开串行端口并开始读取数据的一切正常,但是在读取数据时格式出现故障:

当我运行演示代码时,它工作得很好,读数看起来像这样(X,Y 值):

1,0
2,999
3,1999
4,3000
5,4000
6,5001

但是,当运行我的应用程序时,读数显示如下(使用 NSLog):

2013-08-06 19:53:59.649 TestApp[87361:303] 数据:1,0
2013-08-06 19:54:00.649 TestApp[87361:303] 数据:2,999
2013-08-06 19:54:00.653 TestApp[87361:303] 数据:
2013-08-06 19:54:01.652 TestApp[87361:303] 数据:3,1999
2013-08-06 19:54:02.651 TestApp[87361:303] 数据:4,3000
2013-08-06 19:54:03.651 TestApp[87361:303] 数据:5,400
2013-08-06 19:54:03.655 TestApp[87361:303] 数据:0
2013-08-06 19:54:04.654 TestApp[ 87361:303] 数据:6,5001

注意第3条日志是空白的,第6条日志不完整,第7条日志应该是第6条日志的结尾。似乎发送了随机返回字符,但我不知道是什么原因造成的。我还没有注意到格式如何/何时变坏的模式。

0 投票
1 回答
639 浏览

objective-c - 为什么 ORSSerialPort serialPort:didReceiveData NSData 只有单字节?

在我的 Arduino 中,我正在使用 Serial.print("blah") 将多字节数据写入串行,但在 Objective-C 中,-serialPort:didReceiveData:(由 ORSSerialPort 提供)一次只能获取 1 个字节的数据。有时,它会一次抓取 2 个字节,但绝不会全部抓取 4 个字节。这是预期的吗?如果是这样,我怎样才能让它一次接收所有 4 个字节?

阿杜诺:

对象-C:

在这个方法中设置一个断点表明data它只保存 1 个字节。

0 投票
0 回答
174 浏览

macos - ORSSerialPort -- 在 XCode 中调试冻结

我正在编写一个使用 USB 到 RS232 DB-9 串行加密狗和 Prolific PL2303HX 驱动程序 (v.1.5.1) 的应用程序。我正在以 9600 波特率连接到设备,负载为 40 字节 @ 10Hz。数据通常每秒变化一次;在我的应用程序中,我每秒都会使用更新的数据字典触发 NSNotification。我绝不会向设备发送数据。

它运行得很好......除了在 OS 10.9.1 下尝试在 XCode 5.0.2 中调试时。如果我在断点处暂停任意时间(通常为 3-5 秒),我的 USB 键盘和鼠标将完全冻结。物理连接和重新连接无济于事。我必须将 VNC 连接到我的机器并远程退出 XCode,此时我可以重新获得 KB/鼠标控制权。

检查 USB 加密狗上的文档,它有一个 256 字节的 i/o 缓冲区。调试时这可能会变得满/溢出,这会以某种方式导致驱动程序和/或 XCode 冻结。

我认为一种解决方案是始终ORSSerialPort在备用线程上进行我的设置/读取/拆卸,但我不确定这是否能解决我的调试问题。

任何想法如何缓解这个问题?

0 投票
2 回答
855 浏览

objective-c - 使用 ORSSerialPort 的 arduino/mac 通信问题

我正在尝试通过 USB 将一个三位数的数字从 XCode 基础命令行工具发送到 arduino,作为发送数据流的概念证明。arduino 代码应该按照传入数据中的数字闪烁的次数闪烁。使用 arduino IDE 中的串行监视器可以完美运行,但是当我尝试使用使用 ORSSerialPort 的 Objective-C 程序时,arduino 上的 Rx 灯闪烁,表示它已接收到数据,但没有其他任何反应。

这是Objective-C代码:

这是arduino代码:

0 投票
2 回答
99 浏览

objective-c - Cocoa 用户界面加载问题

我是目标 C 的菜鸟,所以如果我没有使用正确的术语来描述我的问题,我很抱歉,但我需要帮助,所以这是我最少的资源!

我正在尝试将 Arduino 天平与我的 mac 与目标 C 软件接口,其中我有一个 Nib 文件和一个控制器:为此,我使用运行正常的 ORSSerialPort。

在加载用户界面后,我在加载 NSCombobox(使用户能够选择串行端口的那个)时遇到了一些问题:在我的控制器类中,我有一个名为“InitializeView”的方法,它调用此方法:

问题是,如果我在控制器对象的 init 方法中调用此方法,这将不起作用,并且组合框项列表仍然为空:请注意控制器是由 Interface Builder 实例化的。

我试图将上述方法链接到一个按钮并且它可以工作,所以这似乎是加载优先级的问题,似乎我要在加载 ui 对象或让它们准备好工作之前调用该方法.. .或者也许是别的东西,但我不知道是什么。

有人能帮我吗?

0 投票
1 回答
629 浏览

objective-c - Swift - 在 Objective-C 类中访问 NSArray

晚上好,

我目前正在尝试使用 ORSSerialPort Objective-C 库在 Swift 中生成所有可用串行端口的列表。当前代码如下,这只是生成包含可用端口的 NSArray。

目前,当我在以下位置插入断点时:

当我通过调试窗口 ( http://imgur.com/NcXnJig ) 工作时,我看到我可以找到我正在寻找的路径,在本例中为“/dev/cu.Bluetooth-Modem”。但是,此信息似乎隐藏在 _path 后面,它应该是 ORSSerialPortManager 类的变量,但我在源文件中找不到它。显然信息就在那里,但是我如何在我的 Swift 函数中获得它呢?

0 投票
1 回答
869 浏览

objective-c - 使用 Objective-C 工厂方法在 Swift 中创建对象会导致编译器错误

我正在尝试使用ORSSerialportObjective-C 串行库启动串行连接。我已经成功地使用它来查找所有串行端口,但在打开连接时遇到问题。

该文档显示了端口的打开,如下所示:

我写了以下内容:

但是,Xcode 不会自动完成我的方法,也不会编译。给我错误“serialPortWithPath 不是 ORSSerialport 的成员类型”。我已经正确设置了桥接头,并且我已经在同一个库中使用了另一个类,其语法相似,没有任何问题。这里发生了什么?

0 投票
1 回答
1107 浏览

macos - 为什么 ORSSerialPort 接收委托在我的 Swift 项目中不起作用

我有一个简单的 SerialController 类:

以及用于向 FT232 适配器发送数据的简单代码

FT232 的 RX 和 TX 引脚连接在一起,我想接收数据的回波。我可以连接到我的适配器,并且 SendString 方法正确地将数据发送到 FT232 但接收不起作用!。在 cocoaDemo 中我测试了我的 FT232,我可以得到正确的响应。我能做些什么?