Web edits
[beagleboard.org.git] / db / 2894.xml
blobfc3a3c206a9cc18da3c9c97d31799dd6f0afbebd
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <?xml-stylesheet type="text/xsl" href="helma.xsl"?>
3 <xmlroot xmlns:hop="http://www.helma.org/docs/guide/features/database">
4   <hopobject id="2894" name="spacebrew" prototype="Page" created="1374363966505" lastModified="1374364867044">
5   <hop:parent idref="2471" prototyperef="Page"/>
6     <is_xhtml type="boolean">true</is_xhtml>
7     <http_remotehost>127.0.0.1</http_remotehost>
8     <http_language>en-US,en;q=0.8</http_language>
9     <uri>spacebrew</uri>
10     <http_browser>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36</http_browser>
11     <time type="date">20.07.2013 19:01:07 CDT</time>
12     <hopsession>127.0.0.13.7.64.jzdxkm1pger2</hopsession>
13     <body>&lt;h1&gt;&lt;a href=&quot;http://spacebrew.cc&quot; class=&quot;external&quot;&gt;Spacebrew&lt;/a&gt;&lt;/h1&gt;\r
14 &lt;iframe width=&quot;950&quot; height=&quot;800&quot; src=&quot;http://spacebrew.github.io/spacebrew/admin/admin.html?server=sandbox.spacebrew.cc&quot;&gt;&lt;/iframe&gt;\r
15 &lt;script src=&quot;/static/sb.js&quot;&gt;&lt;/script&gt;\r
16 &lt;script src=&quot;/static/bonescript.js&quot;&gt;&lt;/script&gt;\r
17 &lt;script&gt;\r
18 (function(){\r
19 setTargetAddress(&apos;192.168.7.2&apos;, {initialized: run});\r
20 function run() {\r
21     var b = require(&apos;bonescript&apos;);\r
22     var random_id = &quot;0000&quot; + Math.floor(Math.random() * 10000);\r
23     var app_name = &quot;BeagleBone Bacon Cape &quot; + random_id.substring(random_id.length-4);\r
25     var button = &quot;P8_19&quot;;\r
26     var slider = &quot;P9_36&quot;;\r
27     var led_red = &apos;P9_42&apos;;\r
28     var led_green = &apos;P9_14&apos;;\r
29     var led_blue = &apos;P9_16&apos;;\r
30     var buttonState = b.HIGH;\r
31     var sliderState = 0;\r
33     // configure digital I/O pins\r
34     b.pinMode(button, b.INPUT);\r
35     b.pinMode(led_red, b.OUTPUT);\r
36     b.pinMode(led_green, b.OUTPUT);\r
37     b.pinMode(led_blue, b.OUTPUT);\r
38     \r
39     // create spacebrew client object\r
40     var sb = new Spacebrew.Client({reconnect:true});\r
41     \r
42     // set the base description\r
43     sb.name(app_name);\r
44     sb.description(&quot;This spacebrew client runs on BeagleBoard.org with&quot; +\r
45         &quot; BoneScript and interacts with BeagleBone and the Bacon Cape.&quot;);\r
46     \r
47     // configure the publication and subscription feeds\r
48     sb.addPublish(&quot;buttonPress&quot;, &quot;boolean&quot;, &quot;false&quot;);\r
49     sb.addPublish(&quot;slider&quot;, &quot;range&quot;, &quot;0&quot;);\r
50     sb.addSubscribe(&quot;red&quot;, &quot;range&quot;, &quot;0&quot;);\r
51     sb.addSubscribe(&quot;green&quot;, &quot;range&quot;, &quot;0&quot;);\r
52     sb.addSubscribe(&quot;blue&quot;, &quot;range&quot;, &quot;0&quot;);\r
53     \r
54     // override Spacebrew events - this is how you catch events coming from Spacebrew\r
55     sb.onOpen = onOpen;\r
56     sb.onRangeMessage = onRangeMessage;\r
57     \r
58     // connect to spacbrew\r
59     sb.connect();\r
60     \r
61     function onOpen() {\r
62         setInterval(readButton, 100);\r
63         setInterval(readSlider, 100);\r
64     }\r
65     \r
66     function readButton() {\r
67         b.digitalRead(button, onButtonRead);\r
68     }\r
69     \r
70     function onButtonRead(x) {\r
71         if(buttonState != x.value) {\r
72             buttonState = x.value;\r
73             sb.send(&quot;buttonPress&quot;, &quot;boolean&quot;, (x.value == b.LOW) ? &quot;true&quot; : &quot;false&quot;);\r
74         }\r
75     }\r
76     \r
77     function readSlider() {\r
78         b.analogRead(slider, onSliderRead);\r
79     }\r
80     \r
81     function onSliderRead(x) {\r
82         if(sliderState != x.value) {\r
83             sliderState = x.value;\r
84             sb.send(&quot;slider&quot;, &quot;range&quot;, &quot;&quot; + parseInt(x.value * 1023, 10));\r
85         }\r
86     }\r
87     \r
88     function onRangeMessage(name, value) {\r
89         var intensity = 1.0 - (value/1023);\r
90         switch(name) {\r
91             case &quot;red&quot;: \r
92                 b.analogWrite(led_red, intensity);\r
93                 break;\r
94             case &quot;blue&quot;: \r
95                 b.analogWrite(led_blue, intensity);\r
96                 break;\r
97             case &quot;green&quot;: \r
98                 b.analogWrite(led_green, intensity);\r
99                 break;\r
100         }\r
101     }\r
103 })();\r
104 &lt;/script&gt;</body>
105     <pseudoparent idref="2471" prototyperef="Page"/>
106     <http_referer>http://beagleboard.org/support/BoneScript/spacebrew/edit</http_referer>
107     <http_host>beagleboard.org</http_host>
108     <user>jkridner@gmail.com</user>
109     <lang>en-us</lang>
110   </hopobject>
111 </xmlroot>