▼Gainerメモ▼
デジタル出力


I/Oモジュールのデジタル出力を行うプログラムを作成する。
クリックすることにより値が変化する。



ブレッドボード


ソースコード

DOutEx.as
package {
    import flash.display.*;
    import flash.events.*;
    import flash.text.*;
    import gainer.*;

    //デジタル出力
    public class DOutEx extends Sprite {
        private var gio:Gainer;
        private var label:Array;
        private var value:Array;

        //コンストラクタ
        public function DOutEx() {
            //Gainerの生成
            gio=new Gainer("localhost",2000,Gainer.MODE1,true);
            gio.onReady=onReady;
        }

        //初期化
        private function onReady():void {
            var i:int;
            var tf:TextField;

            //ラベルの生成
            label=new Array();
            value=new Array();
            for (i=0;i<4;i++) {
                tf=new TextField();
                tf.autoSize=TextFieldAutoSize.LEFT;
                tf.background=true;
                tf.backgroundColor=0xDDDDDD;
                tf.x=10;
                tf.y=10+30*i;
                addChild(tf);
                label.push(tf);
                value.push(false);
                label[i].addEventListener(
                    MouseEvent.MOUSE_DOWN,onMouseDown);
            }            
            dOut(null);
        }

        //マウスダウンイベントの処理
        private function onMouseDown(evt:MouseEvent):void {
            dOut(evt.target);
        }
        
        //デジタル出力
        private function dOut(target:Object):void {
            var i:int=0;
            
            //値更新
            for (i=0;i<4;i++) {
                if (label[i]==target) value[i]=!value[i];
                if (value[i]) {
                    label[i].text="dout "+i+" on";
                } else {
                    label[i].text="dout "+i+" off";                    
                }
            }
            
            //デジタル出力            
            gio.digitalOutput(value);
        }
    }
}



−戻る−