OSDN Git Service

bccd66c53b3401c6d06dd2d19d8ada79ed8f69c7
[mimic/MiMicSDK.git] / misc / mbedJS / mbddJS.API / test.SPI.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 pin=new mbedJS.SPI(mcu,[mbedJS.PinName.p5,mbedJS.PinName.p6,mbedJS.PinName.p7],{\r
42                         onNew:function(){\r
43                                 log("[PASS]onNew");\r
44                                 pin.frequency(1000000);\r
45                         },\r
46                         onFrequency:function()\r
47                         {\r
48                                 log("[PASS]onFrequency:");\r
49                                 pin.format(8,3);\r
50                         },\r
51                         onFormat:function()\r
52                         {\r
53                                 log("[PASS]onFormat:");\r
54                                 pin.write(39);\r
55                         },\r
56                         onWrite:function(v){\r
57                                 log("[PASS]onWrite:"+v);\r
58                                 mcu.close();\r
59                         }});\r
60                 },\r
61                 onClose:function(){\r
62                         log("[PASS]onClose");\r
63                 },\r
64                 onError:function(){\r
65                         alert("Error");\r
66                 }\r
67         });\r
68 }\r
69 \r
70 \r
71 function async2()\r
72 {\r
73         log();\r
74         log("ASYNC2");\r
75         var mcu=new mbedJS.Mcu("192.168.128.39",\r
76         {\r
77                 onNew:function(){\r
78                         var pin=new mbedJS.SPI(mcu,[mbedJS.PinName.p5,mbedJS.PinName.p6,mbedJS.PinName.p7],function(){\r
79                                 log("[PASS]onNew");\r
80                                 pin.frequency(1000000,function()\r
81                                 {\r
82                                         log("[PASS]onFrequency:");\r
83                                         pin.format(8,3,function()\r
84                                         {\r
85                                                 log("[PASS]onFormat:");\r
86                                                 pin.write(39,function(v){\r
87                                                         log("[PASS]onWrite:"+v);\r
88                                                         mcu.close();\r
89                                                 });\r
90                                         });\r
91                                 });\r
92                         });\r
93                 },\r
94                 onClose:function(){\r
95                         log("[PASS]onClose");\r
96                 },\r
97                 onError:function(){\r
98                         alert("Error");\r
99                 }\r
100         });\r
101 }\r
102 /**\r
103  * 誤った使用方法でExceptionが出た場合にシャットダウンできるかのテスト\r
104  */\r
105 function sync()\r
106 {\r
107         log();\r
108         var g=function*(){\r
109         try{\r
110                 var mcu=new mbedJS.Mcu("192.168.128.39",g);\r
111                 yield mcu.waitForNew();\r
112                 var pin=new mbedJS.SPI(mcu,[mbedJS.PinName.p5,mbedJS.PinName.p6,mbedJS.PinName.p7],g);\r
113                 yield pin.waitForNew();\r
114                 log("[PASS]New");\r
115                 yield pin.frequency(1000000);\r
116                 log("[PASS]Frequency:");\r
117                 yield pin.format(8,3);\r
118                 log("[PASS]Format:");\r
119                 v=yield pin.write(39);\r
120                 log("[PASS]Write:"+v);\r
121                 yield mcu.close();\r
122                 log("close");\r
123         }catch(e){\r
124                 mcu.shutdown();\r
125                 alert(e);\r
126                 throw e;\r
127         }\r
128         }();\r
129         g.next();\r
130         return;\r
131 \r
132 }\r
133 \r
134 \r
135 \r
136 </script>\r
137 </head>\r
138 <body>\r
139 <h1>SPI test</h1>\r
140 <hr/>\r
141 <button onclick="async();">ASYNC</button>\r
142 <button onclick="async2();">ASYNC2</button>\r
143 <button onclick="sync();">SYNC</button>\r
144 <textarea id="console" rows="15" cols="80"></textarea>\r
145 </body>