ただいまテスト中 : 掲示板
このフォームからは投稿できません。
name
e-mail
url
subject
comment

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

■ サポートに関してはSerial device monitorサポート掲示板(New)
■ サポート以外の話題(プログラム関係)はこちらへお願いします。
■ 48時間以内に作成されたスレッドは New で表示されます。
■ 48時間以内に更新されたスレッドは UpDate で表示されます。

記事リスト ( )内の数字はレス数
Nomal掲示板移行 画像書き込みテスト(修正書き込み)(2) | NomalSerial Device Monitorのログサイズについて(4) | NomalGUSB2Com (Garmin USB to Com NMEA)(4) | NomalSerial Device Monitor V1.6.2(1) | NomalWindows 7 64bit対応(0) | Nomalradiko.jp(0) | NomalGmn2Nmeaの動作確認(3) | Nomal禁煙(5) | NomalWindows 7 Ultimate Beta 日本語版(1) | Nomal"Virtual PC 2007" Choppy(2) | NomalUSBデバイスのURBをモニターするプログラム(0) | NomalPC不調の原因!?(3) | Nomal引越ししました(0) | Nomal位置情報メモ(11) | NomalSerial Port Bridge Ver2.0.0(1) | NomalNavin'Youのバグ修正方法(5) | NomalWindows Vista用WinHlp32.exe(0) | Nomal仮想分配器つき通信ポート x8 V1.4.0(2) | Nomalステータス表示機能(2) | NomaleTrex Legend vs Legend Cx(5) | Nomal新掲示板のご案内&SPBridge Ver 2.0情報(15) |



■記事リスト / ▼下のスレッド
■28 / 親記事)  Navin'Youのバグ修正方法
□投稿者/ AERO -(2007/05/19(Sat) 23:26:47)
http://hp.vector.co.jp/authors/VA038157/
    いまさら利用価値のほとんど無い情報かと思いますが...

    Navin'You(PCQ-NYH5とPCQ-NY55DUG)には「GPS/ルートガイド機能設定においてSONY Corp.IPS-5000 SERIESを指定してシリアル通信ポート(IPS-5100G等)にアクセスするとCPU 使用率が 100 % になる」現象が見られます。

    この現象はSonyIPS.dllの欠陥(必要なコードの欠落)により発生していると思われます。

    Serial device monitorを使用して、Navin'You(SonyIPS.dll)がアクセスしているシリアル通信ポートをモニターするとすぐに分かるのですが、IOCTL_SERIAL_GET_COMMSTATUSが異常に短い周期で呼び出されています。(CPU使用率100%の原因)
    IOCTL_SERIAL_GET_COMMSTATUSは、ClearCommError APIの呼び出しにより発生しますので、「受信データの有無をポーリングしているプログラムループ内にSleep APIの呼び出しが欠落している」ことが容易に想像できます。典型的で稚拙なバグだと思われます(^^;

    そこでSonyIPS.dllがClearCommError API呼び出す時に欠陥部分を補完するコードを挿入します。
    補完するコードの挿入方法は一般にAPIフックと呼ばれる手法を使うのが局所的で簡単です。

    1)kernel32.dllをラップするdllを作成してClearCommError = dummy_ClearCommErrorの呼び出し時に以下のコードで補完する。

    BOOL WINAPI dummy_ClearCommError( HANDLE hFile, LPDWORD lpErrors, LPCOMSTAT lpStat )
    {
    BOOL retv = ::ClearCommError( hFile, lpErrors, lpStat );
    if( retv )
    {
    if( lpStat->cbInQue == 0 )
    Sleep( 50 );
    }
    return retv;
    }

    2)SonyIPS.dllのImport Name Tableの名前(kernal32.dll)を1)のファイル名に変更する。
    3)SonyIPS.dllと同じディレクトリに1)のdllを配置する。
    以上

    No16,22で示した補完方法はKernel modeで動作するDriver内で補完するコードを実行すると言う方法なのですが、この方法だと欠陥等無いまともなプログラムでも補完するコードが実行されてしまうため、没としました。

引用返信

▽[全レス5件(ResNo.1-5 表示)]
■38 / ResNo.1)  Re[1]: Navin'Youのバグ修正方法
□投稿者/ popo -(2007/08/24(Fri) 13:07:03)
    こんにちは、いつも非常に参考にさせていただいています。
    わたしも長い間この問題に困り果て、AERO様の方法を参考にがんばってみたのですがAPIフック攻略できずどうしても完成できませんでした。
    お忙しいとは存じますが修正DLLをUPいただけると助かります。
    どうぞよろしくお願いします。

引用返信
■39 / ResNo.2)  補完用DLL
□投稿者/ AERO -(2007/08/25(Sat) 17:15:41)
http://hp.vector.co.jp/authors/VA038157/
    popoさん、こんにちは。

    No28の1)のDLLをここに置いておきます。

    ※ご使用に当たっては添付のソフトウエア使用許諾契約書に同意していただく必要があります。

_ernel32.zip
/37KB
引用返信
■40 / ResNo.3)  Re[3]: 補完用DLL
□投稿者/ popo -(2007/08/26(Sun) 03:29:17)
    ありがとうございました!
    完璧です。長い間の苦悩の日々から開放されました、本当にありがとうございました。
    差し支えなければ私のどこがが悪かったのかご教授願えませんでしょうか?
    全然違うでも結構ですし、かすっていましたらご指摘いただけると幸いです。

    lernel32.cppの
    //__declspec( naked ) void WINAPI d_ClearCommError() { _asm{ jmp p_ClearCommError } }

    __declspec( dllexport ) BOOL WINAPI d_ClearCommError() { _asm{ jmp p_ClearCommError } }

    BOOL WINAPI dummy_ClearCommError(**

    BOOL WINAPI d_ClearCommError(**
    としてcppの最後に追加

    .net2005でコンパイルしました

引用返信
■41 / ResNo.4)  Re[4]: 補完用DLL
□投稿者/ AERO -(2007/08/26(Sun) 14:28:30)
http://hp.vector.co.jp/authors/VA038157/
    2007/08/26(Sun) 14:35:57 編集(投稿者)

    .DEFファイルによる明示的EXPORTS指定が有効かどうかを確認されてはいかがでしょうか?


引用返信
■42 / ResNo.5)  Re[5]: 補完用DLL
□投稿者/ popo -(2007/08/27(Mon) 23:21:01)
    ご指導ありがとうございました。
    確かにDEFファイルにも思い当たる思いがあります。
    そもそも基本がわかっていないのが最大の原因ですので勉強します。
    ご親切に教えていただきありがとうございました。

引用返信

■記事リスト / レス記事表示 → [親記事-5]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■27 / 親記事)  Windows Vista用WinHlp32.exe
□投稿者/ AERO -(2007/04/30(Mon) 23:20:02)
http://hp.vector.co.jp/authors/VA038157/
引用返信



■記事リスト / ▼下のスレッド / ▲上のスレッド
■16 / 親記事)  仮想分配器つき通信ポート x8 V1.4.0
□投稿者/ AERO -(2007/02/18(Sun) 10:55:43)
http://hp.vector.co.jp/authors/VA038157/
    V1.4.0では現在公開中のV1.3.5から改定履歴に示す変更を行います。
    この内V1.4.0の2)の機能はほとんどのユーザーにとって無関係(メリットなし)の変更であるため、V1.4.0に同梱するするデバイスドライバーは、V1.3.5と同じ物として、デバイスドライバーの更新処理を不要にしようと思います。

    V1.4.0の2)の機能を提供するデバイスドライバーは必要な方に個別に配布するつもり。
    専用の.infファイルでデバイスドライバーを更新した場合、デバイスマネージャーにはN-Portとして表示されます。
    具体的には図のような効果が得られます。

    改定履歴
    V1.4.0
    1)メッセージボックスと、バージョン情報ダイアログボックス表示中と、適応処理の実施中は、タスクトレイ・アイコンのメニューを無効にするように変更。
    2)一部の地図ソフトに存在する「通信ポートアクセス時にCPU使用率が100%になるバグ」の症状を緩和する機能の追加(※地図ソフト側のバグです)
     ※機能を有効にするための専用の.infファイルでドライバーを更新した時にのみ有効

    V1.3.8
    1)[起動時にプラグインし、分配器の接続を行う]設定の動作を変更するレジストリ設定を追加
    [SETUP]
    AUTO_CONNECT=0 ;=0の場合は接続を行う
    AUTO_CONNECT=1 ;=1の場合は接続は行わない

    V1.3.7
    1)外部プログラムとの通信I/Fを追加
    2)その他修正

829×319 => 400×153

NPortIPS.gif
/41KB
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■22 / ResNo.1)  Re[1]: 仮想分配器つき通信ポート x8 V1.4.0
□投稿者/ AERO -(2007/03/07(Wed) 20:57:56)
http://hp.vector.co.jp/authors/VA038157/
    No16のV1.4.0の2)で示した機能ですが、仮想分配器つき通信ポート x8とは別のプログラムにしたほうが良いだろうと思い、以下のような小さなプログラムを作成してみました。(フィルタードライバーを動的にアタッチする方式)

    しかし、「バグは元から断たなきゃダメ」との思いも強く、メーカーに問い合わせしてみました。
    サポート担当氏との何回かのやり取りの末、メーカーサイドで調査を始めたらしいです。

    バグ修正モジュールがメーカーから提供されるようになることに期待です。(^^;)
530×396 => 400×298

NyFilter.gif
/13KB
引用返信
■23 / ResNo.2)  Re[2]: 仮想分配器つき通信ポート x8 V1.4.0
□投稿者/ AERO -(2007/03/13(Tue) 00:54:15)
http://hp.vector.co.jp/authors/VA038157/
    2007/03/13(Tue) 19:47:05 編集(投稿者)

    サポート担当氏から返信がありました。

    要約すると以下のような内容でした。
    【CPU使用率が100%になる現象は確認したが、アップデートプログラムを提供する予定は無い】

    他に見当違いな事が幾つか書かれていましたが、文面から推察するとCPU使用率が100%になる事を確認しただけで、原因を特定するための調査まではしなかったようです。

    期待した私がバカだった?(^^;
引用返信

■記事リスト / レス記事表示 → [親記事-2]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■11 / 親記事)  ステータス表示機能
□投稿者/ AERO -(2007/01/15(Mon) 23:27:49)
http://hp.vector.co.jp/authors/VA038157/
    動作状態を確認するために、一々メイン画面を表示するのが面倒なために邪魔にならない程度にステータス表示機能を追加してみました。

    1)作業領域の任意の位置に最上位ウィンドウとして表示。(非表示化も可)
    2)表示文字色は停止時はグレー、動作時はシアン。
      ※GUSB2ComのPVT情報非受信時は黄色。

    ステータス表示として必要な情報はこれくらいかな?(^^;
727×282 => 400×155

Status.gif
/26KB
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■12 / ResNo.1)  動作テスト環境の構成
□投稿者/ AERO -(2007/02/03(Sat) 13:27:30)
http://hp.vector.co.jp/authors/VA038157/
    こんな感じの構成で動作テストを実施中です。
    PC1(Server)は24時間連続稼動、PC2,PC3(Client)は、適時スタンバイ/レジューム又は、休止状態/復帰を繰り返しながらリモートで利用中です。

    利用アプリケーションはNavitraMap、Tera Term Pro、ハイパーターミナル、プロアトラス 2002、カシミール 3D、Navin'You、Gpsdrvr、MapSource、nRoute、FT-817 Commander等。
800×600 => 400×300

Test_Lay.gif
/55KB
引用返信
■13 / ResNo.2)  Re[2]: 動作テスト環境の構成
□投稿者/ AERO -(2007/02/03(Sat) 13:29:49)
http://hp.vector.co.jp/authors/VA038157/
    上の図の構成で、リモートで利用していると、GPSの測位状況が簡単に見たくなり、NMEAプラグインにステータス表示機能を追加してみました。

    $GPGGAと$PGRMEを利用、
    $PGRMEはGarminの独自センテンス?かもしれないのでeph,epvが表示できる人は限られるかもしれませんが(^^;

760×494 => 400×260

Status2.gif
/38KB
引用返信

■記事リスト / レス記事表示 → [親記事-2]



■記事リスト / ▲上のスレッド
■9 / 親記事)  eTrex Legend vs Legend Cx
□投稿者/ AERO -(2007/01/08(Mon) 17:37:19)
http://hp.vector.co.jp/authors/VA038157/
    手元にあるGarmin eTrex LegendとLegend Cxの比較テストを兼ねて出かけてきました。
    ログを比較してみると微妙に違いがあるのが分かります。
    緑がLegend、青がLegend Cxの軌跡です。

    Legend Cxの方が車のAピラーによる遮蔽の影響を受けやすい設置場所であることを考慮すると、多少Legend Cxのほうが頑張っているような気がしますね。(^^;
741×684 => 400×369

Legend_vs_Legend_Cx.gif
/157KB
引用返信

▽[全レス5件(ResNo.1-5 表示)]
■10 / ResNo.1)  Re[1]: eTrex Legend vs Legend Cx
□投稿者/ AERO -(2007/01/08(Mon) 17:38:10)
http://hp.vector.co.jp/authors/VA038157/
    外気温マイナス6℃、天気良し、景色良し、いい感じでした。(^^)

1024×768 => 400×300

20070108.jpg
/96KB
引用返信
■24 / ResNo.2)  Track Logの分解能の比較 他
□投稿者/ AERO -(2007/03/18(Sun) 16:04:09)
http://hp.vector.co.jp/authors/VA038157/
    Track Logの分解能の比較をしようと思ったら、ちょっと?な結果が得られました。
    中央と右はGUSB2Comを使用してGarmin ProtocolからNMEAへ変換して得られたNMEA Logとの比較、左はeTrexのNMEA出力で得られたNMEA Logとの比較です。

    LegendのTrack Logの分解能が低いのは一目瞭然ですが、Legend CxのTrack Logはちょっと?です。Track Logが暴れないように強力なフィルターが掛けられているような印象です。

    林道ツーリング時のTrack Logをカシミール3Dでみると、LegendよりLegend Cxのほうが何となく綺麗に見えるのはこのフィルターの影響が多いのかもしれない。

541×364 => 400×269

1174201449.gif
/7KB
引用返信
■25 / ResNo.3)  DGPS
□投稿者/ AERO -(2007/04/14(Sat) 16:17:15)
http://hp.vector.co.jp/authors/VA038157/
    そろそろMSASが正式運用開始されるはず?と言うことでGPSレシーバーのWAAS設定をEnabledに設定してみました。いまさらとお思いの方が多いかと思いますが...(^^;

    Legend,Legend Cxともに試験信号(MT0)であっても、DGPS表示になってます。
    Actually表示も2mを示すときがあります。

    でもLegendでWAASをEnabledの設定で使用していると、画面切り替え等の操作への反応が妙に遅くなります。
    地図画面の描画速度は私が我慢できる範囲を超えてます。
    LegendではWAAS設定をDisabledで使用したほうがよさそうです。

    それからLegend Cxでちょっとおかしな動きが...
    DGPS動作になるまでの間に2回電源がかってに切れてしまいました。
    #42,#50衛星を受信するとはじめにNの位置に表示され、そろそろFixするかなあと言ったときに電源が切れたようです。これが2回発生しました。

    仕様なのか?バグなのか?
    しばらく様子を見てみよう(^^;
646×503 => 400×311

Legend_dgps.jpg
/91KB
引用返信
■26 / ResNo.4)  Re[2]: DGPS
□投稿者/ AERO -(2007/04/14(Sat) 16:26:50)
http://hp.vector.co.jp/authors/VA038157/
    ちなみにDGPS時のGUSB2ComとSPBridgeのステータス表示はこんな感じ。
    NMEAログを調べてみたら以下の値が最良値だったみたいです。(30分位の走行時)

    $PGRME,2.4,M,4.9,M,5.5,M*25

301×120

DGPS_Status.gif
/4KB
引用返信
■32 / ResNo.5)  接着剤の溶解
□投稿者/ AERO -(2007/05/31(Thu) 22:56:53)
http://hp.vector.co.jp/authors/VA038157/
    購入から一年も経過していないのに、eTrex系の持病が発生してしまいました。

    ラバーバンドの接着に使われている両面テープの接着剤が溶解して滲み出て来ます。
    これが操作中に手に付くと、非常に不快です。
    ラバーバンドは一部剥離したままになってるし。

    この画像は、一度きれいに拭き取った後、再び染み出てきた時のものです。
    Legendでも、同様の状態になりましたが、Legend Cxでもとは...
    この部分はまったく改善されていないみたいです。(--メ)
800×600 => 400×300

LegendCx.jpg
/53KB
引用返信

■記事リスト / レス記事表示 → [親記事-5]






Mode/  Pass/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree Antispam Version -