msg-chumby-display 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -12,6 +12,7 @@ begin
12
12
  gem.authors = ["Mathias Dalheimer"]
13
13
  gem.add_dependency "flukso4r", ">= 0.3.1"
14
14
  gem.add_dependency "mongrel", ">= 1.1.5"
15
+ gem.add_dependency "xml-simple", ">= 1.0.12"
15
16
  gem.bindir='bin'
16
17
  gem.executables=['msg-chumby-daemon']
17
18
  gem.default_executable = 'msg-chumby-daemon'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
@@ -4,7 +4,7 @@ libpath=File.join(File.dirname(__FILE__), '..', 'lib')
4
4
  $:.unshift << libpath
5
5
  #puts "Using library path #{$:.join(":")}"
6
6
  require 'rubygems'
7
- require 'lib/msg-chumby-daemon.rb'
7
+ require 'msg-chumby-daemon.rb'
8
8
 
9
9
  reading_cache=MSG_Chumby::Reading_Cache.new();
10
10
  $demo_importer=MSG_Chumby::DemoReadingImporter.new(reading_cache, 400);
@@ -1,6 +1,6 @@
1
1
  require 'rubygems'
2
2
  require 'flukso'
3
- require 'lib/msg-chumby-daemon/http-xml-server.rb'
4
- require 'lib/msg-chumby-daemon/reading-cache.rb'
5
- require 'lib/msg-chumby-daemon/reading-importer.rb'
3
+ require 'msg-chumby-daemon/http-xml-server.rb'
4
+ require 'msg-chumby-daemon/reading-cache.rb'
5
+ require 'msg-chumby-daemon/reading-importer.rb'
6
6
 
@@ -0,0 +1,28 @@
1
+ SWF_FILE=currentpower.swf
2
+ CHUMBY_PATH=/tmp
3
+ CHUMBY_USER=root
4
+ CHUMBY_IP=192.168.1.100
5
+
6
+ default: help
7
+
8
+ copy: $(SWF_FILE)
9
+ scp $< $(CHUMBY_USER)@$(CHUMBY_IP):$(CHUMBY_PATH)
10
+
11
+ run: $(SWF_FILE) copy stop
12
+ ssh $(CHUMBY_USER)@$(CHUMBY_IP) "chumbyflashplayer.x -i $(CHUMBY_PATH)/$< 2>&1 &"
13
+
14
+ stop:
15
+ ssh $(CHUMBY_USER)@$(CHUMBY_IP) "/usr/chumby/scripts/stop_control_panel 2>&1"
16
+
17
+ restore: stop
18
+ ssh $(CHUMBY_USER)@$(CHUMBY_IP) "/usr/chumby/scripts/start_control_panel 2>&1"
19
+
20
+ .SILENT:
21
+
22
+ help:
23
+ echo "Copies and runs an SWF file on a local Chumby, please edit the Makefile."
24
+ echo "Available commands:"
25
+ echo " * copy: copies $(SWF_FILE) to the chumby at $(CHUMBY_IP)"
26
+ echo " * run: executes $(SWF_FILE) on the chumby "
27
+ echo " * stop: stops the currently active control panel"
28
+ echo " * restore: loads the original control panel (BROKEN?)"
Binary file
@@ -0,0 +1,322 @@
1
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
2
+ <head>
3
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
4
+ <title>currentpower</title>
5
+ <script language="JavaScript" type="text/javascript">
6
+ <!--
7
+ //v1.7
8
+ // Flash Player Version Detection
9
+ // Detect Client Browser type
10
+ // Copyright 2005-2008 Adobe Systems Incorporated. All rights reserved.
11
+ var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
12
+ var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
13
+ var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
14
+ function ControlVersion()
15
+ {
16
+ var version;
17
+ var axo;
18
+ var e;
19
+ // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
20
+ try {
21
+ // version will be set for 7.X or greater players
22
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
23
+ version = axo.GetVariable("$version");
24
+ } catch (e) {
25
+ }
26
+ if (!version)
27
+ {
28
+ try {
29
+ // version will be set for 6.X players only
30
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
31
+
32
+ // installed player is some revision of 6.0
33
+ // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
34
+ // so we have to be careful.
35
+
36
+ // default to the first public version
37
+ version = "WIN 6,0,21,0";
38
+ // throws if AllowScripAccess does not exist (introduced in 6.0r47)
39
+ axo.AllowScriptAccess = "always";
40
+ // safe to call for 6.0r47 or greater
41
+ version = axo.GetVariable("$version");
42
+ } catch (e) {
43
+ }
44
+ }
45
+ if (!version)
46
+ {
47
+ try {
48
+ // version will be set for 4.X or 5.X player
49
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
50
+ version = axo.GetVariable("$version");
51
+ } catch (e) {
52
+ }
53
+ }
54
+ if (!version)
55
+ {
56
+ try {
57
+ // version will be set for 3.X player
58
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
59
+ version = "WIN 3,0,18,0";
60
+ } catch (e) {
61
+ }
62
+ }
63
+ if (!version)
64
+ {
65
+ try {
66
+ // version will be set for 2.X player
67
+ axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
68
+ version = "WIN 2,0,0,11";
69
+ } catch (e) {
70
+ version = -1;
71
+ }
72
+ }
73
+
74
+ return version;
75
+ }
76
+ // JavaScript helper required to detect Flash Player PlugIn version information
77
+ function GetSwfVer(){
78
+ // NS/Opera version >= 3 check for Flash plugin in plugin array
79
+ var flashVer = -1;
80
+
81
+ if (navigator.plugins != null && navigator.plugins.length > 0) {
82
+ if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
83
+ var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
84
+ var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
85
+ var descArray = flashDescription.split(" ");
86
+ var tempArrayMajor = descArray[2].split(".");
87
+ var versionMajor = tempArrayMajor[0];
88
+ var versionMinor = tempArrayMajor[1];
89
+ var versionRevision = descArray[3];
90
+ if (versionRevision == "") {
91
+ versionRevision = descArray[4];
92
+ }
93
+ if (versionRevision[0] == "d") {
94
+ versionRevision = versionRevision.substring(1);
95
+ } else if (versionRevision[0] == "r") {
96
+ versionRevision = versionRevision.substring(1);
97
+ if (versionRevision.indexOf("d") > 0) {
98
+ versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
99
+ }
100
+ }
101
+ var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
102
+ }
103
+ }
104
+ // MSN/WebTV 2.6 supports Flash 4
105
+ else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
106
+ // WebTV 2.5 supports Flash 3
107
+ else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
108
+ // older WebTV supports Flash 2
109
+ else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
110
+ else if ( isIE && isWin && !isOpera ) {
111
+ flashVer = ControlVersion();
112
+ }
113
+ return flashVer;
114
+ }
115
+ // When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
116
+ function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
117
+ {
118
+ versionStr = GetSwfVer();
119
+ if (versionStr == -1 ) {
120
+ return false;
121
+ } else if (versionStr != 0) {
122
+ if(isIE && isWin && !isOpera) {
123
+ // Given "WIN 2,0,0,11"
124
+ tempArray = versionStr.split(" "); // ["WIN", "2,0,0,11"]
125
+ tempString = tempArray[1]; // "2,0,0,11"
126
+ versionArray = tempString.split(","); // ['2', '0', '0', '11']
127
+ } else {
128
+ versionArray = versionStr.split(".");
129
+ }
130
+ var versionMajor = versionArray[0];
131
+ var versionMinor = versionArray[1];
132
+ var versionRevision = versionArray[2];
133
+ // is the major.revision >= requested major.revision AND the minor version >= requested minor
134
+ if (versionMajor > parseFloat(reqMajorVer)) {
135
+ return true;
136
+ } else if (versionMajor == parseFloat(reqMajorVer)) {
137
+ if (versionMinor > parseFloat(reqMinorVer))
138
+ return true;
139
+ else if (versionMinor == parseFloat(reqMinorVer)) {
140
+ if (versionRevision >= parseFloat(reqRevision))
141
+ return true;
142
+ }
143
+ }
144
+ return false;
145
+ }
146
+ }
147
+ function AC_AddExtension(src, ext)
148
+ {
149
+ if (src.indexOf('?') != -1)
150
+ return src.replace(/\?/, ext+'?');
151
+ else
152
+ return src + ext;
153
+ }
154
+ function AC_Generateobj(objAttrs, params, embedAttrs)
155
+ {
156
+ var str = '';
157
+ if (isIE && isWin && !isOpera)
158
+ {
159
+ str += '<object ';
160
+ for (var i in objAttrs)
161
+ {
162
+ str += i + '="' + objAttrs[i] + '" ';
163
+ }
164
+ str += '>';
165
+ for (var i in params)
166
+ {
167
+ str += '<param name="' + i + '" value="' + params[i] + '" /> ';
168
+ }
169
+ str += '</object>';
170
+ }
171
+ else
172
+ {
173
+ str += '<embed ';
174
+ for (var i in embedAttrs)
175
+ {
176
+ str += i + '="' + embedAttrs[i] + '" ';
177
+ }
178
+ str += '> </embed>';
179
+ }
180
+ document.write(str);
181
+ }
182
+ function AC_FL_RunContent(){
183
+ var ret =
184
+ AC_GetArgs
185
+ ( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
186
+ , "application/x-shockwave-flash"
187
+ );
188
+ AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
189
+ }
190
+ function AC_SW_RunContent(){
191
+ var ret =
192
+ AC_GetArgs
193
+ ( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
194
+ , null
195
+ );
196
+ AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
197
+ }
198
+ function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
199
+ var ret = new Object();
200
+ ret.embedAttrs = new Object();
201
+ ret.params = new Object();
202
+ ret.objAttrs = new Object();
203
+ for (var i=0; i < args.length; i=i+2){
204
+ var currArg = args[i].toLowerCase();
205
+ switch (currArg){
206
+ case "classid":
207
+ break;
208
+ case "pluginspage":
209
+ ret.embedAttrs[args[i]] = args[i+1];
210
+ break;
211
+ case "src":
212
+ case "movie":
213
+ args[i+1] = AC_AddExtension(args[i+1], ext);
214
+ ret.embedAttrs["src"] = args[i+1];
215
+ ret.params[srcParamName] = args[i+1];
216
+ break;
217
+ case "onafterupdate":
218
+ case "onbeforeupdate":
219
+ case "onblur":
220
+ case "oncellchange":
221
+ case "onclick":
222
+ case "ondblclick":
223
+ case "ondrag":
224
+ case "ondragend":
225
+ case "ondragenter":
226
+ case "ondragleave":
227
+ case "ondragover":
228
+ case "ondrop":
229
+ case "onfinish":
230
+ case "onfocus":
231
+ case "onhelp":
232
+ case "onmousedown":
233
+ case "onmouseup":
234
+ case "onmouseover":
235
+ case "onmousemove":
236
+ case "onmouseout":
237
+ case "onkeypress":
238
+ case "onkeydown":
239
+ case "onkeyup":
240
+ case "onload":
241
+ case "onlosecapture":
242
+ case "onpropertychange":
243
+ case "onreadystatechange":
244
+ case "onrowsdelete":
245
+ case "onrowenter":
246
+ case "onrowexit":
247
+ case "onrowsinserted":
248
+ case "onstart":
249
+ case "onscroll":
250
+ case "onbeforeeditfocus":
251
+ case "onactivate":
252
+ case "onbeforedeactivate":
253
+ case "ondeactivate":
254
+ case "type":
255
+ case "codebase":
256
+ case "id":
257
+ ret.objAttrs[args[i]] = args[i+1];
258
+ break;
259
+ case "width":
260
+ case "height":
261
+ case "align":
262
+ case "vspace":
263
+ case "hspace":
264
+ case "class":
265
+ case "title":
266
+ case "accesskey":
267
+ case "name":
268
+ case "tabindex":
269
+ ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
270
+ break;
271
+ default:
272
+ ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
273
+ }
274
+ }
275
+ ret.objAttrs["classid"] = classid;
276
+ if (mimeType) ret.embedAttrs["type"] = mimeType;
277
+ return ret;
278
+ }
279
+ // -->
280
+ </script>
281
+ </head>
282
+ <body bgcolor="#ffffff">
283
+ <!--Im Film verwendete URLs-->
284
+ <!--Im Film verwendeter Text-->
285
+ <!--
286
+ <p align="left"><font face="Aller" size="23" color="#000000" letterSpacing="0.000000" kerning="1">---</font></p>
287
+ <p align="right"><font face="Aller Display" size="96" color="#000000" letterSpacing="0.000000" kerning="1">---</font></p>
288
+ -->
289
+ <!-- saved from url=(0013)about:internet -->
290
+ <script language="JavaScript" type="text/javascript">
291
+ AC_FL_RunContent(
292
+ 'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
293
+ 'width', '320',
294
+ 'height', '240',
295
+ 'src', 'currentpower',
296
+ 'quality', 'high',
297
+ 'pluginspage', 'http://www.adobe.com/go/getflashplayer_de',
298
+ 'align', 'middle',
299
+ 'play', 'true',
300
+ 'loop', 'true',
301
+ 'scale', 'showall',
302
+ 'wmode', 'window',
303
+ 'devicefont', 'false',
304
+ 'id', 'currentpower',
305
+ 'bgcolor', '#ffffff',
306
+ 'name', 'currentpower',
307
+ 'menu', 'true',
308
+ 'allowFullScreen', 'false',
309
+ 'allowScriptAccess','sameDomain',
310
+ 'movie', 'currentpower',
311
+ 'salign', ''
312
+ ); //end AC code
313
+ </script>
314
+ <noscript>
315
+ <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="320" height="240" id="currentpower" align="middle">
316
+ <param name="allowScriptAccess" value="sameDomain" />
317
+ <param name="allowFullScreen" value="false" />
318
+ <param name="movie" value="currentpower.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /> <embed src="currentpower.swf" quality="high" bgcolor="#ffffff" width="320" height="240" name="currentpower" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer_de" />
319
+ </object>
320
+ </noscript>
321
+ </body>
322
+ </html>
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: msg-chumby-display
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mathias Dalheimer
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-05-31 00:00:00 +02:00
12
+ date: 2010-06-02 00:00:00 +02:00
13
13
  default_executable: msg-chumby-daemon
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -32,6 +32,16 @@ dependencies:
32
32
  - !ruby/object:Gem::Version
33
33
  version: 1.1.5
34
34
  version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: xml-simple
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 1.0.12
44
+ version:
35
45
  description: "The mySmartGrid project provides means to manage your household energy consumption. This gem provides the runtime environment for the Chumby: it queries the mySmartGrid webservice and forwards that information to a Flash application running on the Chumby."
36
46
  email: md@gonium.net
37
47
  executables:
@@ -54,7 +64,9 @@ files:
54
64
  - lib/msg-chumby-display.rb
55
65
  - test/helper.rb
56
66
  - test/test_msg-chumby-display.rb
67
+ - widget/currentpower/Makefile
57
68
  - widget/currentpower/currentpower.fla
69
+ - widget/currentpower/currentpower.html
58
70
  - widget/currentpower/currentpower.swf
59
71
  has_rdoc: true
60
72
  homepage: http://github.com/gonium/msg-chumby-display