--- /dev/null
+\r
+<html>\r
+<head>\r
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\r
+<script type="text/javascript" src="mimic/mbed.types.js"></script>\r
+<script type="text/javascript" src="mimic/MiMicCore.js"></script>\r
+<script type="text/javascript" src="mimic/mbed.Mcu.js"></script>\r
+<script type="text/javascript" src="mimic/mbed.DigitalOut.js"></script>\r
+<script type="text/javascript" src="mimic/mbed.DigitalIn.js"></script>\r
+<script type="text/javascript" src="mimic/mbed.AnalogOut.js"></script>\r
+<script type="text/javascript" src="mimic/mbed.AnalogIn.js"></script>\r
+<script type="text/javascript" src="mimic/mbed.BusOut.js"></script>\r
+<script type="text/javascript" src="mimic/mbed.BusIn.js"></script>\r
+<script type="text/javascript" src="mimic/mbed.BusInOut.js"></script>\r
+<script type="text/javascript" src="mimic/mbed.PortOut.js"></script>\r
+<script type="text/javascript" src="mimic/mbed.Portin.js"></script>\r
+<script type="text/javascript" src="mimic/mbed.PwmOut.js"></script>\r
+<script type="text/javascript" src="mimic/mbed.SPI.js"></script>\r
+<script type="text/javascript" src="mimic/mbed.SPISlave.js"></script>\r
+<script type="text/javascript">\r
+\r
+\r
+\r
+function log(v)\r
+{\r
+ if(v===undefined){\r
+ document.getElementById("console").value='';\r
+ }else{\r
+ document.getElementById("console").value+='['+(new Date())+']'+v+'\n';\r
+ }\r
+}\r
+\r
+/**ASYNCAPIのテスト*/\r
+function async()\r
+{\r
+ log();\r
+ log("ASYNC");\r
+ var mcu=new mbedJS.Mcu("ws://192.168.128.39/rpc/",\r
+ {\r
+ onNew:function(){\r
+ var pin=new mbedJS.PwmOut(mcu,mbedJS.PinName.p21,{\r
+ onNew:function(){\r
+ log("[PASS]onNew");\r
+ pin.write(0.33);\r
+ },\r
+ onWrite:function()\r
+ {\r
+ log("[PASS]onwrite:");\r
+ pin.read();\r
+ },\r
+ onRead:function(v)\r
+ {\r
+ log("[PASS]onread:"+v);\r
+ pin.period(1.0);\r
+ },\r
+ onPeriod:function(){\r
+ log("[PASS]onPeriod:");\r
+ pin.period_ms(1);\r
+ },\r
+ onPeriod_ms:function(){\r
+ log("[PASS]onPeriod_ms:");\r
+ pin.period_us(10);\r
+ },\r
+ onPeriod_us:function(){\r
+ log("[PASS]onPeriod_us:");\r
+ pin.pulsewidth(3);\r
+ },\r
+ onPulsewidth:function(){\r
+ log("[PASS]onPulseWidth:");\r
+ pin.pulsewidth_ms(30);\r
+ },\r
+ onPulsewidth_ms:function(){\r
+ log("[PASS]onPulseWidth_ms:");\r
+ pin.pulsewidth_us(40);\r
+ },\r
+ onPulsewidth_us:function(){\r
+ log("[PASS]onPulseWidth_us:");\r
+ mcu.close();\r
+ }\r
+ });\r
+ },\r
+ onClose:function(){\r
+ log("[PASS]onClose");\r
+ },\r
+ onError:function(){\r
+ alert("Error");\r
+ }\r
+ });\r
+}\r
+\r
+/**\r
+ * Sync\r
+ */\r
+function sync()\r
+{\r
+ log();\r
+ var g=function*(){\r
+ try{\r
+ var mcu=new mbedJS.Mcu("ws://192.168.128.39/rpc/",g);\r
+ yield mcu.waitForNew();\r
+ var pin=new mbedJS.PwmOut(mcu,mbedJS.PinName.p21,g);\r
+ log("new");\r
+ yield pin.waitForNew();\r
+ log("waitfor");\r
+ yield pin.write(0.33);\r
+ log("[PASS]write:");\r
+ var v=yield pin.read();\r
+ log("[PASS]read:"+v);\r
+ yield pin.period(1.0);\r
+ log("[PASS]period:");\r
+ yield pin.period_ms(1);\r
+ log("[PASS]period_ms:");\r
+ yield pin.period_us(10);\r
+ log("[PASS]period_us:");\r
+ yield pin.pulsewidth(3);\r
+ log("[PASS]pulseWidth:");\r
+ yield pin.pulsewidth_ms(30);\r
+ log("[PASS]pulseWidth_ms:");\r
+ yield pin.pulsewidth_us(40);\r
+ log("[PASS]pulseWidth_us:");\r
+ yield mcu.close();\r
+ }catch(e){\r
+ mcu.shutdown();\r
+ alert(e);\r
+ throw e;\r
+ }\r
+ }();\r
+ g.next();\r
+ return;\r
+\r
+}\r
+\r
+\r
+\r
+</script>\r
+</head>\r
+<body>\r
+<h1>Pwm test</h1>\r
+<hr/>\r
+<button onclick="async();">ASYNC</button>\r
+<button onclick="sync();">SYNC</button>\r
+<textarea id="console" rows="15" cols="80"></textarea>\r
+</body>
\ No newline at end of file