FC2ブログ
ブログパーツ
TAKAさんの毎日が発見・ブログ
アマチュア無線の機器製作を中心にした日常の活動記録です (by Taka JA2GRC、このブログはFC2_BLOGを使わせていただいてます。)
≪08月   2018年09月   10月≫
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  
GPS Timer・その8
 何とか、そこそこ動き出したのですが、一つだけ問題が。
 どうも、シリアルポートを終了する時に上手く行かない時があります。 色々調べてみると、シリアルポートで通信中にクローズ処理をすると、上手く行かないみたいです。 まあ、シリアルポートの通信は、多分、割り込みを使った処理になっているのではないかと思います。 シリアル通信の部分は、一応、サンプルコードを参考にコーディングしたのですが、サンプルコード自体が、シリアル通信中のクローズ処理は考慮されていない感じです。

 で、取り敢えずの処理として、なるべく無用の衝突を避ける為、フォームの右上に付いている、「×」ボタンを表示しない様にしてみました。 ただし、このボタンを表示しない様にすると、「最小化」「最大化」ボタンも同時に表示しなくなってしまいます。 まあ、今回のプログラムの場合は、このボタンは無くてもかまいませんが。 まあ、これで、衝突のチャンスは少しは減ります。 ただし、「切断する」ボタンを押すタイミングで、やっぱりハングアップするのは変わりないです。

180204_gps_timer_34.jpg

 で、色々調べたら、やっぱり同じ問題で困っている方が多く居るみたいで、幾つか情報が出てきます。 ただ、解決法のサンプルコードがC#でしか見つかりません。 VB.netでは、この処理は無いのでしょうかね? 取り敢えず、サンプルコードをフォームアプリ様に書き換えて何とか動かしてみましたが、久しぶりのC#で、あっちで躓き、こっちで躓きでした。 なんとか、動く様になって、試してみたら、この方法なら、上手く衝突しない様にクローズしてくれているようです。

 さて、問題点と解決方法は見つかりましたが、どうするかな? GPS_TimerはVB.netでコーディングしてあるので、これをC#で書き換えるか、あるいは、C#で上手く行ったクローズの方法をVB.netで書き換える方法を探して、全部VB.netで書いてしまうか。 さて、どうしようかなぁ?

180204_gps_timer_35.jpg
コメント
この記事へのコメント
URL :
コメント :
パスワード :
管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
Template designed by アクセラと+αな生活

Powered by まとめ.