ソフトウエア準リアルタイムライブラリ on Windows

RealTimeTimer.h

RealTimeTimer.cpp

RealTimeDialogDlg.h

RealTimeDialogDlg.cpp

Copyright (C) 2002-2011 Yohei HOSHINO. All rights reserved.

概要

このソフトウエアは上記のファイルで構成されています.

このソフトウエアを「ソフトウエア準リアルタイムライブラリ on Windows(R)」と呼びます.

このソフトウエアの利用すると,ミリ秒からサブミリ秒のサンプリング周期でのリアルタイム計測制御環境をwindowsで簡単に構築できます.

厳密なリアルタイムではありませんが,計測制御装置の制御系の試作や実験などには十分な性能を持っていると思います.

完全にアプリケーションレイヤーで動作しますので,大きな容量のメモリの使用なども通常のソフトウエアと同様に行えます.

windows で使用できるAD/DA変換ボードなども使用でき,簡易的なリアルタイム計測制御環境をwindowsで簡単に構築できます.

2011年10月1日からオープンソースのソフトウエアとして公開しました.

このソフトウエアの使用にあたっては,はじめにソフトウエア使用許諾.pdfをお読みください.

ダウンロード

[Download]

使用法

visual C++ 6.0のプロジェクトファイルまたはvisual C++ 2008のソリューションファイルを開きコンパイルしてください. visual C++ 2005で使用する場合は,visual C++ 6.0の.dswファイルをソリューションファイルに変換して使用できます.

リアルタイムで処理される関数は IntervalTask() です.とりあえずはこの中に任意の処理を追加すればソフトリアルタイムで実行されます.

サンプリング周期の限界は使用するパソコンによって異なります.

windows のダイアログアプリケーションになっていますが,コンソールアプリケーションを新規作成し, RealTimeTimer.cpp RealTimeTimer.h をプロジェクトに追加して, RealTimeTimer.h をincludeすればコンソールプログラムでも利用できます. この場合には IntervalTask() 関数の実装が必要です.タイマーの利用法はサンプルと同様です.

Windowsのコンソールアプリケーションの特性上ダイアログアプリケーションのほうが性能が良いはずです. サンプルプログラムではダイアログを最大化表示させることによってWindowsがリアルタイム以外(ほかのアプリケーションのウインドウ表示処理等)の処理を行うのを防いでいます.コンソールアプリケーションではこのようなことはできません.

うまく動作しないときは,RealTimeTimer.cpp中のTHREAD_PRIORITY_TIME_CRITICAL,THREAD_PRIORITY_HIGHESTをそれぞれ,THREAD_PRIORITY_HIGHEST,THREAD_PRIORITY_ABOVE_NORMALなどに変更して,リアルタイムスレットの優先順位を変更するとうまく動作するようになる場合があります.

更新履歴

アクセスカウント

accesses