掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
APIのSetCommStateでStopBitを1にすると必ずエラーになるのを解消するには? (ID:148204)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> ヘッダファイルの参照から以下のようにしてみました。(かなり時間が掛かりました) どのような対処をしたのか、は分かりましたが、 その結果はどうだったのでしょうか? 同じような問題を抱えたままなのか、それとも結果が変わったのか。 引き続きエラーがでるのだとしたら、先に確認をお願いしていた Marshal.GetLastWin32Error の結果はどうだったのか。 >「1 ストップビット」を渡すつもりがそのまま「1」を与えていました。 という事は、「1 ストップビット(= 0)」や「2 ストップビット(= 2)」では エラーが発生せず、「1.5 ストップビット(= 1)」のみがエラーになる、という 質問に変更ということでしょうか。 それとも、1 ストップビットは指定できているので、問題は解決したのでしょうか。 > 先輩からの引継ぎなのでそのまま使用しています。 恐らくは .NET 1.x 時代のコードを使いまわしていたのであろうと推測します。 今回は VB2010 なので、最低でも .NET 2.0 向け…できれば .NET 4 用に コードを見直すべきかと思いますが、そのような工数を取りにくいかと思います。 それでも、標準の SerialPort クラスでも同じ現象になっていまうのかどうかについては 簡単な実験用アプリを作るなどして、試しておいた方が良いと思いますよ。 その結果、SerialPort クラスでも失敗するようであれば、プログラムではなく 機器側環境側あるいはハード仕様について確認が必要かも知れません。 あるいはその逆に SerialPort であれば成功するようであれば、 API の呼び出しを見直す工数と、SerialPort に変更するための工数を それぞれ天秤にかけて、調査を続行するか修正するかを判断できるかと。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.