2017年6月26日月曜日

Garmin Connect IQでアプリ開発

 GarminのウェアラブルデバイスはConnect IQというオープンプラットフォームを利用して開発されたアプリが使用できます。おそらく殆どのGarminユーザーはデフォルト以外のWatch FaceやアプリをConnect IQ storeからインストールされているのではないでしょうか。

 しかし、このConnect IQは市場がニッチ過ぎてイマイチ流行っていない模様です。storeを見る限り日本の開発者はかなり少なそう。殆どのサードパーティ製アプリは説明書きなど当然のように英語です。

 機能が全然違うため単純比較はできませんが、Android WearやApple Watch と比較してGarminのスマートウォッチは機能を制限している分圧倒的に電池持ちがよいです。Garminのスマートウォッチは電力消費を抑えるためメモリ液晶が使用されており、グラフィックは他のスマートウォッチに遠く及びませんが、そもそも活動量計+αとして使用したい自分にとってはこれで必要十分です。音楽なんかもスマホで聞けばいいですしね。

 というわけで、 自分にとってはGarmin製スマートウォッチの唯一の弱点がアプリの少なさ(特に日本語のアプリ)になるわけですが、無いなら自分で作ってしまおうということで自作することにしました。

 Connect IQでは 「アプリケーション」、「Widget」、「Watch Face」、「Data Field」の4種類が開発できますが、とりあえずWatch Faceを作ることにします。基本的に4種類とも作り方は同じなのでWatch Faceが作れれば全部作れるはずです。

 現時点でWatch Faceを開発するところまではできていますので順次投稿していきます。

 投稿内容は<Garmin Connect IQ プログラミング>にまとめています。

2017年6月13日火曜日

nasneで「番組データ準備中です。 しばらくたってからもう一度お試しください。」と表示されて書き出しが実施できない。パート2

先日ASIO4ALLをアンインストールしたところ書き込みができるようになったと書きましたが、再び同じ症状で書き込みができなくなりました。ASIO4ALLアンインストール後に書き込みができたのは何だったのか。。。

いろいろ試しましたが、一度PC TV Plus(旧PC TV with nasne)をアンインストールしてから再インストールしたところ問題が完全に解消しました。ただし、普通にアンインストールしただけではNGなので注意

PC TV Plusはwindowsコントロールパネルの"プログラムと機能"からアンインストールしますが、この操作だけでは完全にアンインストールはできておらず、その後再インストールしても各種設定が残ったままになっています。
この状態では書き込みができない問題は解決しませんので下記の方法で完全にアンインストールしてから再インストールする必要があります。

【手順】
  1. PC TV Plusを起動して右上に表示されているツールボックスのアイコンから"ヘルプ"を開く。
  2. "ライセンス認証を解除する"ボタンをクリックし、ライセンスを解除する。 (注意:再インストール時にライセンスキーが必要となります。ライセンスキーはPC TV Plusを購入したときのメールに記載されていますが、メールが残っていない場合はここで確実にメモしてください。)
  3.  PC TV Plusを再起動して体験版にダウングレードされていることを確認し閉じる。
  4. コントロールパネルの"プログラムと機能"からPC TV Plusをアンインストールする。
  5. 公式HP(http://www.sony.jp/playstation/store/products/nasne/pcnasne-dl/)から PC TV Plusをダウンロードし、再インストールする。
  6. 初回起動時にライセンスキーを要求されるためこれを入力する。
  7. その他必要であれば初期設定(nasne機器登録など)をすれば書き込みができるようになっているハズ。

2017年6月3日土曜日

nasneで「番組データ準備中です。 しばらくたってからもう一度お試しください。」と表示されて書き出しが実施できない。

同様の症状で書き込みができない現象が再発しました。
下リンク先の方法で完全に問題が解消しました。
<nasneで「番組データ準備中です。 しばらくたってからもう一度お試しください。」と表示されて書き出しが実施できない。パート2>


nasneの録画番組を整理するためPC TV Plus(旧PC TV with nasne)で
BDへの書き出しを実施したところ、
 「番組データ準備中です。 しばらくたってからもう一度お試しください。」
と表示されて書き出しができない。

ネットで調べると、”VirtualBox”や”VMWare” といった仮想マシン環境を構築するソフトをインストールしていると同様の症状で書き出しが実施できないようです。

ただ、私のPCでは過去に同ソフトをインストールしたことはあるものの現在は使用していないためアンインストール済みです。アンインストールしきれずに残骸が残っているのかとも思いましたが、原因は"ASIO4ALL"というASIO環境を構築する別のソフトでした。

"ASIO4ALL"はASIOドライバーを持たないオーディオデバイスをASIO対応にしてくれるソフトで、レイテンシー(遅延)の改善などを行うDTMを少しかじった人たちには御用達のソフトです。
ASIO対応のオーディオインターフェイスは持っているものの、諸事情で一時的にオンボードのオーディオデバイスをASIOで動かすために使用していました。
今は必要ないのでアンインストールしたところ問題なくnasneからの書き出しが行えるようになりました。

ASIO4ALLが必須というという方は、PC TV PlusとASIO4ALLは共存できないっぽいので、おとなしくASIO対応オーディオインターフェースを購入してASIO4ALLをアンインストールするか、
別のwindowsアカウント(こっちにはASIO4ALLをインストールしない)を用意して使うソフトに応じてアカウントを切り替える必要があると思います。
なお、アカウントを切り替えて使用するというのは検証したわけではないため、この方法で実現できるかは不明です。

2017年3月25日土曜日

サーバーの回線状況監視 改

 前回の投稿でサーバーの回線状況を監視するバッチファイルを公開しましたが、パケット損失を考慮したverで作り直しました。前回のはpingの応答時間のみで判断してましたが、むしろパケット損失のほうが重要かと。
 
 ここに記載しています。

2017年3月19日日曜日

サーバーの回線状況監視

FF14などオンラインゲームをする際に回線状況を監視するためにバッチファイルを作成。
詳細はここ

2017年3月18日土曜日

LANとインターネットの安定化&高速化について

LANとインターネットのそれぞれについて安定化&高速化するための方法をまとめる。
とくにインターネット側(PP側)のMTUは重要

ここ

2016年10月9日日曜日

ArduinoIDEでコンパイルエラー ”****”was not declared in this scope

久々にArduinoを引っ張り出してきて遊んでいたら、
ArduinoIDEでそれまで問題なくコンパイルできていたコードで突然コンパイルエラーが発生。

エラーメッセージは
”****”was not declared in this scope ※****は変数名

これは"****"に記載されている変数や関数名が宣言されてないぞいっていうエラーなんですが、
エラーの原因とされている変数はもちろん宣言していますし、
いくらコードを見ても表記の誤りは見当たらない。

というか、
エラーの原因となっている変数の初期値を変えるとエラーが出たり出なかったりするので
これはもうソースコードの問題ではないかと。

開発環境の問題が疑われたのでIDEの設定がおかしいのかとも思いましたが、
AndroidIDEはシンプルな開発を売りにしているので複雑な環境設定はなく、
変なところは見当たらない。

いろいろいじってみた結果、IDEの"ツール"にある"エンコーディングを修正"を実行すると
コンパイルが通るようになりました。
しかし、代わりにソースコード内のコメントが全て文字化けしました。
これではプログラムを読み返す際に面倒なことになるのでなんとかしたい。

ググってみると、現行のArduinoIDE(現時点ではv1.6.12)では文字コードにUTF-8を使用しているとのこと。
過去のArduinoIDEで作成したコードなどは他の文字コードを使用しているようで、
これを現行のArduinoIDEで使用する際に文字コードを変換する機能として
上で示した"エンコーディングを修正"機能があるようです。
別の文字コードでは文字化けするだけでなくコンパイルエラーも発生するらしいです。

現行のArduinoIDEでゼロからソースコードを書いた場合ははじめからUTF-8で保存されるため
本来は"エンコーディングを修正"を実行する必要はないのですが、
すでに文字コードがUTF-8で書かれているものを更に文字コード変換を実行したため
文字化けしてしまったというわけです。

しかし、なぜゼロから書いてUTF-8で作成されているはずのソースコードのコンパイルが
通らなかったのだろうか。
別のエディタを使用して文字コードUTF-8に設定し、これをArduinoIDEにコピペしても
コンパイルエラーが発生します。

コメントを少しずつ消して試してみたところ、原因はコメント内で使用していた
"―(全角ハイフン)"であることがわかりました。
全角ハイフンをすべて消したところ、"エンコーディングを修正"を実行しなくても
コンパイルが通るようになり、コメントの文字化けも回避できました。

全角記号は文字コードの扱いが少し異なるようで
ArduinoIDEでは使用しないほうが良さそうです。