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 Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(1)複素行列を定義して一次方程式や逆行列、行列式などを計算する。(2023.03.24)
- KeysightのADSで位相を±180°に限らずに連続にする関数をよく聞かれるがいつも忘れる…unwrap()だ。PythonのNumPyでもあるので(matlabにもある)いい加減に覚えたい。とりあえずPythonでやってみて記憶する。(2023.03.02)
- 50万人が毎年受ける試験で採用、“謎”のプログラミング言語「DNCL」という記事を見た。大学入試センターで2022年1月に出している仕様(日本語プログラムぽい)と、令和7年度試験の問題作成の方向性,試作問題等で出している仕様(Pythonを日本語にしたっぽい)違うのか…(2023.03.01)
- LC共振回路のモンテカルロシミュレーションでL,Cを一様乱数で振って共振周波数を見る、、、と全然一様じゃない。そりゃそうだ。何を勘違いしてたんだろう…(2023.02.27)
- BingのAIチャット、2変数の連立方程式も解けないし、指摘したら切れられた。WolframAlpha先生を見習ってほしい。いやWolframさんはChatGPTとの融合に可能性を感じているということなので、そのうち計算できるようになるんだろうな。(2023.02.18)
« Scratch(プログラム言語)でGumowski-Mira写像を描いてみる。 | トップページ | え!キリンのスゴ泡グラスってちゃんと流体力学計算して作ってたの?! »
コメント