Mac OS X (Xcode, cocoa)でFTDIのICおよびD2XXを使う(備忘録というか、、、)
仕事は全くプログラムとは関係ないが、ちょっとした制御や計算プログラムは皆が忙しいときにサービスで作ったりする。たまにはマネージメントだけじゃないぞ!と見せておかないと・・・
で、制御にFTDIの製品http://www.ftdichip.com/のBitbangモードを使うことがある。
Windowsで動かす時はD2XX Direct Driverをダウンロードして何も考えずに動かせるのだが、、、
http://www.ftdichip.com/Drivers/D2XX.htm
最近、Macで動くものを作ってほしいという話が出た。(こんな要求を出す会社はもちろんあれですが)
私もMacbookをサブマシンで使いだしてから日が浅いが、FTDIはちゃんとMac OS X用のドライバーを用意してくれていたので、とりあえずそのサンプルプログラムにあった動作をコピペして、コマンドラインでC言語で動くやつはすぐにできた。
・・・ところが、ちゃんとXcode使ってCocoaアプリを作ってボタンとかいろいろ並べよう、、、と思ったら全く最初動かなかった。
その時に陥った罠をいろいろ書いていく。おそらく、もっと詳しい人はいるはずだが、ちょっとググっただけではコマンドラインで動かすのは皆やってるけれど、cocoaで動かしたという話が少ない。というか↓これしか参考にならなかった、、、https://discussions.apple.com/thread/1448258?start=0&tstart=0
私がXcodeわかってないだけだと思うが、、、
その1.ftd2xx.hとWinTypes.hが置いてある場所!
これは罠でも何でもなくて私がうっかりしていただけ。ドライバを解凍して、トップにあるものを使ったらとんでもない数のエラーが、、、これはWindows用だった。本物は、Samplesの下にあるやつ。なんでこんなところに置いてるんだ、、、
その2.Boolの定義が引っかかる!
FTDIはWinTypes.hで typedef unsigned int BOOL; として定義されているが
Objective-Cではsigned char.
まずはFTDIの方をコメントアウトしたら動いた。
でもちょっと気持ち悪いので、、、次にFTDIの方の定義を、BOOLftdiとか名前変えて、BOOLが出てくるものを全部置換した。
が、最初は/usr/local/includeから探すようにしていたが、C言語でコマンドラインでは使えてるから書き変えたくないなあ、と思ってプロジェクトにコピーして書き変えた。
その3.ライブラリはどこから探してリンクするのか?
これも私が知らないだけと思うが、buildのオプションでサーチパスを/usr/local/lib
としてから、リンクのオプションで 直接-lftd2xxとやってみたらとりあえず動いた。
もっと普通にリンクできないのか、と思ったら別のオプションでリンクするライブラリを指定するところがあったので、libftd2xx.dylibを入力しても動いた。
---というのをWindows7で思い出しながら書いているという不自然さ…
« Scratch(プログラム言語)でGumowski-Mira写像を描いてみる。 | トップページ | え!キリンのスゴ泡グラスってちゃんと流体力学計算して作ってたの?! »
「パソコン・インターネット」カテゴリの記事
- Visual Studio 2026がリリースされたので早速新しいPCにインストール。全面的にGitHub Copilotを使うようになっている。とりあえずC#でMath.NET numericsを使って連立方程式を計算するコードを書いてもらったら一発で動く。他の例として固有値や非線形計算もコードを出してくれた。(2025.11.14)
- 家で使うPCをゲーミングノートPC、ASUS TUF Gaming A16に買い替えた。CPUはAMD Ryzen 9 8940HX、メモリ32GB、GPUはNVIDIA GeForce RTX 5060 Laptop GPU、SSD 1TB。ゲームをしたいわけでなくてNVIDIAの最新GPUで機械学習・数値計算やろうかと。(2025.11.13)
- RF Weekly Digest (Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ) 2025/11/3-2025/11/9(2025.11.09)
- RF Weekly Digest (Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ) 2025/10/27-2025/11/3(2025.11.04)
- Google AI StudioのBuild(アプリを作る機能)で高周波・RFニュースを1週間分まとめるアプリを作った(最終版) 私がいつも調査しているサイト67個を全部入れて調べてもらうようにした。これでとりあえず完成かな。QorvoとSkyworksの合併も拾ってくれた。(2025.10.30)
« Scratch(プログラム言語)でGumowski-Mira写像を描いてみる。 | トップページ | え!キリンのスゴ泡グラスってちゃんと流体力学計算して作ってたの?! »


コメント