OSDN Git Service

2.0.2
[mimic/MiMicSDK.git] / misc / mbedJS / mbddJS.API / test.I2C.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" src="mbedJS/mbed.Serial.js"></script>\r
21 <script type="text/javascript" src="mbedJS/mbed.I2C.js"></script>\r
22 <script type="text/javascript">\r
23 \r
24 \r
25 function log(v)\r
26 {\r
27         if(v===undefined){\r
28                 document.getElementById("console").value='';\r
29         }else{\r
30                 document.getElementById("console").value+='['+(new Date())+']'+v+'\n';\r
31         }\r
32 }\r
33 \r
34 /**ASYNCAPIのテスト*/\r
35 function async()\r
36 {\r
37         log();\r
38         log("ASYNC");\r
39         var st=0;\r
40         var mcu=new mbedJS.Mcu("192.168.128.39",\r
41         {\r
42                 onNew:function(){\r
43                         var i2c=new mbedJS.I2C(mcu,[mbedJS.PinName.p28,mbedJS.PinName.p27],{\r
44                         onNew:function(){\r
45                                 log("[PASS]onNew");\r
46                                 i2c.frequency(100000);\r
47                         },\r
48                         onFrequency:function()\r
49                         {\r
50                                 log("[PASS]onFrequency:");\r
51                                 i2c.start();\r
52                         },\r
53                         onStart:function(){\r
54                                 log("[PASS]onStart:");\r
55                                 st=0;\r
56                                 i2c.write(1);\r
57 //                              i2c.write(1);\r
58                         },\r
59                         onWrite:function(v){\r
60                                 log("[PASS]onWrite:"+v);\r
61                                 if(st==0){\r
62                                         i2c.write(0,[1,2,3],false);\r
63                                         st++;\r
64                                 }else{\r
65                                         i2c.read(1);\r
66                                         st=0;\r
67                                 }\r
68                         },\r
69                         onRead:function(v){\r
70                                 if(st==0){\r
71                                         log("[PASS]onRead:"+v);\r
72                                         i2c.read(1,2,false);\r
73                                         st++;\r
74                                 }else{\r
75                                         log("[PASS]onRead:"+v.ret+":"+v.data);\r
76                                         i2c.stop();\r
77                                 }\r
78 \r
79                         },\r
80                         onStop:function(){\r
81                                 log("[PASS]onStop:");\r
82                                 mcu.close();\r
83                         }\r
84                         });\r
85                 },\r
86                 onClose:function(){\r
87                         log("[PASS]onClose");\r
88                 },\r
89                 onError:function(){\r
90                         alert("Error");\r
91                 }\r
92         });\r
93 }\r
94 function async2()\r
95 {\r
96         log();\r
97         log("ASYNC2");\r
98         var st=0;\r
99         var mcu=new mbedJS.Mcu("192.168.128.39",\r
100         {\r
101                 onNew:function(){\r
102                         var i2c=new mbedJS.I2C(mcu,[mbedJS.PinName.p28,mbedJS.PinName.p27],function(){\r
103                                 log("[PASS]onNew");\r
104                                 i2c.frequency(100000,function()\r
105                                 {\r
106                                         log("[PASS]onFrequency:");\r
107                                         i2c.start(function(){\r
108                                                 log("[PASS]onStart:");\r
109                                                 i2c.write(1,function(v){\r
110                                                         log("[PASS]onWrite:"+v);\r
111                                                         i2c.write(0,[1,2,3],false,function(v){\r
112                                                                 log("[PASS]onWrite:"+v);\r
113                                                                 i2c.read(1,function(v){\r
114                                                                         log("[PASS]onRead:"+v);\r
115                                                                         i2c.read(1,2,false,function(v){\r
116                                                                                 log("[PASS]onRead:"+v.ret+":"+v.data);\r
117                                                                                 i2c.stop(function(){\r
118                                                                                         log("[PASS]onStop:");\r
119                                                                                         mcu.close();\r
120                                                                                 });\r
121                                                                         });\r
122                                                                 });                                                             \r
123                                                         });\r
124                                                 });\r
125                                         });\r
126                                 });\r
127                         });\r
128                 },\r
129                 onClose:function(){\r
130                         log("[PASS]onClose");\r
131                 },\r
132                 onError:function(){\r
133                         alert("Error");\r
134                 }\r
135         });\r
136 }\r
137 /**\r
138  * \r
139  */\r
140 function sync()\r
141 {\r
142         log();\r
143         var g=function*(){\r
144         try{\r
145                 var v;\r
146                 var mcu=new mbedJS.Mcu("192.168.128.39",g);\r
147                 yield mcu.waitForNew();\r
148                 var i2c=new mbedJS.I2C(mcu,[mbedJS.PinName.p28,mbedJS.PinName.p27],g);\r
149                 yield i2c.waitForNew();\r
150                 log("[PASS]onNew");\r
151                 yield i2c.frequency(100000);\r
152                 log("[PASS]onFrequency:");\r
153                 yield i2c.start();\r
154                 log("[PASS]onStart:");\r
155                 v=yield i2c.write(1);\r
156                 log("[PASS]onWrite:"+v);\r
157                 v=yield i2c.write(0,[1,2,3],false);\r
158                 log("[PASS]onWrite2:"+v);\r
159                 v=yield i2c.read(1);\r
160                 log("[PASS]onRead:"+v);\r
161                 v=yield i2c.read(1,2,false);\r
162                 log("[PASS]onRead:"+v.ret+":"+v.data);\r
163                 yield i2c.stop();\r
164                 log("[PASS]onStop:");\r
165                 yield mcu.close();\r
166         }catch(e){\r
167                 mcu.shutdown();\r
168                 alert(e);\r
169                 throw e;\r
170         }\r
171         }();\r
172         g.next();\r
173         return;\r
174 \r
175 }\r
176 \r
177 \r
178 \r
179 </script>\r
180 </head>\r
181 <body>\r
182 <h1>I2C test</h1>\r
183 <hr/>\r
184 <button onclick="async();">ASYNC</button>\r
185 <button onclick="async2();">ASYNC2</button>\r
186 <button onclick="sync();">SYNC</button>\r
187 <textarea id="console" rows="15" cols="80"></textarea>\r
188 </body>