Ejemplo n.º 1
0
        // トラバース制御
        private bool ControlTraversal()
        {
            var result  = false;
            var ctlId   = 0;
            var trvCtlr = new TraverseController();

            // 制御ロジック
            // 1) 両耳高
            if ((LeftTenStatus.TenAve > LeftTenStatus.TenMax) & (RightTenStatus.TenAve > RightTenStatus.TenMax))
            {
                // オサ幅を狭くする(強)
                ctlId = 1;
            }
            // 2) 左耳高、右耳低
            else if ((LeftTenStatus.TenAve > LeftTenStatus.TenMax) & (RightTenStatus.TenAve < RightTenStatus.TenMin))
            {
                // オサ位置を右へ移動(強)
                ctlId = 2;
            }
            // 3) 左耳高
            else if ((LeftTenStatus.TenAve > LeftTenStatus.TenMax) &
                     (RightTenStatus.TenAve > RightTenStatus.TenMin) & (RightTenStatus.TenAve < RightTenStatus.TenMax))
            {
                // オサ位置を右へ移動(弱)
                // オサ幅を狭める(弱)
                ctlId = 3;
            }
            // 4) 左耳低、右耳高
            else if ((LeftTenStatus.TenAve < LeftTenStatus.TenMin) & (RightTenStatus.TenAve > RightTenStatus.TenMax))
            {
                // オサ位置を左へ移動(強)
                ctlId = 4;
            }
            // 5) 右耳高
            else if ((LeftTenStatus.TenAve < LeftTenStatus.TenMax) & (LeftTenStatus.TenAve > LeftTenStatus.TenMin) &
                     (RightTenStatus.TenAve > RightTenStatus.TenMax))
            {
                // オサ位置を左へ移動(弱)
                // オサ幅を狭める(弱)
                ctlId = 5;
            }
            // 6) 左耳低
            else if ((LeftTenStatus.TenAve < LeftTenStatus.TenMin) &
                     (RightTenStatus.TenAve > RightTenStatus.TenMin) & (RightTenStatus.TenAve < RightTenStatus.TenMax))
            {
                // オサ幅を広げる(弱)
                // オサ位置を左へ移動(弱)
                ctlId = 6;
            }
            // 7) 右耳低
            else if ((LeftTenStatus.TenAve < LeftTenStatus.TenMax) & (LeftTenStatus.TenAve > LeftTenStatus.TenMin) &
                     (RightTenStatus.TenAve < RightTenStatus.TenMin))
            {
                // オサ幅を広げる(弱)
                // オサ位置を右へ移動(弱)
                ctlId = 7;
            }
            // 8) 両耳低傾向
            else if ((LeftTenStatus.TenAve < LeftTenStatus.TenMin) & (RightTenStatus.TenAve < RightTenStatus.TenMin))
            {
                // オサ幅を広げる(強)
                ctlId = 8;
            }
            // 9) 正常範囲
            else
            {
                // 制御なし
                ctlId = 9;
            }

            // 制御開始
            result = trvCtlr.TraverseControl(IpAddressBox.Text, Int32.Parse(PortBox.ToString()), ctlId);

            // リセット
            ControlValueReset();

            return(result);
        }