msg-chumby-display 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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