2012-02-09
eclipseで設定をインポート・エクスポートする
eclipseの素晴らしい点の一つに、emacsキーバインドをサポートしているということがあります。
Eclipse->PreferencesからGeneral->Keys
でSchemeをEclipseに変更すればあっという間に変更できます。素晴らしい。
落とし穴
emacsキーバインドにするといくつか使いづらいところもあるのでいくつか変えたりしますが
ごくたまに、eclipseのemacsキーバインドを確かめたくて、元に戻したいと思うことがあります。
このとき、"Restore Default"は絶対にやってはいけない!
これは、emacsキーバインドのデフォルト、に戻すのではなくて、すべてのキーバインドを"Default"のSchemeに変えてしまうのです。
で、元に戻すにはどうしたらいいんでしょうか?
なんのための"Export CSV"
このPreference画面に、Export CSVというボタンがあり、ここからキーバインドをCSVファイルで出力することができます。が、Importはありません。ImportできないのにExportだけできるって、、何が目的なんだ、、、ただ一覧にして人が見るだけの機能ってことかな。これが2個目の落とし穴。
Exportする
さて、実は設定ファイルはメニューからExportすることができます。
File->Export…からGeneral->Preferences
を選びます。次の画面でどの設定をExportするか選ぶことができます。
今回はキーバインドだけをExportしたいので"Kyes Preferences"にだけチェックを入れておきます。
"To preference file"で出力先をしていします。"Browse…"ボタンから適当なディレクトリ、名前をつけてSaveすると.epfファイルが指定されるので、これで"Finish"ボタン。
Importする
では上でExportした設定ファイルをImportしましょう。
File->Export…からGeneral->Preferences
を選びます。"From preference file"に先ほどExportしたファイルを指定します。"Import all"または"Keys Preferences"にチェクを入れて、”Finish".
これで、
Eclipse->PreferencesからGeneral->Keys
でScheme: emacsの設定内容がExportもとのものと同じになっていることが確認できます。ユーザ設定をしていた場合はその変更も含まれます。
2012-02-08
Androidで文字列をAES暗号化、復号する
Androidで文字列の暗号化、復号するサンプルを作りました。
コードはこちら。 itog/CryptoSample - GitHub
使い方
上のテキストボックスにテキストを入力して、真ん中左のencryptボタンを押すと暗号化された文章が下のテキストボックスに表示されます。
反対に真ん中右側のボタンを押すと文章が復号され、上のテキストボックスに表示されます。もし暗号化されてBase64エンコードされたデータがあるなら直接下のテキストボックスに入力してもOKです。
サンプルの解説
使い方
encrypt, decryptともスタティックメソッドなので、シードと暗号化・復号したいテキストを渡すだけです。
Crypto.encrypt(CRYPT_SEED, plainText); Crypto.decrypt(CRYPT_SEED, encryptedText);
ちなみにサンプルでは"hoge"なんてSEEDを使っていますが、実際に使う場合はハードコーディングではなくて、簡単には読み取れないような処理をした値を使いましょう。
暗号化処理
暗号化の処理を実際にやっているのは以下のメソッドです。AESで暗号化しています。
private static byte[] encrypt(byte[] raw, byte[] plain) throws Exception { SecretKeySpec keySpec = new SecretKeySpec(raw, "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, keySpec); byte[] encrypted = cipher.doFinal(plain); return encrypted; }
暗号化データをテキストで見えるようにする
暗号化されたデータはバイナリデータなので、テキストとして表すことができません。これを英数字だけで表すBase64にエンコードすることで、今回のサンプルのように暗号化済みのデータをテキストとして扱うことができます。
Base64.encodeToString(encrypted, Base64.DEFAULT);
復号
復号の処理は暗号化と逆、Base64デコードして、decryptしています。手順を逆にしただけなのでコードは省略します。
以上です。
2012-01-25
MPLAB XとPICkit3でPICベースADKを動かす
はじめに
以下ではマイクロチップが販売しているPIC用の開発キット
PIC24F Accessory Development Starter Kit for Androidの開発環境構築手順を説明しています。
マニュアル http://ww1.microchip.com/downloads/en/DeviceDoc/Android%20Library%20Help.pdf
PICkit3を使った環境の説明なので、PICkit3は必須です。
開発ボードはこのボードではなくても、PICベースの開発ボードであれば同様の手順で環境構築できると思います。
ソフトウェアライブラリのインストール
Microchipのライブラリダウンロードページから
Accessory Framework for Android
をダウンロードし、ZIPを解凍してInstallerを実行します。
- Setup
"Next"をクリック
- Lisence Agreement
利用規約に同意できれば "I acept the agreement"にチェックを入れて"Next"
- Installation Directory
インストール先ディレクトリを選択する。デフォルトでは"/Users/username/microchip_solutions_v2011-12-05-beta"となる
選んだら"Next"
- Select Components
コンポーネントを選択する。Android Accessoriesにチェックが入っていることを確認してNext
- Ready to Install
"Next"ボタンクリックでインストールが開始される。
- Completing Setup Wizard
"Finish"ボタンで終了。
デモプロジェクトを開く
MPLAB X のインストール方法はPIC開発環境 MPLAB X を Mac にインストールする - Hacking My Way 〜 itogのhack日記を参照して下さい。
MPLAB Xで
File->Open Project
から
/Users/username/devel/tools/microchip_solutions_v2011-12-05-beta/Android Accessories/Basic Communication Demo - OpenAccessory Framework/Firmware/MPLAB.X
を選択して "Open Project"ボタンをクリック。
これでプロジェクトが読みこまれるので、"Build Project"ボタンを押してビルドしましょう。
問題なければOutputに"BUILD SUCCESSFUL"と表示されます。
実行
PICkit3、Starter Kitを接続します。
PICkit3をUSBでMacに接続します。次にPICkit3とボードをコネクタの矢印の位置をそろえて接続します。そしてStarter Kitに9VのACアダプタを接続します。
参考)
MPLAB Xのメニューから、
Run->Set Project Configuration
で、
ADK_PIC24F_Accessory_Development_Starter_Kit_For_Android
を選択します。
"Make and Program Device"ボタンを押すと初回はどのツールでデバッグするかを選択する画面がでるので、PICkit3を選択してOK。
問題がなければ以下のように出力されます。
Programming...
Programming/Verify complete
Androidアプリの準備
インストールしたMicrochipのライブラリの中にAndroidアプリのソースが入っているのでそれをビルドするか、ただ動かすだけならマーケットに公開されているのでこちらからインストールすることもできます。
以下ではソースからのビルド方法について説明します。
Androidアプリのビルド
Android開発環境の整ったeclipseでNew->Project...からAndroid Projectを選び、"Create project form existing source"
microchip_solutions_v2011-12-05-beta/Android Accessories/Basic Communication Demo - OpenAccessory Framework/App Source Code/v2.3.x または v3.xを選択して作成する。SDKはAPI Level10のGoogle APIsを選択します。。
問題なければ自動ビルドが通るので実行します。
USBでStarter Kitに接続すると、LEDの制御、ボタン・ポテンションメーターのステータス取得ができます!
これで開発環境の構築は完了です。
2012-01-24
PIC開発環境 MPLAB X を Mac にインストールする
MPLab X はNetBeansベースのPIC用IDEです。Java上で動くので、どのMac/Win/Linuxで同じように使うことができます。つい最近このMPLAB Xが出る前まではWin専用のオールドスクールなIDEがデファクトだったのですが、やっとモダンな開発環境でPICの開発が出来るようになりました。
インストールはインストーラで"Next"をクリックしていくだけなのでとても簡単です。
ここではMac上にIDEとPIC24のコンパイラをインストールする手順を紹介します。Javaの実行環境はすでにある前提です。
ダウンロード
ダウンロードページ
http://ww1.microchip.com/downloads/mplab/X_Beta/index.html
※解説動画が自動でループ再生されて、止めることができない(Chrome on Mac)のはなんとかならないのかな、、、
Select Platform: で
Windows/Linux/Mac
を選択する。
Select Development Toolsで、
MPLAB IDE X と MPLAB C30 Lite Compiler for PIC24
を選択する。
コンパイラのインストール
mplabc30-v3.30c-osx-installer.dmg をダブルクリックして展開してできるインストーラーを実行します。
ユーザパスワードを要求されるので入力します。
- Setup
Nextボタンをクリック
- License Agreement
規約を読んで、同意できれば"I accept the agreement"にチェックを入れて"Next"
- Installaction Directory
インストールディレクトリを選択します。デフォルトで"/Applications/microchip/mplabc30/v3.30c"になっているので通常はそのままでNext
- Ready to Install
Nextボタンクリックでインストールが開始されます。
- Completing
問題なく終了したら完了画面になるので、Finishボタンクリックで終了します。
MPLAB X のインストール
mplabx-ide-v1.00a-osx-installer.dmg
ユーザパスワードを要求されるので入力します。
- Setup
Nextボタンをクリック
- License Agreement
利用規約に同意できれば"I accept the agreement"にチェックを入れてNext.
- Installation Directory
インストールディレクトリを選択します。デフォルトで"/Applications/microchip/mplabx"担っているので通情はそのままでNext
- Ready to Install
Nextボタンクリックでインストールが開始されます
- Completing the MPLAB X IDE
問題なく終了したら完了画面になるので、Finishボタンクリックで終了します。
起動
先ほどインストールしたディレクトリからMPLAB Xを起動します。
簡単ですね。
2012-01-19
ADISアップデートしました!
昨日のエントリ(Android Open Accessoryの理想と現状と自分の取り組み - Hacking My Way 〜 itogのhack日記)にも書いたけど下のほうにちょろっと書いただけなので改めて。
ADISとは
Androidのデバイス情報共有するアプリ&サービスです。
アプリを起動してシェアの許可をすると、その端末の情報を取得してサーバにアップロードします。シェアされた情報はアプリか、ブラウザから見ることができます。
アプリのインストールはこちらから。
https://market.android.com/details?id=com.itog_lab.android.adis
情報のブラウズはこちらから。
モデル名で検索もできます。今のところ大文字小文字区別で完全一致にしてます。
アップデート
最新のアップデートで、PackageInfoという情報を追加しました。端末でサポートしているfeature, library情報が追加されています。
これにより、例えば2.3.4以降の端末でUSB Accessory Modeをサポートしているかどうかが分かります!
そして、ADIS公式Twitterアカウントできました。
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
新規にデバイス情報が追加された時、情報が更新されたときに直リンクつきでツイートします。
要望も随時受け付けてますよー


