OSDN Git Service

2.0.2
[mimic/MiMicSDK.git] / misc / mbedJS / mbddJS.API / test.BusInOut.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" src="mbedJS/mbed.DigitalIn.js"></script>\r
10 <script type="text/javascript" src="mbedJS/mbed.AnalogOut.js"></script>\r
11 <script type="text/javascript" src="mbedJS/mbed.AnalogIn.js"></script>\r
12 <script type="text/javascript" src="mbedJS/mbed.BusOut.js"></script>\r
13 <script type="text/javascript" src="mbedJS/mbed.BusIn.js"></script>\r
14 <script type="text/javascript" src="mbedJS/mbed.BusInOut.js"></script>\r
15 <script type="text/javascript" src="mbedJS/mbed.PortOut.js"></script>\r
16 <script type="text/javascript" src="mbedJS/mbed.Portin.js"></script>\r
17 <script type="text/javascript" src="mbedJS/mbed.PwmOut.js"></script>\r
18 <script type="text/javascript" src="mbedJS/mbed.SPI.js"></script>\r
19 <script type="text/javascript" src="mbedJS/mbed.SPISlave.js"></script>\r
20 <script type="text/javascript">\r
21 \r
22 \r
23 \r
24 function log(v)\r
25 {\r
26         if(v===undefined){\r
27                 document.getElementById("console").value='';\r
28         }else{\r
29                 document.getElementById("console").value+='['+(new Date())+']'+v+'\n';\r
30         }\r
31 }\r
32 \r
33 /**ASYNCAPIのテスト*/\r
34 function async()\r
35 {\r
36         log();\r
37         log("ASYNC");\r
38         var mcu=new mbedJS.Mcu("192.168.128.39",\r
39         {\r
40                 onNew:function(){\r
41                         var bus=new mbedJS.BusInOut(mcu,[mbedJS.PinName.P0_21,mbedJS.PinName.P0_22],{\r
42                         onNew:function(){\r
43                                 log("[PASS]onNew");\r
44                                 bus.mode(mbedJS.PinMode.PullDown);\r
45                         },\r
46                         onMode:function()\r
47                         {\r
48                                 log("[PASS]onMode");\r
49                                 bus.output();\r
50                         },\r
51                         onOutput:function()\r
52                         {\r
53                                 log("[PASS]onOutput:");\r
54                                 bus.write(1);\r
55                         },\r
56                         onWrite:function()\r
57                         {\r
58                                 log("[PASS]onWrite:");\r
59                                 bus.input();\r
60                         },\r
61                         onInput:function(){\r
62                                 log("[PASS]onInput:");\r
63                                 bus.read();\r
64                         },\r
65                         onRead:function(v)\r
66                         {\r
67                                 log("[PASS]onRead:"+v);\r
68                                 mcu.close();\r
69                         }});\r
70                 },\r
71                 onClose:function(){\r
72                         log("[PASS]onClose");\r
73                 },\r
74                 onError:function(){\r
75                         alert("Error");\r
76                 }\r
77         });\r
78 }\r
79 \r
80 function async2()\r
81 {\r
82         log();\r
83         log("ASYNC2");\r
84         var mcu=new mbedJS.Mcu("192.168.128.39",\r
85         {\r
86                 onNew:function(){\r
87                         var bus=new mbedJS.BusInOut(mcu,[mbedJS.PinName.P0_21,mbedJS.PinName.P0_22],function(){\r
88                                 log("[PASS]onNew");\r
89                                 bus.mode(mbedJS.PinMode.PullDown,function()\r
90                                 {\r
91                                         log("[PASS]onMode");\r
92                                         bus.output(function()\r
93                                         {\r
94                                                 log("[PASS]onOutput:");\r
95                                                 bus.write(1,function()\r
96                                                 {\r
97                                                         log("[PASS]onWrite:");\r
98                                                         bus.input(function(){\r
99                                                                 log("[PASS]onInput:");\r
100                                                                 bus.read(function(v)\r
101                                                                 {\r
102                                                                         log("[PASS]onRead:"+v);\r
103                                                                         mcu.close();\r
104                                                                 });\r
105                                                         });\r
106                                                 });\r
107                                         });\r
108                                 });\r
109                         });\r
110                 },\r
111                 onClose:function(){\r
112                         log("[PASS]onClose");\r
113                 },\r
114                 onError:function(){\r
115                         alert("Error");\r
116                 }\r
117         });\r
118 }\r
119 \r
120 \r
121 \r
122 /**\r
123  * 誤った使用方法でExceptionが出た場合にシャットダウンできるかのテスト\r
124  */\r
125 function sync()\r
126 {\r
127         log();\r
128         var g=function*(){\r
129         try{\r
130                 var mcu=new mbedJS.Mcu("192.168.128.39",g);\r
131                 yield mcu.waitForNew();\r
132                 var bus=new mbedJS.BusInOut(mcu,[mbedJS.PinName.P0_21,mbedJS.PinName.P0_22],g);\r
133                 yield bus.waitForNew();\r
134                 yield bus.mode(mbedJS.PinMode.PullDown);\r
135                 log("[PASS]mode");\r
136                 yield bus.output();\r
137                 log("[PASS]output:");\r
138                 yield bus.write(1);\r
139                 log("[PASS]write:");\r
140                 yield bus.input();\r
141                 log("[PASS]input:");\r
142                 var v=yield bus.read();\r
143                 log("[PASS]read:"+v);\r
144                 yield mcu.close();\r
145                 log("close");\r
146         }catch(e){\r
147                 mcu.shutdown();\r
148                 alert(e);\r
149                 throw e;\r
150         }\r
151         }();\r
152         g.next();\r
153         return;\r
154 \r
155 }\r
156 \r
157 \r
158 \r
159 </script>\r
160 </head>\r
161 <body>\r
162 <h1>BusInOut test</h1>\r
163 <hr/>\r
164 <button onclick="async();">ASYNC</button>\r
165 <button onclick="async2();">ASYNC2</button>\r
166 <button onclick="sync();">SYNC</button>\r
167 <textarea id="console" rows="15" cols="80"></textarea>\r
168 </body>