2016年7月16日土曜日

DJI Inspire-1の送信機(RC)のアップデートが行われない場合

DJI Inspire-1の送信機(RC)のアップデートが行われない場合。

職場でひさしぶりにDJI Inspire-1を飛ばそうと思ったら、いつものごとく
「アップデートしろ」警告が出た。

いつものように、DJI公式サイトからアップデータをダウンロードすると、
機体・カメラ・バッテリーのアップデートは正常に終わったのだが、
(SDカードが破損していてフォーマットしたりなんていうことはあったのだが)
送信機のアップデートだけ何故か行われない。

ログを確認してみると、「アップデータが古いからアップデートしなかったよ。これ最新」
みたいなことを吐きやがる。

しかし、iPadを繋いでDJI GOアプリを使うと「1.3.0以上に送信機をアップデートしないと、
アプリからのアップデートはできねぇよ」的なエラーを吐きつづける。

数時間格闘し続け、Hard Resetなども試して、結局わかったこと。

どうやら、最近のアップデータには送信機用のアップデータが含まれていないらしい。
ここのサイト(日本の正規代理店)から、2015年8月の「INSPIRE 1 ファームウェア v1.3.0.0」を
ダウンロードし、送信機のアップデートをすると、アプリからアップデートが可能になる

ので、あとはUSBでiPadを繋いでアップデートすれば良い。

ひどい時間がかかった。
というか酷い罠だ。1.3.0以上ではなく、1.3.0が必要だとは。
(頻繁にアップデートしていれば、近い時期のファームには含まれていたのかもしれない)。

以上。


豊四季タイニーBASICのメモ

タイニーBASICをCで書く を購入した。
中身はTTBASIC(豊四季タイニーBASIC)の解説だ。

Tiny BASICをC言語で実装した例はいくつかあるが、
その中でも移植性とわかりやすさに重点を置き、拡張性も高く設計されていることが
ソースコードを読んでわかったので本を購入した。

中心部分は変わらず、各機種対応のプロジェクトファイルが配られているのだが、
Arduino版のソースコードに至っては1行ごとに日本語のコメントが付いている。
C言語が読め、TinyBASIC全体の知識がある人ならそれだけで理解・改造ができるだろう。

自分は、一部のデータ構造の意味などがわからなかったので本を購入したのだが、
図や筆者の言葉でしっかりと全体的な説明がなされており、さらにSAVE・LOAD命令などの
実装例も乗っていたので、かなり助かった。

ただ、初心者向きではない。C言語に関する説明はないからだ。
あくまで、C言語でプログラム作るのにある程度なれており、BASICを導入したいと
考えた人向けだ。

また、TTBASICには機種依存性をなくすため、本当に最低限の機能しかついていない。
改造して使いたい人でないと本を買う意味は無いだろう。

私はこれから、個人用に拡張したBASIC環境を構築しようと考えている。

その上での色々なメモを此処に書いていこうと思う。

・64bit環境では動作しない
 64bitのWindows環境で実行しようとすると、コンパイル時にポインタの型変換に警告が出る。
 「64bitのポインタを32bitで受けようとしているぞ」というもので、
 その状態で構造文(FOR等)を実行すると「スタック足りない」エラーが出る。
 型を変更するか、32bit環境で動かすことをおすすめする。
 もっとも、TTBASIC自体、組み込みなどの環境向けなので、
 64bitなんて贅沢な環境のことは考えていないのだろう。

・Windowsのおせっかい
 debugで実行すると、時折エラーを吐いて落ちることがある。
 関数の戻り値が代入されていない、など。
 設計者の思想的に、エラーで戻るときには戻り値は使われないため、
 ROMを節約するためか、何の値も代入されないようだ。
 正直Windowsの開発者向けおせっかい機能だが、それを切るか、治すかすると良いだろう。
 っていっても、こんなの書かなくても見りゃわかると思うけれども。

改造したものは以下においてある。
https://sites.google.com/site/gpsnmeajp/ttbasic