From 96891459558d97080fad29a77d1c0fe2d64c3728 Mon Sep 17 00:00:00 2001 From: Nikita Kitaev Date: Tue, 8 Jul 2014 20:42:33 -0700 Subject: [PATCH 1/2] Fix display of stargate network --- angel-player/src/chrome/content/debug-main.html | 2 ++ angel-player/src/chrome/content/main-ui/ui.css | 10 ++++++++++ angel-player/src/chrome/content/main-ui/ui.html | 4 ++-- angel-player/src/chrome/content/welcome/welcome.css | 3 --- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/angel-player/src/chrome/content/debug-main.html b/angel-player/src/chrome/content/debug-main.html index 33ac984d..ed5c4a00 100644 --- a/angel-player/src/chrome/content/debug-main.html +++ b/angel-player/src/chrome/content/debug-main.html @@ -2,6 +2,7 @@ +
Block Editor IDE Simulator @@ -10,5 +11,6 @@ Angelic Test Page about:config Widgets +
diff --git a/angel-player/src/chrome/content/main-ui/ui.css b/angel-player/src/chrome/content/main-ui/ui.css index cd035941..079c3b12 100644 --- a/angel-player/src/chrome/content/main-ui/ui.css +++ b/angel-player/src/chrome/content/main-ui/ui.css @@ -95,3 +95,13 @@ body { .module-div { display: none; } + +#stargate-div { + width: 100%; + height: 100%; +} + +#stargate-iframe { + width: 100%; + height: 100%; +} diff --git a/angel-player/src/chrome/content/main-ui/ui.html b/angel-player/src/chrome/content/main-ui/ui.html index 38b4b2ec..731fa6b5 100644 --- a/angel-player/src/chrome/content/main-ui/ui.html +++ b/angel-player/src/chrome/content/main-ui/ui.html @@ -41,7 +41,7 @@ -
+
@@ -71,7 +71,7 @@
- +
diff --git a/angel-player/src/chrome/content/welcome/welcome.css b/angel-player/src/chrome/content/welcome/welcome.css index e805f61e..4c995509 100644 --- a/angel-player/src/chrome/content/welcome/welcome.css +++ b/angel-player/src/chrome/content/welcome/welcome.css @@ -1,7 +1,4 @@ body { - background-image: url("assets/Angel_player.jpg"); - background-size: cover; - background-repeat: no-repeat; } input:invalid { From ab8da436667f4beba052d01eaaf8d72a500b339f Mon Sep 17 00:00:00 2001 From: Nikita Kitaev Date: Tue, 8 Jul 2014 22:39:19 -0700 Subject: [PATCH 2/2] WIP: interface to field control --- .../src/chrome/content/debug-main.html | 1 + .../chrome/content/supervisor/supervisor.html | 19 ++++ .../chrome/content/supervisor/supervisor.js | 95 +++++++++++++++++++ 3 files changed, 115 insertions(+) create mode 100644 angel-player/src/chrome/content/supervisor/supervisor.html create mode 100644 angel-player/src/chrome/content/supervisor/supervisor.js diff --git a/angel-player/src/chrome/content/debug-main.html b/angel-player/src/chrome/content/debug-main.html index ed5c4a00..a83a6624 100644 --- a/angel-player/src/chrome/content/debug-main.html +++ b/angel-player/src/chrome/content/debug-main.html @@ -11,6 +11,7 @@ Angelic Test Page about:config Widgets + Supervisory Control diff --git a/angel-player/src/chrome/content/supervisor/supervisor.html b/angel-player/src/chrome/content/supervisor/supervisor.html new file mode 100644 index 00000000..0b67fc92 --- /dev/null +++ b/angel-player/src/chrome/content/supervisor/supervisor.html @@ -0,0 +1,19 @@ + + + + + + + +
+
+
+
+
+ Hello, world +
+ + diff --git a/angel-player/src/chrome/content/supervisor/supervisor.js b/angel-player/src/chrome/content/supervisor/supervisor.js new file mode 100644 index 00000000..9daa4d38 --- /dev/null +++ b/angel-player/src/chrome/content/supervisor/supervisor.js @@ -0,0 +1,95 @@ +/* + Supervisor: interface to field control + + PUBLIC API: + + new Supervisor([station_number, [websocket_url]]) + station_number: one of [0, 1, 2, 3]. Defaults to 0 + websocket_url: defaults to "ws://localhost:8000" + connect() + automatically called when the Supervisor is created + disconnect() + + TODO: figure out what public API to expose to the rest of the app +*/ + +function proxy (fn, context) { + // Poor man's version of jQuery.proxy + // Binds the "this" inside fn to the specified context + return function () { + return fn.apply(context, arguments); + }; +} + +function Supervisor (station_number, ws_uri) { + this.station_number = station_number; + this.ws_uri = ws_uri; + if (ws_uri === undefined) { + this.ws_uri = "ws://localhost:8000"; + } + if (station_number === undefined) { + this.station_number = 0; + } + this.lcm = null; + this.cmd_sub = ""; + this.config_sub = ""; + this.disconnect(); + this.connect(); +} + +Supervisor.prototype.connect = function() { + var self = this; + this.lcm = new LCM("ws://localhost:8000"); + this.lcm.on_ready(function() { + self.cmd_sub = self.lcm.subscribe( + "piemos" + self.station_number + "/cmd", + "piemos_cmd", + proxy(self._handle_cmd, self)); + self.cmd_sub = self.lcm.subscribe( + "PiEMOS" + self.station_number + "/Config", + "ConfigData", + proxy(self._handle_config, self)); + }); +}; + +Supervisor.prototype.disconnect = function() { + if (this.lcm !== null) { + this.lcm.unsubscribe(this.cmd_sub); + this.lcm.unsubscribe(this.config_sub); + this.cmd_sub = ""; + this.config_sub = ""; + this.lcm = null; + } +}; + +Supervisor.prototype._handle_cmd = function(msg) { + // Message format: + // { + // enabled: bool, + // is_blue: bool, + // auton: bool, + // game_time: int (seconds), + // } + + console.log("Got state from field control"); +}; + +Supervisor.prototype._handle_config = function(msg) { + // Message format: + // { + // IsBlue: bool, + // TeamName: string, + // TeamNumber: int + // ... + // } + + // Field control still passes PiEMOS configs + // Here is how to extract the radio address from the config: + this.radio_address = JSON.parse(msg.ConfigFile).radioAddress; + console.log("Got config from field control: " + this.radio_address); +}; + +// Exports for running in a CommonJS environment +if (typeof require !== "undefined") { + exports.Supervisor = Supervisor; +}