3 Stimmen

Bluetooth unter Lazarus/FreePascal unter Mac OS X

Hat jemand Bluetooth auf Mac OS X mit Lazarus oder FreePascal benutzt? Es gibt eine Bluetooth-Einheit, aber sie unterstützt derzeit nur Linux.

Informationen über die vorhandene Einheit: http://wiki.freepascal.org/Bluetooth

Ich plane, dies zu erweitern, um Mac OS zu unterstützen, aber es wäre schön zu wissen, ob jemand einen Code geschrieben hat, um BlueTooth auf Mac OS bereits zu verwenden, um doppelte Arbeit zu vermeiden.

Andererseits, wenn Sie XCode für den Zugriff auf Bluetooth verwendet haben, welche Bibliotheken haben Sie verwendet? Ich bin sicher, dass ich dies mit dem XCode-Profiler herausfinden kann, indem ich einige Bluetooth-Anwendungen öffne.

Hinweis: Mac OS X scheint nicht die BlueZ-Bibliothek zu verwenden, die Linux hat, daher glaube ich nicht, dass die Lösung so einfach ist wie die Änderung des Bibliothekspfads. Stattdessen gibt es IOBluetooth "Framework", das sich unter /System/Library/Frameworks/IOBluetooth.framework befindet.

Wenn ich mir das ansehe, sieht es so aus:

    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

Andererseits denke ich, wenn jemand dies bereits getan hätte, würde ich es wahrscheinlich auf Google.... finden können. Falls ich mich irren sollte, antworten Sie bitte und lassen Sie es mich wissen.

Klarstellung: Ich habe schon Bindungen für normale Shared Libraries erstellt (z.B. sqlite3), aber nicht für ein "Framework". Wenn niemand Bindungen erstellt oder anderweitig das MacOS-Bluetooth-Framework von FreePascal aus verwendet hat, wäre ich für Hinweise dankbar, wie man Framework-Funktionen von FreePascal aus im Allgemeinen verwenden kann. (Und normalerweise sind die Funktionen, die ich portiere, C-basiert, nicht Obj-C, so dass ich nicht sicher bin, wie man Obj-C-Methoden in FPK deklariert, obwohl ich sicher bin, dass ich in der Lage sein werde, einige Beispiele zu finden, wenn ich weiter suche).

3voto

Jonas Maebe Punkte 31

Das wichtigste svn-Repository für übersetzte Mac OS X-Frameworks C Kopfzeilen ist http://svn.freepascal.org/svn/macosxintf/trunk

Von Zeit zu Zeit werden die FPC-Versionen mit den neuesten dort gehosteten Versionen synchronisiert. Beachten Sie, dass die Dateien in diesem Repository (im Unterverzeichnis MPPInterfaces) in einem generischen Format vorliegen, das automatisch entweder in FPC-, GPC- oder CodeWarrior Pascal-Versionen übersetzt werden kann.

Um die FPC-Versionen zu erzeugen, verwenden Sie "make fpcpinterfaces", und finden Sie die Ergebnisse im Ordner Build/FPCPinterfaces.

Um neue Kopfzeilen zu übersetzen, führen Sie etwas wie dieses aus einer ausgecheckten Kopie des macosxintf-Repositorys aus:   ./Scripts/Convert.pl /System/Library/Frameworks/IOBluetooth.framework/Headers/IOBluetooth.h FORCE MPPInterfaces

Danach müssen Sie die resultierende Datei noch bearbeiten, um Einheiten hinzuzufügen/zu entfernen und einige andere Dinge zu bereinigen, die nicht vom automatischen Übersetzungsprozess behandelt werden. Sobald Sie fertig sind, können Sie einen Fehlerbericht bei bugs.freepascal.org mit den fertigen Einheiten einreichen.

(Anmerkung: da ich nicht registriert bin, kann ich nur eine URL pro Beitrag eingeben, daher sind die nächsten URLs etwas verstümmelt, um diese Einschränkung zu umgehen)

Sie können auch die Mac-Pascal-Liste abonnieren (lists.sonic.net/mailman/listinfo/mac-pascal) und dort fragen, ob jemand diese Header bereits übersetzt hat.

Das Bluetooth-Framework enthält in der Tat auch einige Objective-C-Header. Objective-Pascal-Unterstützung ist nur in den neuesten FPC svn-Versionen verfügbar, wie im FPC-Wiki beschrieben (google FPC_PasCocoa). Sie benötigen diese Unterstützung, um mit Objective-C zu kommunizieren.

Das Übersetzen von Objective-C ist wahrscheinlich am einfachsten, wenn man das Skript im svn von FPC benutzt (svn.freepascal.org/svn/fpc/trunk/packages/cocoaint/utils/)

Sie können auf der oben erwähnten Mac Pascal Liste um Hilfe bitten, da alle Personen, die die oben erwähnten Übersetzungen und Übersetzungswerkzeuge pflegen, dort angemeldet sind.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X