バイナリデータを符号無し整数に変換する2011/01/15 15:00

バイナリファイル等を扱う場合に、バイナリデータから整数を取り出す必要が出てきます。
複数バイトのサイズの整数を扱う場合に問題になるのがバイト順序(バイトオーダー)です。
バイトオーダーには、主に「ビッグエンディアン」と「リトルエンディアン」の二種類があります。

「ビッグエンディアン」は、データを大きい値に対応する上位バイトから並べます。
この方式は、IBMの汎用計算機から、UNIX系のCPU、モトローラー系のCPUで採用されていました。
そのため、「Motorola形式」と呼ぶ場合もあります。

「リトルエンディアン」は、データを小さい値に対応する下位バイトから並べます。
この方式は、インテルのCPUで採用され普及したため、「インテル形式」と呼ぶ場合もあります。

ちなみに、LabVIEWの内部処理では、「ビッグエンディアン」が使われています。
これは、LabVIEWが元々AppleのMacintoshで開発されたソフトウェアであるり、当時のMacがMotorolaのCPUを使っていたためです。

この二種類のバイト順序に対応してデータを変換するサブVIを作りました。

サブVIは、16ビット、32ビット、64ビットの3種類がありますが、32ビットを例に説明します。

"Binary Data"に元になるバイナリデータを文字列形式で入力します。
"Byte Order"で、バイトオーダーを"big-endian"か"little-endian"を選択します。
"Index"には、データ読出し位置を入力します。
実行すると、
"U32"から、変換された値が出力されます。
"Bytes"からは、変換に使われた箇所のデータをバイト配列で出力します。

サンプルは会社のサイトに掲載しましたので下記をご覧ください。

バイナリデータを符号無し整数に変換する 

Googleのチャートツールでマップチャートを描く2011/01/19 15:00

Googleのサービスで、様々なグラフやチャートを描くサービスが有ります。
Googleチャートというサービスです。詳しくは Google Chart Toolsを参照してください。
仕組みは簡単、URLに、グラフのデータを添えて送信すると、グラフ画像を返してくれます。


今回はマップチャートです。

"PointData"に、データを入力します。
データは以下の三要素のクラスタの配列です。
 "Country Code "は、プロットする国、地域の選択肢です。
 国と、日本の県、アメリカ合衆国の州の選択肢から選ぶことができます。
 "Legend"は、凡例に表示する文字です。
 "Color"は、プロットの色です。

"Size"に、グラフのサイズを設定します。

"Zoom"では、表示する地域の範囲を指定できます。
 "ZoomOption"では二種類のオプションがあります。
 "auto"では、選択した場所を中心に自動的に範囲を決めます。
  auto場合、"bottom"、"left"、"top"、"right"でピクセル単位で位置を調整できます。
 "fixed"では、緯度経度で表示範囲を決めます。
  fixed場合、"bottom"、"top"、は緯度(南緯はマイナス)、"left"、"right"は経度(西経はマイナス)で指定します。

実行すると、"Chart"に画像が表示されます。
Googleのサイトを利用するので、インターネットへの接続環境が無いと使えません。

サンプルは会社のサイトに掲載しましたので下記をご覧ください。

Googleのチャートツールでマップチャートを描く