将数据从C ++类传递到Xcode中的Objective-C类

时间:2012-12-23 06:41:50

标签: c++ objective-c arduino

我是Arduino的新手,我遇到的一件事就是这个名为Embedxcode的酷工具,它基本上允许你从Xcode编译和运行Arduino上的草图而不是普通的Arduino编译器。

我使用它的原因是因为我希望用户能够在Arduino上做某事(即按下按钮)并且计算机响应(即调用Objective-C中的某些功能)。因为据我所知你不能从Arduino编译器那里做到这一点,所以我决定使用Xcode,因为它可以编译Objective-C并使用OSX SDK。

我使用了Embedxcode(Arduino代码编译并上传到主板上),但我无法使Objective-C正常工作。就像在,我无法创建一个新的Objective-C类来传递数据,而没有Xcode给我带来错误(并且没有,将C ++文件重命名为.mm不起作用)。

有人知道如何解决这个问题吗?或者有更好的方法让Arduino直接与OSX事件交互吗?

2 个答案:

答案 0 :(得分:1)

embedXcode允许使用Xcode IDE进行嵌入式开发,但这不包括OS X SDK或OS X构建工具链。您仍在使用AVR工具链,但前面有Xcode来管理项目。话虽这么说,你只限于avr-gcc和avr-g ++,没有Objective-C。可以在C ++和Objective-C类之间传递数据,但不能在您引用的上下文中传递数据。

编辑:如果你真的想使用Objective-C和Arduino,我建议研究avr-gcc和Objective-C。根据{{​​3}},支持Objective-C。虽然这项工作需要远离舒适的Arduino工作区。

答案 1 :(得分:0)

好像你误解了Arduino和微控制器< - > PC关系。 Arduino(和任何微控制器)都是一台小型独立计算机,运行着自己的小型操作系统。因此,您的问题是:如何让一台计算机与另一台计算机通信。

IDE(XCode,Arduino环境等)与此无关。这些只是编写和编译代码,并将其上传到Arduino处理器的工具。

要连接任何两台计算机,您有两种选择:通过电线或通过无线电波。有线选项最容易实现和理解。这里有两个选项,直接USB连接和以太网。 USB是最容易实现和理解的,并且准系统Arduino能够做到这一点。以太网需要额外的硬件。

无线选项包括蓝牙,WiFi,XBee收音机。这些工作良好但实现起来很复杂,需要额外的硬件。

所以...我建议你从USB开始。有很多教程。在OSX方面,您需要编写一些软件来与Arduino进行通信。这可以是用ObjectiveC或Java(例如使用Processing)或Python或任何数量的其他编程语言编写的应用程序。我建议处理,因为有很多Arduino< - >在网上处理教程。

查找教程的主要搜索字词:Arduino serial port Processing