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>
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><h1><a href="http://spacebrew.cc" class="external">Spacebrew</a></h1>
\r
14 <iframe width="950" height="800" src="http://spacebrew.github.io/spacebrew/admin/admin.html?server=sandbox.spacebrew.cc"></iframe>
\r
15 <script src="/static/sb.js"></script>
\r
16 <script src="/static/bonescript.js"></script>
\r
19 setTargetAddress('192.168.7.2', {initialized: run});
\r
21 var b = require('bonescript');
\r
22 var random_id = "0000" + Math.floor(Math.random() * 10000);
\r
23 var app_name = "BeagleBone Bacon Cape " + random_id.substring(random_id.length-4);
\r
25 var button = "P8_19";
\r
26 var slider = "P9_36";
\r
27 var led_red = 'P9_42';
\r
28 var led_green = 'P9_14';
\r
29 var led_blue = 'P9_16';
\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
39 // create spacebrew client object
\r
40 var sb = new Spacebrew.Client({reconnect:true});
\r
42 // set the base description
\r
44 sb.description("This spacebrew client runs on BeagleBoard.org with" +
\r
45 " BoneScript and interacts with BeagleBone and the Bacon Cape.");
\r
47 // configure the publication and subscription feeds
\r
48 sb.addPublish("buttonPress", "boolean", "false");
\r
49 sb.addPublish("slider", "range", "0");
\r
50 sb.addSubscribe("red", "range", "0");
\r
51 sb.addSubscribe("green", "range", "0");
\r
52 sb.addSubscribe("blue", "range", "0");
\r
54 // override Spacebrew events - this is how you catch events coming from Spacebrew
\r
56 sb.onRangeMessage = onRangeMessage;
\r
58 // connect to spacbrew
\r
62 setInterval(readButton, 100);
\r
63 setInterval(readSlider, 100);
\r
66 function readButton() {
\r
67 b.digitalRead(button, onButtonRead);
\r
70 function onButtonRead(x) {
\r
71 if(buttonState != x.value) {
\r
72 buttonState = x.value;
\r
73 sb.send("buttonPress", "boolean", (x.value == b.LOW) ? "true" : "false");
\r
77 function readSlider() {
\r
78 b.analogRead(slider, onSliderRead);
\r
81 function onSliderRead(x) {
\r
82 if(sliderState != x.value) {
\r
83 sliderState = x.value;
\r
84 sb.send("slider", "range", "" + parseInt(x.value * 1023, 10));
\r
88 function onRangeMessage(name, value) {
\r
89 var intensity = 1.0 - (value/1023);
\r
91 case "red":
\r
92 b.analogWrite(led_red, intensity);
\r
94 case "blue":
\r
95 b.analogWrite(led_blue, intensity);
\r
97 case "green":
\r
98 b.analogWrite(led_green, intensity);
\r
104 </script></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>