OSDN Git Service

git-svn-id: http://svn.osdn.jp/svnroot/mimic/trunk@106 47198e57-cb75-475f-84c4-a814cd...
[mimic/MiMicSDK.git] / misc / MiMicVM / api.js / LPCXPresso1769.Gpio.js
index 828787b..6c57dc4 100644 (file)
@@ -115,6 +115,33 @@ DEV.Gpio.prototype={
                }catch(e){\r
                        throw new MiMicException(e);\r
                }\r
+       },\r
+       /**\r
+        * Gpio機能を持つポート(Pin集合)を取得する。\r
+        * ピン識別子で指定されるピンのセットをGpioペリフェラルと結合して、GpioPortを生成する。\r
+        * 関数は、GpioPortのコンストラクタをコールする。\r
+        * 生成ルールについては、GpioPort関数を参照すること。\r
+        * @name LPCXpresso1769.Gpio#getPort\r
+        * @function\r
+        * @param {array[ピン識別子]} i_pin\r
+        * Gpioポートを構成するPINの識別子の配列である。値は、LPCXpresso1769.Pn[m]のメンバ変数である。\r
+        * @param {object as associative array} i_opt\r
+        * GpioPortのコンストラクタに渡すオプション値。省略時はundefinedである。詳細はLPCXpresso1769.GpioPort.setOptを参照。\r
+        * @return {object as LPCXpresso1769.GpioPort}\r
+        * LPCXpresso1769.GpioPortクラスのオブジェクトである。\r
+        * @example\r
+        * //create 2AdcPort that has 2 pins.\r
+        * var mcu=new LPCXpresso1769.Mcu("192.168.0.39");\r
+        * var gpio=new LPCXpresso1769.Gpio(mcu);\r
+        * var port=gpio.getPort([LPCXpresso1769.P0[0],LPCXpresso1769.P0[1]]);\r
+        */     \r
+       getPort:function getPort(i_pins,i_opt)\r
+       {\r
+               try{\r
+                       return new DEV.GpioPort(this,i_pins,i_opt);\r
+               }catch(e){\r
+                       throw new MiMicException(e);\r
+               }\r
        }\r
 }\r
 \r
@@ -140,7 +167,27 @@ function pin2GpioPinInfo(i_pin)
        }\r
 }\r
 \r
-\r
+/**\r
+ * LPCXPresso1769.GpioPort (GpioPort)クラスのコンストラクタ。複数のGPIOピンを一括して操作する、パラレルポート等に使用する。\r
+ * Gpioペリフェラルオブジェクトに、ピン識別子の配列で指定されたピン集合を関連付けて、GPIO機能を持つポートを生成する。\r
+ * 関数は、ピン識別子を元に、そのピンがGPIO機能に接続できるかを調べる。全てのピンにGPIO機能を割り当てられない場合、例外が発生する。どのピンにGPIO機能が割り当てられるかは、MCUのスペックシートを参照すること。\r
+ * @constructor\r
+ * @name LPCXpresso1769.GpioPort\r
+ * @param {object as LPCXpresso1769.Gpio} i_gpio\r
+ * インスタンスを結びつけるGpioオブジェクト。\r
+ * @param {array[pin識別子]} i_pins\r
+ * ピン識別子の配列。指定できるのは、LPCXpresso1796.P?[?]である。順番は、このインスタンスの返す値の順序に影響する。\r
+ * 0番目のピンはビット0に対応する。同様に、1番目のピンはビット1に対応する。\r
+ * 組み合わせるピンは、同じ物理ポートに所属している必要がある。例えば、GPIO0.0とGPIO0.1は組み合わせられるが、GPIO0.0とGPIO1.1は組み合わせることが出来ない。\r
+ * @param {object as associative array} i_opt\r
+ * setOpt関数のi_optに渡すパラメタである。省略可能。省略時は{pin:{sel:auto}}を設定する。\r
+ * autoは、関数が自動的に決定するPINSELの値である。詳細はsetOpt関数を参照。 \r
+ * @example\r
+ * //create [AD0.0,AD0.1]\r
+ * var mcu=new LPCXpresso1769.Mcu(“192.168.0.39”);\r
+ * var gpio=new LPCXpresso1769.Gpio(mcu);\r
+ * var port=new LPCXpresso1769.GpioPort(adc,[LPCXpresso1769.P0[0],LPCXpresso1769.P0[1]]); \r
+ */\r
 DEV.GpioPort=function GpioPort(i_gpio,i_pins,i_opt)\r
 {\r
        try{\r
@@ -185,6 +232,15 @@ DEV.GpioPort.prototype=
        _port_no:0,\r
        _port:null,\r
        _mask:0,\r
+       /**\r
+        * Gpioポートにオプション値を設定する。\r
+        * 関数は、ポートを構成する全てのピンに、同一なオプション値を設定する。\r
+        * 設定可能な値は、LPCXpresso1769.GpioPin#setOptと同じである。\r
+        * @name LPCXpresso1769.GpioPort#setOpt\r
+        * @function\r
+        * @param {object as associative array} i_opt\r
+        * LPCXpresso1769.GpioPin#setOptを参照。\r
+        */     \r
        setOpt:function setOpt(i_opt)\r
        {\r
                try{\r
@@ -213,6 +269,21 @@ DEV.GpioPort.prototype=
                        throw new MiMicException(e);\r
                }\r
        },\r
+       /**\r
+        * ポートの出力状態を設定する。\r
+        * 値は、nビットの整数値で指定する。nは、ポートを構成するピン数である。\r
+        * この関数は、directionを1(output)に設定したポートで使用できる。inputに設定したピンには使用できない。\r
+        * @name LPCXpresso1769.GpioPort#setValue\r
+        * @function\r
+        * @param {int} i_val\r
+        * nビットの出力値。ビット数は、このポートを構成するピンの数に一致する。2ビットのポートを構成したときに0x03を指定すると、2本のピンがON状態になる。\r
+        * @example\r
+        * //set P0[0] pin to “on”. If LED was connected pin it will turn on.\r
+        * var mcu=new LPCXpresso1769.Mcu("192.168.0.39");\r
+        * port=mcu.getPort([LPCXpresso1769.P0[0],LPCXpresso1769.P0[1]],"GPIO");\r
+        * port.setOpt({dir:1,pin:{mode:1,od:0}});\r
+        * port.setValue(0x3);   \r
+        */     \r
        setValue:function setValue(i_val)\r
        {\r
                try{\r
@@ -232,6 +303,21 @@ DEV.GpioPort.prototype=
                        throw new MiMicException(e);\r
                }\r
        },\r
+       /**\r
+        * ポートの入力状態を返す。\r
+        * 値は、nビットの整数値である。nは、ポートを構成するピン数である。\r
+        * この関数は、directionを0(input)に設定したポートで使用できる。outputに設定したピンには使用できない。\r
+        * @function\r
+        * @return {int}\r
+        * nビットの整数値。ビット数は、このポートを構成するピンの数に一致する。2ビットのポートを構成したときに1,1の入力があると、0x03が返る。\r
+        * @name LPCXpresso1769.GpioPort#getValue\r
+        * @example\r
+        * //show P0[0] value\r
+        * var mcu=new LPCXpresso1769.Mcu("192.168.0.39");\r
+        * var port=mcu.getPort([LPCXpresso1769.P0[0],LPCXpresso1769.P0[1]],"GPIO");\r
+        * port.setOpt({dir:0,pin:{mode:0,od:0}});\r
+        * alert(port.getValue());       \r
+        */     \r
        getValue:function getValue()\r
        {\r
                try{\r
@@ -251,6 +337,23 @@ DEV.GpioPort.prototype=
                        throw new MiMicException(e);\r
                }\r
        },\r
+       /**\r
+        * 直列化された値パターンを出力する。\r
+        * ポートに連続した値パターンを出力するときに使用する。\r
+        * 出力速度はMCU依存であり、コントロールできない。\r
+        * この関数は、directionを1(output)に設定したポートで使用できる。inputに設定したピンには使用できない。\r
+        * @name LPCXpresso1769.GpioPort#outPatt\r
+        * @function\r
+        * @param {array[int]} i_val_array\r
+        * ビットパターンの配列。nビットの値(0 or 1)の配列を指定する。最大数は20である。ビット数は、このポートを構成するピンの数に一致する。\r
+        * [3,0,3,0]の場合、0,3,0,3の順に、パターンを出力する。\r
+        * @example\r
+        * //output  0x01,0x02 to P0[0]+P0[1]\r
+        * var mcu=new LPCXpresso1769.Mcu("192.168.0.39");\r
+        * var port=mcu.getPin([LPCXpresso1769.P0[0],LPCXpresso1769.P0[1]],"GPIO");\r
+        * port.setOpt({dir:1,pin:{mode:1,od:0}});\r
+        * port.outPatt([0x01,0x02]);\r
+        */     \r
        outPatt:function outPatt(i_val_array)\r
        {\r
                try{\r