2016年2月13日土曜日

MAC で IC-R6 を編集 ( LT-R6 を MAC OS X に乗せる)

 オークションでMAC mini を入手した。A1176という2006年頃のモデルで、OS X 10.7 Lion迄しかアップグレードできない。一方JAVA8を動かすにはLion以上が必要であり、即ちこれはLT-R6を動かせる最も古い機種でもある。Core2Duo(64bit)1.83GHz、2GB RAM/HDD 80GB、まあ遊ぶには丁度良い。本体より純正Lionの方が高かった。

 早速JAVA8を入れて LT-R6を起動してみると立ち上がったがCI-Vはうまく行かない。そもそもjSSCをどこに入れたら良いのだろう。JAVAの在処はappletというフォルダを指しているがそこは違うだろう。外見はMacだけど中身はUNIX、しかしUNIXベースになる前のOS 9までしかさわった事がないのでどこをどういじってあるのか分からない。アプリの起動の仕方もUNIX流とは少し違うみたいだし、ここら辺から調べる必要があるだろう。

  OS XのJAVAは一筋縄では行かない。Appleが提供してきた10.6迄とOracleがサポートする10.7以降の間に断絶があり流儀が異なるようだ。どうもJAVA6が裏でうごめいていて除霊が効かない。
 UNIXもどきのOS Xと相まってJAVA8-JREを単にインストールしても有機的に機能しないのだ。


 また、AppleのツールやDeveloperサイトに書いてある内容はどうも10.6迄の事で最近のJAVAには当てはまらないようだ。NET の情報も混乱している。10.7で使えるツールも手に入らなくなっており、動かし方も結局自分で見つけ出すしかないが、それが10.10に当てはまる保証 もない。
 Appleはユーザフレンドリーだが開発者泣かせという言葉が理解できた。iTunesと同様どんどん更新されていて、最新の物しか相手にされていないようだ。

 OS Xにはパッケージやヘルパーツールという聞き慣れないメカニズムもあるらしい。

 あと、USB-Serial インターフェイスのドライバーが入っておらず認識されない。これはFTDI社のWEBからダウンロードしてインストールする事で解決した。

 ここまで来て、LT-R6はコマンドラインで起動して動くようになった。アクティブモニターやダウンロードもOKだ。JAVAは中途半端にしかインストール出来ていないのに。

起動してみるとTABの付け方が他のOSと違い使いにくそう。


 しかしMac OS Xは曲者だ。どんな名前でログインしてもホームは/Users/Userという名前になる。知らないカラクリもありそうだし、~/Libraryに代表される隠しフォルダも結構ありそうだ。ソフトをどういう配置にしたら良いのか・・・。

 その後、色々調べたらバンドル(Bundle)というメカニズムがあり、これを使うと普通のMacアプリみたいに機能させることができるようだ。昔のMacOSにあったリソースフォークの代わりとなるらしいResourcesというフォルダもある。一方、アイコンを作る手間も必要。

 開発にはxcodeという開発環境もインストールする必要があるがバージョンアップが激しいようで、追加ツールが入手できない、ネットの情報が役に立たない事も多い。

 その後アイコンも作って、とりあえずドキュメントのダブルクリックやアプリへのドロップで起動出来るところまできたが、OpenDocumentの起動イベントを取り込めない。つまり起動は出来るが、それと同時にファイルを読み込むことができない。即ち起動パラメータでファイル名を渡せないのだ。もう少し調べてみよう。

 とりあえず、3月6日に出来た分をこちらで公開しました・・・先は長そうなので。

 その後の情報はこちら



 




2016年2月12日金曜日

Raspberry Piで IC-R6 を編集 ( LT-R6 を Linux に乗せる)


 LT-R6をLinuxに乗せるべく Raspberry Pi  2 を購入した。
 たばこ箱大の小さなコンピュータであるが、思っていた以上に小さい。仕様を見るとこれでも 4-Core 900MHz、1GB RAM と本格的である。SDカードにメモリーイメージを書き込みPiにセットしてディスプレイ、キーボード、マウスを繋いで電源ON、これで立ち上がる。

 JAVAをインストールし、SDカードでLT-R6をコピーして起動したら、少しの修正でちゃんと動いた。JAVAの強みだね。
 動きが重たいのはご愛敬。

 Raspbian(Raspberry Pi 版Debian-Linux)は秋月のUSBシリアル変換モジュール(FTDI社のチップを使用)を認識しシリアルポートを開いてくれる。jSSCライブラリーを入れてCI-V通信も大丈夫だった。
 またUSB-シリアル変換ケーブルを使わなくてもRaspberry Piはシリアルポートを持っているので、これを使って直接CI-V通信も可能だろう(そのうち結果をレポートします)。


 立ち上がりでCI-Vがもたつく事もあるが、その後はダウンロードもOK。そのファイルをWindowsに移しCS-R6に読ませてみてみたら、改行コードが違うのにCS-R6は読み込むことができた。
 ただ、日本語文字コードには問題があるかもしれない。

 しかしNetの情報では開発環境(eclipse)を入れても重たくて使えなそうだが、どうする。


 その後・・・
 何と、もう Raspberry Pi 3 が発売されたとか。値段はPi 2 と同じ。おまけにCPUが64bitで能力も高く、Wi-Fi とか Bluetooth も内蔵なのは素晴らしい。一方電源が2A以上の大飯喰らい。
 ちょっと心配なのはmicroUSBソケットで電源を供給すること。あのコネクタで2Aはきつい。電源の供給方法を変えた方が良いと思うのは私だけだろうか。

その後・・・
 jSSCライブラリーを扱いやすい場所に置けないか、あれこれ試したんだけどうまく行かない。 色々調べた結果JAVA-VMの仕様では-jarオプションがあるとCLASSPATH環境変数や-classpathオプションを全て無視する事が分かった。
 そうと分かればやることは簡単。-jarを止めて全て-classpathにしてやれば良いし、その場合mainのクラスを別途指定すればよい。これを組み込んで配布しよう。


2016年2月1日月曜日

ICOM IC-R6受信機の設定データ編集用ソフト(LT-R6)のフェイスリフト検討

Windows専用と考えていたLT-R6だが、何気なくRXTXライブラリーの説明を見ていたらMacでもLinuxでもARMでも動くではないか。
だったらLT-R6もそれらのプラットホームで動くハズ。

ただ、実際には幾つかの問題がある。例えばプログラム中でRXTXファイルの存在を確認しているが プラットホームが違えば当然場所が異なるし、ファイル名が同じ保証もない。またDrag&Dropのメカニズムも異なるだろうし、回避しているバグの出方も違うかもしれない。
USB-Serial 変換チップに対応したドライバーが入手出来るだろうか?こればっかりは情報がなくて自分では全く手が出せない。
あと、起動パラメータを格納している起動用のバッチファイルがshスクリプトで書き換えられるか?或いはconfigファイルを使う方式に変えるか。

そして最も大きい問題は、MacやLinuxを持っていないのでテスト出来ないこと。
LinuxはRaspberry Piが入手し易そうだから、これに乗せてみるか。或いは古いPCに乗せてみるか。Macはどうしよう。

さらに探ってみると、更新が止まっているうえにバグで評判の悪いRXTXライブラリーの代わりにjSSCと言うのがあるらしい。JAVAのソースコードが付いていて、WindowsやLinux、Mac、Raspberry Piに対応しておりNativeの部分を含めてJAR化されているので扱いやすそう。次のLT-R6はこれを使ってみるか。ただ、RXTXとjSSCではクラスの互換性が無いので書き換えが多くなりそう。

その後・・・
LT-R6を jSSCを使うように書き換えて、基本的な動作が出来る事を確認出来た。
次のステップとして、jSSCの存在確認や、MACやUNIX上でも動かせるよう.BATをどう置き換えるか等4点を検討中(2/7)。またテスト用のプラットホームの入手を検討中。

その後・・・
中古MAC(OS X Lion)とRaspberry-Piを入手。それらに最新版JAVAをインストール後LT-R6を起動してみた。LT-R6は立ち上がり編集機能を使うことが出来たがCI-Vは動かなかった。さあ、これからボチボチ取り組んでいくか(2/11)。