Form1 との間で複数のパラメーターを受け取って返すクラスにメソッドがあります。これらのパラメーターを使用してコードを実行するには、時限イベントを使用する必要があります。ダイナミクスを示すために、この単純化されたコードを整理しました。
class Motor
{
public static System.Timers.Timer _timer;
int valReg = 30;
public void PID(decimal _actualSpeed, Decimal _speedRequest, out Decimal _pwmAuto, out decimal _preValReg)
{
_timer = new System.Timers.Timer();
_timer.Interval = (3000);
_timer.Elapsed += new System.Timers.ElapsedEventHandler(_timerAutoset);
_timer.Enabled = true;
// {....}
_pwmAuto = valReg;
_preValReg = valReg - 1;
}
static void _timerAutoset(object sender, System.Timers.ElapsedEventArgs e)
{
/* here I need to work with:
_actualSpeed
_speedRequest
_pwmAuto
_preValReg
and send back the last two variables
*/
}
}
これは、Form1 ボタンから変数を渡したり受け取ったりする方法です。
private void button4_Click(object sender, EventArgs e)
{
// some code ................
Motor mtr = new Motor();
mtr.PID(speedRequest, actualSpeed, out pwmAuto, out xxx);
//..more code
これらのパラメータを _timerAutoset イベントとの間で受け渡しするにはどうすればよいですか?