--- /dev/null
+/**\r
+ * @fileOverview LPCXpresso1769の物理ピンを制御するクラスを定義する。\r
+ */\r
+\r
+(function(){\r
+var DEV=LPCXpresso1769;\r
+var BCF=DEV._BCF;\r
+var EE=DEV._EE;\r
+var isUndef=MiMicLib.isUndef;\r
+\r
+/**\r
+ * LPCXPresso1769.Pin (Pin)クラスのコンストラクタ。\r
+ * ピン識別子を元に、MCUに関連付けたPinインスタンスを生成する。\r
+ * Pinクラスは、MCUの物理ピン単位に、操作インタフェイスを定義する。\r
+ * クラスは、1ピンのポートとして実装する。\r
+ * @name LPCXpresso1769.Pin\r
+ * @constructor\r
+ * @param {object as LPCXpresso1769.Mcu} i_mcu\r
+ * インスタンスを結びつけるMcuオブジェクト。\r
+ * @param {object as ピン識別子} i_pin\r
+ * 生成するピンのピン識別子。\r
+ * @param {object as associative array} i_opt\r
+ * インスタンス生成と同時にsetOpt関数で設定する値。省略時は無視する。\r
+ * 詳細はsetOpt関数を参照。\r
+ * このクラスは、上位クラスへピンの基本的な操作機能を提供する為のものであり、ユーザが直接使用することは(あまり)ない。\r
+ * この関数は、MiMicの管理しているピン(ENET_?)も操作することが出来るが、操作してしまうとMiMicRemoteMcuとのコネクションが破壊されるので、注意すること。\r
+ * @example\r
+ * //create pin instance at P0[0]\r
+ * var mcu=new LPCXpresso1769.Mcu(“192.168.0.39”);\r
+ * var pin=new LPCXpresso1769.Pin(mcu,LPCXpresso.P0[0]);\r
+ */\r
+DEV.Pin=function Pin(i_mcu,i_pin,i_opt)\r
+{\r
+ try{\r
+ if(isUndef(i_pin)){\r
+ throw new MiMicException(EE.INVALID_PIN);\r
+ }\r
+ //1ピンのポートとして実装する。\r
+ this._port=new DEV.Port(i_mcu,[i_pin],isUndef(i_opt)?undefined:[i_opt]);\r
+ }catch(e){\r
+ throw new MiMicException(e);\r
+ }\r
+}\r
+DEV.Pin.prototype=\r
+{ \r
+ _port:null,\r
+ /**\r
+ * ピンにオプションパラメータをセットする。\r
+ * 関数は、物理ピンのレジスタに、i_optで与えられる値を設定する。\r
+ * 関数は、レジスタの位置に合わせてパラメータ値を自動的にシフトする。\r
+ * @name LPCXpresso1769.Pin#setOpt\r
+ * @function\r
+ * @param {object as associative array} i_opt\r
+ * ピンコンフィグレーションのパラメタである。必要な値を格納した連想配列で指定する。\r
+ * 全ての値を省略することは出来ない。連想配列のメンバは以下の通り。\r
+ * <pre>{sel,mode,od}</pre>\r
+ * <ul>\r
+ * <li>sel:int - 2bitのint値。 PINSEL? レジスタに指定する値。UM10360 Chapter8.LPC17xx Pin connect block を参照。</li>\r
+ * <li>mode:int - 1bitのint値。PINMODE? レジスタに指定する値。UM10360 Chapter8.LPC17xx Pin connect block を参照。</li>\r
+ * <li>od:int - 1bitのbit値 PINMODE_OD? レジスタに指定する値。UM10360 Chapter8.LPC17xx Pin connect block を参照。</li>\r
+ * </ul>\r
+ * @example\r
+ * //set GPIO,mode=1,open drain=0\r
+ * var mcu=new LPCXpresso1769.Mcu(“192.168.0.39”);\r
+ * var pin=new LPCXpresso1769.Pin(mcu,LPCXpresso.P2[3]);\r
+ * pin.setOpt({sel:0,mode:1,od:0}); \r
+ */\r
+ setOpt:function setOpt(i_opt)\r
+ {\r
+ try{\r
+ //portのsetOptで合成\r
+ this._port.setOpts([i_opt]);\r
+ }catch(e){\r
+ throw new MiMicException(e);\r
+ }\r
+ return;\r
+ }\r
+}\r
+\r
+}());
\ No newline at end of file