キートン増田のつれづれ日記
2012年03月19日(月)~2012年03月25日(日)分


拡大

● 地震のグラフ

 気象庁が発表した全国の震度1以上の地震の数の先週1週間の平均は2011年東北地方太平洋沖地震発生直前の10年間の平均の3.03倍でした。3.00を越えたのは2011年11月03日(月)の週以来です。ここのところずーっと3.00未満でたまに2.00を切ったのでそろそろ減り始めかと思いましたがまだまだ続くようです。

Windows Marketplace
for Mobile
サービス停止
拡大
T-01A

● Windows Marketplace for Mobileサービス停止

 キートンの使っているWindows Mobile 6.5のT-01Aですが,Windows Marketplace for Mobile Web サイトは2011年07月15日で停止しています。また,Windows Mobile 6.x Marketplaceサービスは2012年05月09日で終了するそうです。

 うーん,このT-01Aは購入してからまだ2年経過していないんですよ。サービス停止が早いなぁ…。

 Windows Mobile 6.5はWindows Phone 7に移行するようですが,これがまた全く互換性なさそうなんですよね。キートンはいまAndoroidです。これからどうしようかなぁ…。

07:36東京行き 拡大
07:36東京行き 拡大

● ダイヤ改正の副産物?

 2012年03月17日(土)にJR東日本のダイヤ改正がありました。その副産物かどうかわかりませんが,昭島発07時36分東京行きの電車が2本あります。複数のサイトのダイヤで2本あります。どこで間違っているんだろう…。きっともとのデータが間違っているんだろうなぁ。

気象庁ホームページより
引用

● M5以上の地震がありました

発生日時 場所 緯度 経度 深さ マグニチュード 最大震度 コメント
2012年03月20日(火)08時35分頃 三陸沖 北緯40.8度 東経144.9度 約10km 5.1 1

 2012年03月19日(月)のM5以上の地震はありませんでした。2012年03月20日(火)のM5以上の地震は1回でした。

WindowsXPの
Windows クラッシック
Wndows XP
Windows Vistaの
Windows スタンダート
Windows Vista ベーシック
Windows 7の
Windows クラッシック
Windows 7 ベーシック

● やっとWindows Vista/Windows 7正式対応の準備

 キートンが作っているフリー・ソフトですが,ステータス・バーのフォントの大きさが画面のテーマによって異なることに気がつきました。

 今までDelphi7で作っていて画面のテーマはWindowsXPクラッシックのみで検証していました。ここで,VistaとWindows 7のデフォルトのテーマではフォントが異なるのです。知らなかった…。orz... 直さなくては。

WindowsXPの
Windows クラッシック
Wndows XP
Windows Vistaの
Windows スタンダート
Windows Vista ベーシック
Windows 7の
Windows クラッシック
Windows 7 ベーシック

● Tahomaの謎

 Delphi XE2(Delphi 7も)TMemoのデフォルトのフォントはTahomaの8ポイントです。ここはどのテーマを選んでも変わらないようです。しかしTahomaを選んでも日本語が表示されるのは謎です。

 Windows VistaとWindows 7では枠が太くなっています。

WindowsXPの
Windows クラッシック
Wndows XP
Windows Vistaの
Windows スタンダート
Windows Vista ベーシック
Windows 7の
Windows クラッシック
Windows 7 ベーシック

● FormHeightの謎

 Windows 7のWindowsクラッシックでFormWidth:160,FormHeight:120でコンパイルしました。できあがったオブジェクトを異なったテーマで実行するとFormHeightが微妙に異なります。うーむ。なぜだろう…。

 同じFormHeightを指定してもコンパイルするときの画面テーマでClientHeightが異なるようです。いったんコンパイルするとテーマが変わっても同一のClientHeightになるようにFormHeightを可変しているようです。うーむ,難しい。

正常表示 下が欠けている
左下拡大

● 現在認識している主な不具合


PCalc2 kmBattGraph
フォームの不具合 Vista/Windows 7でテーマを切り替えたとき下が欠けることがある Vista/Windows 7でテーマを切り替えたとき下がかけることがある
フォントの不具合 特になさそう StatusBarのフォントが大きくなって表示領域からはみ出す
常駐の不具合 特になさそう フォームを閉じてタスク・トレイに収納されてもタスク・バーのボタンが残る。
機能の不具合1 起動時にタスク・トレイにアイコンが表示されないことがある。 ファイルのオープンに失敗してグラフが真っ黒になることがある。
機能の不具合2 『ExploreWClass』のクラスのフォルダを閉じ忘れていいる。



● 今年は春一番が吹きませんでした

 春一番の定義は『立春から春分の日までの間に吹く強い南風』で,関東地方は8m/s以上の風とのことです。今年はこの条件を満たす風が吹きませんでした。12年ぶりに春一番が観測されなかったそうです。

気象庁ホームページより
引用

● 遠地でM7以上の地震がありました

発生日時(日本時間) 場所 緯度 経度 深さ マグニチュード 最大震度 コメント
2012年03月21日(水)03時03分ころ 中米
メキシコ,南部ゲレロ州オメテペクの東約25km
北緯17.0度 西経98.1度 19km(USGS発表) 7.8(気象庁発表)
7.4(USGS発表)




気象庁ホームページより
引用

● M5以上の地震がありました

発生日時 場所 緯度 経度 深さ マグニチュード 最大震度 コメント
2012年03月21日(水)21時01分頃 福島県沖 北緯36.7度 東経142.4度) 約10km 5.0 1

 2012年03月21日(水)のM5以上の地震は1回でした。

V-PreC@ 拡大
Famiポートのエラー

● V-PreC@購入しました

 インターネットの不正アクセスが怖いので,キートンはインターネットではクレジット・カードをほとんど使いません。でもどうしてもクレジット・カードでないと決済できないサイトも存在します。そこでV-PreC@を購入してみました。

 本人確認,審査はありません。金額は2,000円~29,000円で,購入時の手数料は200円です。3ヶ月使用しないと維持手数料が125円/月必要です。ちょっと手数料が高いですが,代引き手数料と考えると大差ない気がします。キートンは近くのコンビニで支払いました。支払うと数分でカード番号が発行されました。

 でも,近くのコンビニで支払おうとしてFamiポートを操作していたらエラーが表示されました。

Communication

アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。[続行]をクリックすると、アプリケーションはこのエラーを無視し、続行しようとします。[終了]をクリックすると、アプリケーションはただちに終了します。

このオブジェクトは現在ほかの場所で使用されています。

[詳細] [続行][終了]

 このFamiポートってWindowsのPCなんですね。ちょっと(かなり)不安でしたが『続行』を押したら無事決済できました。

Vectorの発表 お知らせメール
拡大

● Vectorに不正アクセス

 Vectorに不正アクセスがあり,クレジット・カード情報を含む個人情報が流出した可能性があるとのことです。公式発表があり,お知らせメールがきました。キートンはVectorにフリー・ソフトを登録しているのです。でもクレジット・カードを登録していないので特に問題ないと思うけどやだなぁ。まさか過去にあちこちのサーバで不正アクセスに使用されている既知の脆弱性の対策がされていなかったとか,フォームのサニタライジングが不足していたなんていうことないよね。セキュリティ・ソフト扱っている会社がこれじゃぁねぇ(苦笑)。

 こういうこともあろうかと思ってV-PreC@契約したんですよ…。

DrDAQ Pico Logger
波形 Cのサンプル・プログラムを
Visual C++2010のC++
でコンパイル/ビルド
Delphi 拡大

● USBDrDAQ購入とソフト作成

 DrDAQを購入してしまいました(汗)。Delphiでソフト作りましたが期待どおりには動きません。そこでVisual C++ 2010でサンプル・プログラムをコンパイルしてDelphiと比較してみました。

 これで土日つぶれましたが何とか動くようになりました。コンパイル時の注意事項をまとめました。

作業と問題点 対策 結果と対策
Delphi XE2でプログラム作ろうとしたがDelphi用のヘッダが提供されていない CのヘッダからDelphi用のヘッダ作成した Opne/Close,ステータスの読み出しはO.K.
UsbDrDaqSetIntervalがエラー。
Delphi XE2で作成したプログラムにおいて,UsbDrDaqSetIntervalでThe Channel number is not valid on this device or no channels have been set.のエラーになる 原因がわからない Cのサンプル・プログラムをコンパイルしてDelphiと比較することを考えた
Visual Studio 2010をインストールしてCのサンプル・プログラムをコンパイルした エラー多数 ソース修正
リンク時にエラー多数 libファイル読み込みを設定した O.K
CとDelphiと比較した。
Cのenumは4バイトDelphiの列挙型は1バイトだった
Delphiの列挙型を4バイトに修正 O.K.

 以下にDrDAQからダウンロードしたCのサンプルをVisual Studio 2010でコンパイルする手順をまとめました。説明ではVisual Studio 2010 Professhionalがすでにインストールされているものとします。たぶんExpress Editionでもビルド可能だと思いますが確認していません。

 [スタート]→[すべてのプログラム]→[Microsoft Visual Studio 2010]→[Microsoft Visual Studio 2010]を開きます。

 [ファイル]→[新規作成]→[プロジェクト]→[Vicual C++]→[Win32]→[Win32コンソール アプリケーション]を選び名前に[USBDrDAQ]を設定して適当な場所を選び[OK]をクリックします。

 [Win32アプリケーション ウィザードへようこそ]が表示されたら[次へ]をクリックします。

 [アプリケーションの設定]が表示されたら[完了]をクリックします。

 フォルダが作成されたらUsbDrDaqApi.h,picoStatus.hとUSBDrDAQ.libをソースと同一のフォルダにコピーします。

 編集画面が表示されたらオリジナルのサンプル・プログラムから以下の場所を修正しながらコピー&ペーストします。行数を数えたりするのが面倒な場合,『1行目より前に追加』と『794行目』だけを修正して[F5]を押すとビルドが行われます。このときエラー・メッセージが表示された行を以下のように修正します。

場所
オリジナルの行数
オリジナル 修正後 修正理由
1行目より前に追加
// DrDAQ-001.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"
Visual Studio 2010が自動的に生成したステートメント。
37~38行目 #include "picoStatus.h"
#include "c:\CVSROOT\PICO\PROD\USBDrDAQ\Drivers\Windows\usbDrDaqApi.h"
#include "usbDrDaqApi.h" picoStatus.hはusbDrDaqAip.hの中で呼び出されているので不要。また,絶対パスをソースに書かれてもねぇ…。
438行目 UsbDrDaqGetSingle(g_handle, c, &value, &overflow); UsbDrDaqGetSingle(g_handle, (USB_DRDAQ_INPUTS)c, &value, &overflow); cはintで定義されているが関数側の定義がUSB_DRDAQ_INPUTS型。
543行目 UsbDrDaqSetPWM(g_handle, IOChannel, (unsigned short)period, (unsigned char)cycle); UsbDrDaqSetPWM(g_handle, (USB_DRDAQ_GPIO)IOChannel, (unsigned short)period, (unsigned char)cycle); IOChannelはintで定義されているが関数側の定義がUSB_DRDAQ_INPUTS型。
560行目 USB_DRDAQ_GPIO channel; int channel; channelの大小関係を判定しているのでUSB_DRDAQ_GPIOではエラーになる。
channel++の記述がエラーになる。
566行目 for(channel = USB_DRDAQ_GPIO_1; channel <= USB_DRDAQ_GPIO_4; channel++) for(channel = (int)USB_DRDAQ_GPIO_1; channel <= (int)USB_DRDAQ_GPIO_4; channel++) enum型の大小関係を判定するためにint型にキャストする。
568行目 UsbDrDaqGetInput(g_handle, channel, 0, &value); //Not using pull-up resistor UsbDrDaqGetInput(g_handle, (USB_DRDAQ_GPIO)channel, 0, &value); //Not using pull-up resistor 大小関係を判定するためにchannelをintにした関係で,関数の定義で再度USB_DRDAQ_GPIO型にキャストする。
794行目 void main (void) int _tmain(int argc, _TCHAR* argv[]) mainでなく自動生成された_tmainを使用する。
809行目 return; return 0; 警告を取るため

 ソースの修正が終わったら,[ソリューション エクスプローラー]→[USBDrDAQ]→[ヘッダー ファイル]を右クリックして[追加]を選び,USBDrDAQ.libを選択します。

 [F5]を押してビルドします。

 Delphiのソースとヘッダは完成したら公開するかもしれません。

気象庁ホームページより
引用

● M5以上の地震がありました

発生日時 場所 緯度 経度 深さ マグニチュード 最大震度 コメント
2012年03月25日(日)22時22分頃 福島県沖 北緯37.7度 東経141.8度 約50km 5.2 4

 2012年03月22日(木)~2012年03月24日(土)までのM5以上の地震はありませんでした。2012年03月25日(日)のM5以上の地震は1回でした。

2012年03月19日(月) 2012年03月20日(火)
2012年03月21日(水) 2012年03月22日(木)
2012年03月23日(金) 2012年03月24日(土)
2012年03月25日(日)

● サクラ定点観測

 もうすぐサクラが咲きますね。

Interface
2012年05月号
日経ソフトウェア
2012年05月号
Delphi XE2
プログラミング入門


● 今週の雑誌類

雑誌/書籍名 出版社名 著者名 価格
Interface 2012年05月号 CQ出版社

日経ソフトウェア 2012年05月号 日経BP社

Delphi XE2 プログラミング入門 カットシステム 日向 俊二




■ホームページへ ■キートン増田って誰? ■町で見かけたちょっと気になるもの
■中央線・青梅線PCショップ・マップ ■日記へ ■Linuxへ
■経歴へ ■リンクへ ■ライブラリへ
■ご意見をお寄せください