VC++6.0にてRS-232Cポートを利用した端末機との通信プログラムを作成しています。
このプログラムは、通常では問題ないのですが他のソフトを起動させることや、他のソフトで処理(重い処理の場合は顕著にでます)を行うと通信エラーが発生し、正常終了できません。
原因としては、他のソフトなどの処理の際に232Cポートからの応答信号が認識できていないため、エラーが発生しているような気がします。
Cプログラムはまだ初心者のため、この回避方法がわかりません。もしかすると単純な命令で回避できるのかもしれないのですが、わかる方がいれば教えてください。
ちなみに、開発環境はVC++6.0EnterPrise Edition、Win2000SP4(CPU=C-1.7G、MEM=512MB)です。
CPUの速度やメモリの容量により多少差はあるかも知れませんが上記ソフトをWinXPSP2のCPU=P4-3GHz、メモリ=1GBで実行してもメモ帳ソフトを起動しただけでエラーになる場合があります。
わからない点などありましたら補足しますので、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
原因が推測どおりであるとするなら、
Windows は、リアルタイム処理には向かない OS なので、
そういうものだと思った方がよいかもしれません。
根本的に解決するには、通信の時間制約自体を改良するか、
専用のドライバを書くべきかと思います。
【警告】
以下の対策は、場当たり的に回避策であり、
不用意に実施すると PC が処理を受け付けなくなる等の
危険性が予測されます。十分に処理を検討してください。
場当たり対応としては、SetPriorityClass で当該処理の
優先度を引き上げれば、改善されるかもしれません。
(完全に解消されるとは限りません)
今回の通信は、通信する信号が少なく処理が数十ミリsecで終了するものでしたので、その通信中だけ回答にあった優先度をあげる処理を実行して、正常に動作できるようになりました。
優先度を上げる時間が少ないこともあってか、他への影響も今のところなさそうです。
助かりました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 画像編集・動画編集・音楽編集 動画編集の処理時間と編集後の動画容量について 2 2022/12/29 21:27
- CPU・メモリ・マザーボード Windows11アップデート後の不具合(メモリ不足)について 9 2023/01/04 11:34
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- プリンタ・スキャナー キャノンmp490プリンター【エラー番号5400】で【プリンタートラブルが発生しました。電源を入れ直 2 2023/07/24 17:45
- デスクトップパソコン ん~…分からん 7 2022/06/10 10:47
- デスクトップパソコン 問題が発生したため、PCを再起動する必要があります。エラー情報を収集しています。自動的に再起動します 5 2022/06/02 11:15
- Visual Basic(VBA) Vba 互換モードでのAppActiveについて教えてください 2 2022/06/27 18:47
- 携帯型ゲーム機 ニンテンドースイッチについてです。 長文失礼します 今朝までポケモンSVをプレイしていたのですが、突 1 2023/02/12 21:19
- CPU・メモリ・マザーボード hp dc5700SFFについて 2 2022/06/03 10:50
- ノートパソコン Windowsが起動しない状態からデータを回収したい 初質問失礼します。 先日、Windowsのデー 5 2023/06/18 17:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
private subモジュールを他のモ...
-
SubとFunctionの使い分け方。(...
-
IF文に時間(何時から何時ま...
-
マクロで、次のコードへ行く前...
-
Word VBA。各マクロの間に待ち...
-
どう増強すべきか
-
特定のファイルを他のプロセス...
-
シートモジュールを複数作成す...
-
タイマーの使い方
-
【C#】Page_Loadさせない方法に...
-
VBAでBook読み込み時の非表示方...
-
vbaのエラー対応(実行時エラー...
-
エクセル VBAで複数セル選択時...
-
シグナル 6(SIGABRT)とは?
-
特定の名前のオートシェイプの...
-
ProgressBarを用いる場合、全体...
-
バッチ処理って何?
-
RaiseEventのメリット
-
【Vb.net】プリンタジョブの取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
IF文に時間(何時から何時ま...
-
private subモジュールを他のモ...
-
シグナル 6(SIGABRT)とは?
-
Functionで戻り値を複数返す方法
-
特定の名前のオートシェイプの...
-
ExcelのVBAで、選択したファイ...
-
マクロで、次のコードへ行く前...
-
どう増強すべきか
-
VBA 複数の行を高速で削除する...
-
Excel VBA セルの名前があるか...
-
特定のファイルを他のプロセス...
-
Word VBA。各マクロの間に待ち...
-
どうやってもFor文を抜けてしま...
-
【VBA】エラー処理で別プロシー...
-
エクセル VBAで複数セル選択時...
-
シェルスクリプトでファイル内...
-
【Vb.net】プリンタジョブの取得
-
vbaのエラー対応(実行時エラー...
-
VBAでBook読み込み時の非表示方...
おすすめ情報