OSDN Git Service

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