OSDN Git Service

2.0.2
[mimic/MiMicSDK.git] / misc / mbedJS / mbddJS.API / test.DigitalOut.html
1 \r
2 <html>\r
3 <head>\r
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\r
5 <script type="text/javascript" src="mbedJS/mbed.types.js"></script>\r
6 <script type="text/javascript" src="mbedJS/MiMicCore.js"></script>\r
7 <script type="text/javascript" src="mbedJS/mbed.Mcu.js"></script>\r
8 <script type="text/javascript" src="mbedJS/mbed.DigitalOut.js"></script>\r
9 <script type="text/javascript">\r
10 \r
11 \r
12 \r
13 function log(v)\r
14 {\r
15         if(v===undefined){\r
16                 document.getElementById("console").value='';\r
17         }else{\r
18                 document.getElementById("console").value+='['+(new Date())+']'+v+'\n';\r
19         }\r
20 }\r
21 \r
22 /**ASYNCAPIのテスト*/\r
23 function async()\r
24 {\r
25         log();\r
26         log("ASYNC");\r
27         var mcu=new mbedJS.Mcu("192.168.128.39",\r
28         {\r
29                 onNew:function(){\r
30                         var pin=new mbedJS.DigitalOut(mcu,mbedJS.PinName.P0_22,{\r
31                         onNew:function(){\r
32                                 log("[PASS]onNew");\r
33                                 pin.read();\r
34                         },\r
35                         onWrite:function(){\r
36                                 log("[PASS]onWrite");\r
37                                 mcu.close();\r
38                         },\r
39                         onRead:function(v){\r
40                                 log("[PASS]onRead ");\r
41                                 pin.write((v+1)%2);\r
42                         }});\r
43                 },\r
44                 onClose:function(){\r
45                         log("[PASS]onClose");\r
46                 },\r
47                 onError:function(){\r
48                         alert("Error");\r
49                 }\r
50         });\r
51 }\r
52 function async2()\r
53 {\r
54         log();\r
55         log("ASYNC2");\r
56         var mcu=new mbedJS.Mcu("192.168.128.39",\r
57         {\r
58                 onNew:function(){\r
59                         var pin=new mbedJS.DigitalOut(mcu,mbedJS.PinName.P0_22,function(){\r
60                                 log("[PASS]onNew");\r
61                                 pin.read(function(v){\r
62                                         log("[PASS]onRead "+v);\r
63                                         pin.write((v+1)%2,function(){\r
64                                                 log("[PASS]onWrite");\r
65                                                 mcu.close();                                            \r
66                                         });\r
67                                 });\r
68                         });\r
69                 },\r
70                 onClose:function(){\r
71                         log("[PASS]onClose");\r
72                 },\r
73                 onError:function(){\r
74                         alert("Error");\r
75                 }\r
76         });\r
77 }\r
78 \r
79 /**\r
80  * 誤った使用方法でExceptionが出た場合にシャットダウンできるかのテスト\r
81  */\r
82 function sync()\r
83 {\r
84         log();\r
85         var g=function*(){\r
86         try{\r
87                 var mcu=new mbedJS.Mcu("192.168.128.39",g);\r
88                 yield mcu.waitForNew();\r
89                 var pin=new mbedJS.DigitalOut(mcu,{pin:mbedJS.PinName.P0_22,value:0},g);\r
90 //              var pin=new mbedJS.DigitalOut(mcu,[mbedJS.PinName.P0_22,0],g);\r
91                 log(1);\r
92                 yield pin.waitForNew();\r
93                 log(2);\r
94                 var v=yield pin.read();\r
95                 log(3);\r
96                 yield pin.write((v+1)%2);\r
97                 log(4);\r
98                 v=yield pin.read();\r
99                 log(5);\r
100                 yield pin.write((v+1)%2);\r
101                 log(6);\r
102                 yield mcu.close();\r
103                 log(7);\r
104         }catch(e){\r
105                 mcu.shutdown();\r
106                 throw e;\r
107         }\r
108         }();\r
109         g.next();\r
110         return;\r
111 \r
112 }\r
113 \r
114 \r
115 \r
116 </script>\r
117 </head>\r
118 <body>\r
119 <h1>Digitalout test</h1>\r
120 <hr/>\r
121 <button onclick="async();">ASYNC</button>\r
122 <button onclick="async2();">ASYNC2</button>\r
123 <button onclick="sync();">SYNC</button>\r
124 <button onclick="sync2();">SYNC2</button>\r
125 <textarea id="console" rows="15" cols="80"></textarea>\r
126 </body>