Mac OS X上的Lazarus / FreePascal上的蓝牙

时间:2009-11-12 08:00:13

标签: delphi macos bluetooth lazarus freepascal

有没有人在Mac OS X上使用Lazarus或FreePascal的蓝牙?有一个蓝牙单元,但它目前只支持Linux。

有关现有单位的资料: http://wiki.freepascal.org/Bluetooth

我计划对此进行增强以支持Mac OS,但很高兴知道是否有人已编写任何代码以在Mac OS上使用BlueTooth以避免重复工作。

另一方面,如果您使用XCode访问蓝牙,您使用了哪些库?我相信通过打开一些蓝牙应用程序,我可以通过XCode分析器发现这一点。

注意:Mac OS X似乎没有使用Linux所具有的BlueZ库,因此我认为解决方案不像更改库路径那么容易。相反,它有IOBluetooth“Framework”,位于/System/Library/Frameworks/IOBluetooth.framework。

看一下,它看起来像:

    kaikei.ocn.ntt.com:IOBluetooth.framework $ file *
    CodeResources: XML  document text
    Headers:       directory
    IOBluetooth:   Mach-O universal binary with 3 architectures
    IOBluetooth (for architecture x86_64):  Mach-O 64-bit dynamically linked shared library x86_64
    IOBluetooth (for architecture i386):    Mach-O dynamically linked shared library i386
    IOBluetooth (for architecture ppc7400): Mach-O dynamically linked shared library ppc
    Resources:     directory
    Versions:      directory

另一方面,我认为如果有人已经这样做了,我可能会在谷歌上找到它......如果我错了,请回复并告诉我。

澄清:我在(f.e. sqlite3)之前为普通共享库创建了绑定,但没有为“框架”创建绑定。如果没有人创建绑定或以其他方式使用FreePascal中的MacOS蓝牙框架,那么一般来说,如何使用FreePascal中的框架函数的建议值得赞赏。 (通常我移植的函数是基于C的,而不是Obj-C,所以我不知道如何在FPK中声明Obj-C方法,虽然我确信如果我继续搜索,我将能够找到一些样本)。

1 个答案:

答案 0 :(得分:3)

已翻译的Mac OS X框架 C 标头的主要svn存储库为http://svn.freepascal.org/svn/macosxintf/trunk

FPC版本会不时与其中托管的最新版本同步。请注意,该存储库中的文件(在MPPInterfaces子目录中)采用通用格式,可以自动转换为FPC,GPC或CodeWarrior Pascal版本。

要生成FPC版本,请使用“make fpcpinterfaces”,并在Build / FPCPinterfaces文件夹中查找结果。

要翻译新标题,请在macosxintf存储库的已检出副本中执行以下操作: ./Scripts/Convert.pl /System/Library/Frameworks/IOBluetooth.framework/Headers/IOBluetooth.h FORCE MPPInterfaces

之后,您仍然需要编辑生成的文件以添加/删除单位并清理其他一些未由自动翻译过程处理的内容。完成后,您可能需要在bugs.freepascal.org上提交已完成单元的错误报告。

(注意:因为我没有注册,我只能在每个帖子中添加一个网址,所以下一个网址会因为限制而有点受损)

您还可以订阅Mac Pascal列表(lists.sonic.net/mailman/listinfo/mac-pascal)并询问是否有人已经翻译了这些标题。

蓝牙框架确实还包含一些Objective-C标头。 Objective-Pascal支持仅适用于最新的FPC svn版本,如FPC wiki(google FPC_PasCocoa)所述。您需要此支持才能与Objective-C进行交互。

翻译Objective-C可能最容易使用FPC svn中的其他地方的脚本(svn.freepascal.org/svn/fpc/trunk/packages/cocoaint/utils /)

您可能希望在上述Mac Pascal列表中寻求帮助,因为所有维护上述翻译和翻译工具的人都在那里订阅。