目次
前
次
フォームロード処理
フォームロード時にやるべきことは、次の7種です。
- 通信プロトコル設定
- ボタン状態指定
- コンポーネントのキャプション文字列指定
- 機体番号初期化
- 内部配列初期化
- タイマー割込みイネーブル
通信プロトコル設定は前に定義したので、残りの内容を説明します。
ボタン状態指定
通信ポートの「open」「close」の状態を設定します。
btnOpen.Enabled = true;
btnClose.Enabled = false;
関連するフラグも、ここで設定します。
gPflag = false;
dflag = false;
キャプション文字列指定
サーボモータの各軸には、可動範囲があります。
範囲外の値を指定しないように、最大値、最小値を設定します。
コードは、以下です。
// max
nudGrip.Maximum = grip_max;
nudWrist.Maximum = wrist_max;
nudArm.Maximum = arm_max;
nudElbow.Maximum = elbow_max;
nudWaist.Maximum = waist_max;
// min
nudGrip.Minimum = grip_min;
nudWrist.Minimum = wrist_min;
nudArm.Minimum = arm_min;
nudElbow.Minimum = elbow_min;
nudWaist.Minimum = waist_min;
実数値は、テーブル参照できるように定義します。
static private int grip_max = 200 ;
static private int grip_min = 100 ;
static private int wrist_max = 200 ;
static private int wrist_min = 100 ;
static private int arm_max = 200 ;
static private int arm_min = 100 ;
static private int elbow_max = 200 ;
static private int elbow_min = 100 ;
static private int waist_max = 200 ;
static private int waist_min = 100 ;
機体番号初期化
機体番号は、コンポーネントnudNumberのプロパティ
にデフォルトで0に設定します。
nudNumber.Value = 0 ;
内部配列初期化
各軸の現在値、ひとつ前の値を、配列を用意して格納します。
配列宣言後、値を設定します。
now = new decimal[5];
prev = new decimal[5];
for (int i = 0; i < LAST; i++)
{
now[i] = dvalue ;
prev[i] = dvalue ;
}
定数を指定します。
static private int dvalue = 150;
static private int LAST = 5 ;
タイマー割込みイネーブル
タイマーコンポーネントをtimHandlerとして
動作許可します。
timHandler.Enabled = true;
目次
前
次