@@ -227,6 +227,7 @@ Digi Demo - Multimedia
+
@@ -272,6 +273,9 @@ Digi Demo - Multimedia
});
}
+ // Update available sections.
+ updateAvailableSections();
+
// Set the selected section.
setSelectedSection();
});
diff --git a/connectcore-demo-example/static/images/ccimx6ulsbc_board.png b/connectcore-demo-example/static/images/ccimx6ulsbc_board.png
new file mode 100755
index 0000000..ef42759
Binary files /dev/null and b/connectcore-demo-example/static/images/ccimx6ulsbc_board.png differ
diff --git a/connectcore-demo-example/static/js/ccimx6ulsbc.js b/connectcore-demo-example/static/js/ccimx6ulsbc.js
new file mode 100644
index 0000000..788808e
--- /dev/null
+++ b/connectcore-demo-example/static/js/ccimx6ulsbc.js
@@ -0,0 +1,160 @@
+/*
+ * Copyright 2022, Digi International Inc.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+class CCIMX6ULSBC extends ConnectCoreDevice {
+
+ // Public constants.
+ static DEVICE_TYPE = "ccimx6ulsbc";
+ static PLATFORM_NAME = "ConnectCore 6UL SBC Pro";
+
+ // Variables.
+ BOARD_IMAGE = "ccimx6ulsbc_board.png";
+ BOARD_IMAGE_SCALE = 70;
+
+ CPU_COMPONENT_VISIBLE = true;
+ CPU_COMPONENT_HAS_PANEL = true;
+ CPU_COMPONENT_HAS_ARROW = true;
+ CPU_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
+ CPU_COMPONENT_PANEL_ORIENTATION = VALUE_LEFT;
+ CPU_COMPONENT_PANEL_HORIZONTAL_PERCENT = 83;
+ CPU_COMPONENT_PANEL_VERTICAL_PERCENT = 18;
+ CPU_COMPONENT_ARROW_PERCENT = 32;
+ CPU_COMPONENT_AREA_TOP_PERCENT = 29;
+ CPU_COMPONENT_AREA_LEFT_PERCENT = 74;
+ CPU_COMPONENT_AREA_WIDTH_PERCENT = 7.5;
+ CPU_COMPONENT_AREA_HEIGHT_PERCENT = 10;
+
+ MEMORY_COMPONENT_VISIBLE = true;
+ MEMORY_COMPONENT_HAS_PANEL = true;
+ MEMORY_COMPONENT_HAS_ARROW = true;
+ MEMORY_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
+ MEMORY_COMPONENT_PANEL_ORIENTATION = VALUE_RIGHT;
+ MEMORY_COMPONENT_PANEL_HORIZONTAL_PERCENT = 40.5;
+ MEMORY_COMPONENT_PANEL_VERTICAL_PERCENT = 28;
+ MEMORY_COMPONENT_ARROW_PERCENT = 32;
+ MEMORY_COMPONENT_AREA_TOP_PERCENT = 25.5;
+ MEMORY_COMPONENT_AREA_LEFT_PERCENT = 61.25;
+ MEMORY_COMPONENT_AREA_WIDTH_PERCENT = 8.5;
+ MEMORY_COMPONENT_AREA_HEIGHT_PERCENT = 17;
+
+ WIFI_BT_COMPONENT_VISIBLE = true;
+ WIFI_BT_COMPONENT_HAS_PANEL = true;
+ WIFI_BT_COMPONENT_HAS_ARROW = true;
+ WIFI_BT_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
+ WIFI_BT_COMPONENT_PANEL_ORIENTATION = VALUE_LEFT;
+ WIFI_BT_COMPONENT_PANEL_HORIZONTAL_PERCENT = 83;
+ WIFI_BT_COMPONENT_PANEL_VERTICAL_PERCENT = 42;
+ WIFI_BT_COMPONENT_ARROW_PERCENT = 47;
+ WIFI_BT_COMPONENT_AREA_TOP_PERCENT = 43;
+ WIFI_BT_COMPONENT_AREA_LEFT_PERCENT = 72.75;
+ WIFI_BT_COMPONENT_AREA_WIDTH_PERCENT = 8.7;
+ WIFI_BT_COMPONENT_AREA_HEIGHT_PERCENT = 11.5;
+
+ ETHERNET0_COMPONENT_VISIBLE = true;
+ ETHERNET0_COMPONENT_HAS_PANEL = true;
+ ETHERNET0_COMPONENT_HAS_ARROW = true;
+ ETHERNET0_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
+ ETHERNET0_COMPONENT_PANEL_ORIENTATION = VALUE_BOTTOM;
+ ETHERNET0_COMPONENT_PANEL_HORIZONTAL_PERCENT = -4;
+ ETHERNET0_COMPONENT_PANEL_VERTICAL_PERCENT = 36;
+ ETHERNET0_COMPONENT_ARROW_PERCENT = 18;
+ ETHERNET0_COMPONENT_AREA_TOP_PERCENT = 66;
+ ETHERNET0_COMPONENT_AREA_LEFT_PERCENT = 11.5;
+ ETHERNET0_COMPONENT_AREA_WIDTH_PERCENT = 17.25;
+ ETHERNET0_COMPONENT_AREA_HEIGHT_PERCENT = 29;
+
+ ETHERNET1_COMPONENT_VISIBLE = true;
+ ETHERNET1_COMPONENT_HAS_PANEL = true;
+ ETHERNET1_COMPONENT_HAS_ARROW = true;
+ ETHERNET1_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
+ ETHERNET1_COMPONENT_PANEL_ORIENTATION = VALUE_BOTTOM;
+ ETHERNET1_COMPONENT_PANEL_HORIZONTAL_PERCENT = 33;
+ ETHERNET1_COMPONENT_PANEL_VERTICAL_PERCENT = 36;
+ ETHERNET1_COMPONENT_ARROW_PERCENT = 35;
+ ETHERNET1_COMPONENT_AREA_TOP_PERCENT = 66;
+ ETHERNET1_COMPONENT_AREA_LEFT_PERCENT = 28.5;
+ ETHERNET1_COMPONENT_AREA_WIDTH_PERCENT = 16.5;
+ ETHERNET1_COMPONENT_AREA_HEIGHT_PERCENT = 29;
+
+ CONSOLE_COMPONENT_VISIBLE = true;
+ CONSOLE_COMPONENT_HAS_PANEL = false;
+ CONSOLE_COMPONENT_HAS_ARROW = false;
+ CONSOLE_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
+ CONSOLE_COMPONENT_AREA_TOP_PERCENT = 20;
+ CONSOLE_COMPONENT_AREA_LEFT_PERCENT = 10;
+ CONSOLE_COMPONENT_AREA_WIDTH_PERCENT = 4.25;
+ CONSOLE_COMPONENT_AREA_HEIGHT_PERCENT = 9.5;
+
+ VIDEO_COMPONENT_VISIBLE = true;
+ VIDEO_COMPONENT_HAS_PANEL = true;
+ VIDEO_COMPONENT_HAS_ARROW = true;
+ VIDEO_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
+ VIDEO_COMPONENT_PANEL_ORIENTATION = VALUE_TOP;
+ VIDEO_COMPONENT_PANEL_HORIZONTAL_PERCENT = 19;
+ VIDEO_COMPONENT_PANEL_VERTICAL_PERCENT = 16;
+ VIDEO_COMPONENT_ARROW_PERCENT = 25.5;
+ VIDEO_COMPONENT_AREA_TOP_PERCENT = 6;
+ VIDEO_COMPONENT_AREA_LEFT_PERCENT = 16.75;
+ VIDEO_COMPONENT_AREA_WIDTH_PERCENT = 21;
+ VIDEO_COMPONENT_AREA_HEIGHT_PERCENT = 8;
+
+ AUDIO_COMPONENT_VISIBLE = false;
+ AUDIO_COMPONENT_HAS_PANEL = true;
+ AUDIO_COMPONENT_HAS_ARROW = true;
+ AUDIO_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
+ AUDIO_COMPONENT_PANEL_ORIENTATION = VALUE_BOTTOM;
+ AUDIO_COMPONENT_PANEL_HORIZONTAL_PERCENT = 51;
+ AUDIO_COMPONENT_PANEL_VERTICAL_PERCENT = 28;
+ AUDIO_COMPONENT_ARROW_PERCENT = 69;
+ AUDIO_COMPONENT_AREA_TOP_PERCENT = 74;
+ AUDIO_COMPONENT_AREA_LEFT_PERCENT = 66;
+ AUDIO_COMPONENT_AREA_WIDTH_PERCENT = 9.3;
+ AUDIO_COMPONENT_AREA_HEIGHT_PERCENT = 18.5;
+
+ LED_COMPONENT_VISIBLE = true;
+ LED_COMPONENT_HAS_PANEL = true;
+ LED_COMPONENT_HAS_ARROW = false;
+ LED_COMPONENT_PANEL_ALWAYS_VISIBLE = true;
+ LED_COMPONENT_PANEL_ORIENTATION = VALUE_TOP;
+ LED_COMPONENT_PANEL_HORIZONTAL_PERCENT = 14.5;
+ LED_COMPONENT_PANEL_VERTICAL_PERCENT = 21;
+ LED_COMPONENT_AREA_TOP_PERCENT = 16;
+ LED_COMPONENT_AREA_LEFT_PERCENT = 15.5;
+ LED_COMPONENT_AREA_WIDTH_PERCENT = 4.5;
+ LED_COMPONENT_AREA_HEIGHT_PERCENT = 4;
+
+ FLASH_MEMORY_COMPONENT_VISIBLE = true;
+ FLASH_MEMORY_COMPONENT_HAS_PANEL = true;
+ FLASH_MEMORY_COMPONENT_HAS_ARROW = true;
+ FLASH_MEMORY_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
+ FLASH_MEMORY_COMPONENT_PANEL_ORIENTATION = VALUE_TOP;
+ FLASH_MEMORY_COMPONENT_PANEL_HORIZONTAL_PERCENT = 49;
+ FLASH_MEMORY_COMPONENT_PANEL_VERTICAL_PERCENT = 58.5;
+ FLASH_MEMORY_COMPONENT_ARROW_PERCENT = 65.3;
+ FLASH_MEMORY_COMPONENT_AREA_TOP_PERCENT = 43;
+ FLASH_MEMORY_COMPONENT_AREA_LEFT_PERCENT = 61.25;
+ FLASH_MEMORY_COMPONENT_AREA_WIDTH_PERCENT = 11;
+ FLASH_MEMORY_COMPONENT_AREA_HEIGHT_PERCENT = 12.5;
+
+
+ // Capabilities
+ SUPPORTS_VIDEO_BRIGHTNESS = false;
+ SUPPORTS_DUAL_ETHERNET = true;
+
+ // Constructor.
+ constructor(deviceData) {
+ super(CCIMX6ULSBC.DEVICE_TYPE, CCIMX6ULSBC.PLATFORM_NAME, deviceData);
+ }
+}
\ No newline at end of file
diff --git a/connectcore-demo-example/static/js/ccimx8m-nano.js b/connectcore-demo-example/static/js/ccimx8m-nano.js
index 0e01b62..51ccb83 100644
--- a/connectcore-demo-example/static/js/ccimx8m-nano.js
+++ b/connectcore-demo-example/static/js/ccimx8m-nano.js
@@ -62,18 +62,18 @@ class CCIMX8MNANO extends ConnectCoreDevice {
WIFI_BT_COMPONENT_AREA_WIDTH_PERCENT = 4;
WIFI_BT_COMPONENT_AREA_HEIGHT_PERCENT = 6;
- ETHERNET_COMPONENT_VISIBLE = true;
- ETHERNET_COMPONENT_HAS_PANEL = true;
- ETHERNET_COMPONENT_HAS_ARROW = true;
- ETHERNET_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
- ETHERNET_COMPONENT_PANEL_ORIENTATION = VALUE_LEFT;
- ETHERNET_COMPONENT_PANEL_HORIZONTAL_PERCENT = 21;
- ETHERNET_COMPONENT_PANEL_VERTICAL_PERCENT = 70;
- ETHERNET_COMPONENT_ARROW_PERCENT = 78;
- ETHERNET_COMPONENT_AREA_TOP_PERCENT = 77;
- ETHERNET_COMPONENT_AREA_LEFT_PERCENT = 11;
- ETHERNET_COMPONENT_AREA_WIDTH_PERCENT = 8.5;
- ETHERNET_COMPONENT_AREA_HEIGHT_PERCENT = 16;
+ ETHERNET0_COMPONENT_VISIBLE = true;
+ ETHERNET0_COMPONENT_HAS_PANEL = true;
+ ETHERNET0_COMPONENT_HAS_ARROW = true;
+ ETHERNET0_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
+ ETHERNET0_COMPONENT_PANEL_ORIENTATION = VALUE_LEFT;
+ ETHERNET0_COMPONENT_PANEL_HORIZONTAL_PERCENT = 21;
+ ETHERNET0_COMPONENT_PANEL_VERTICAL_PERCENT = 70;
+ ETHERNET0_COMPONENT_ARROW_PERCENT = 78;
+ ETHERNET0_COMPONENT_AREA_TOP_PERCENT = 77;
+ ETHERNET0_COMPONENT_AREA_LEFT_PERCENT = 11;
+ ETHERNET0_COMPONENT_AREA_WIDTH_PERCENT = 8.5;
+ ETHERNET0_COMPONENT_AREA_HEIGHT_PERCENT = 16;
CONSOLE_COMPONENT_VISIBLE = true;
CONSOLE_COMPONENT_HAS_PANEL = false;
@@ -138,6 +138,7 @@ class CCIMX8MNANO extends ConnectCoreDevice {
// Capabilities
SUPPORTS_VIDEO_BRIGHTNESS = false;
+ SUPPORTS_DUAL_ETHERNET = false;
// Constructor.
constructor(deviceData) {
diff --git a/connectcore-demo-example/static/js/ccimx8mm-dvk.js b/connectcore-demo-example/static/js/ccimx8mm-dvk.js
index 95b69c8..0fb4d9c 100644
--- a/connectcore-demo-example/static/js/ccimx8mm-dvk.js
+++ b/connectcore-demo-example/static/js/ccimx8mm-dvk.js
@@ -62,18 +62,18 @@ class CCIMX8MMINI extends ConnectCoreDevice {
WIFI_BT_COMPONENT_AREA_WIDTH_PERCENT = 4;
WIFI_BT_COMPONENT_AREA_HEIGHT_PERCENT = 6;
- ETHERNET_COMPONENT_VISIBLE = true;
- ETHERNET_COMPONENT_HAS_PANEL = true;
- ETHERNET_COMPONENT_HAS_ARROW = true;
- ETHERNET_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
- ETHERNET_COMPONENT_PANEL_ORIENTATION = VALUE_LEFT;
- ETHERNET_COMPONENT_PANEL_HORIZONTAL_PERCENT = 21;
- ETHERNET_COMPONENT_PANEL_VERTICAL_PERCENT = 70;
- ETHERNET_COMPONENT_ARROW_PERCENT = 78;
- ETHERNET_COMPONENT_AREA_TOP_PERCENT = 77;
- ETHERNET_COMPONENT_AREA_LEFT_PERCENT = 11;
- ETHERNET_COMPONENT_AREA_WIDTH_PERCENT = 8.5;
- ETHERNET_COMPONENT_AREA_HEIGHT_PERCENT = 16;
+ ETHERNET0_COMPONENT_VISIBLE = true;
+ ETHERNET0_COMPONENT_HAS_PANEL = true;
+ ETHERNET0_COMPONENT_HAS_ARROW = true;
+ ETHERNET0_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
+ ETHERNET0_COMPONENT_PANEL_ORIENTATION = VALUE_LEFT;
+ ETHERNET0_COMPONENT_PANEL_HORIZONTAL_PERCENT = 21;
+ ETHERNET0_COMPONENT_PANEL_VERTICAL_PERCENT = 70;
+ ETHERNET0_COMPONENT_ARROW_PERCENT = 78;
+ ETHERNET0_COMPONENT_AREA_TOP_PERCENT = 77;
+ ETHERNET0_COMPONENT_AREA_LEFT_PERCENT = 11;
+ ETHERNET0_COMPONENT_AREA_WIDTH_PERCENT = 8.5;
+ ETHERNET0_COMPONENT_AREA_HEIGHT_PERCENT = 16;
CONSOLE_COMPONENT_VISIBLE = true;
CONSOLE_COMPONENT_HAS_PANEL = false;
@@ -138,6 +138,7 @@ class CCIMX8MMINI extends ConnectCoreDevice {
// Capabilities
SUPPORTS_VIDEO_BRIGHTNESS = false;
+ SUPPORTS_DUAL_ETHERNET = false;
// Constructor.
constructor(deviceData) {
diff --git a/connectcore-demo-example/static/js/ccimx8x-sbc-pro.js b/connectcore-demo-example/static/js/ccimx8x-sbc-pro.js
index a781cce..aac583a 100644
--- a/connectcore-demo-example/static/js/ccimx8x-sbc-pro.js
+++ b/connectcore-demo-example/static/js/ccimx8x-sbc-pro.js
@@ -62,18 +62,31 @@ class CCIMX8X extends ConnectCoreDevice {
WIFI_BT_COMPONENT_AREA_WIDTH_PERCENT = 8.5;
WIFI_BT_COMPONENT_AREA_HEIGHT_PERCENT = 10;
- ETHERNET_COMPONENT_VISIBLE = true;
- ETHERNET_COMPONENT_HAS_PANEL = true;
- ETHERNET_COMPONENT_HAS_ARROW = true;
- ETHERNET_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
- ETHERNET_COMPONENT_PANEL_ORIENTATION = VALUE_BOTTOM;
- ETHERNET_COMPONENT_PANEL_HORIZONTAL_PERCENT = -7;
- ETHERNET_COMPONENT_PANEL_VERTICAL_PERCENT = 34;
- ETHERNET_COMPONENT_ARROW_PERCENT = 18;
- ETHERNET_COMPONENT_AREA_TOP_PERCENT = 68;
- ETHERNET_COMPONENT_AREA_LEFT_PERCENT = 12;
- ETHERNET_COMPONENT_AREA_WIDTH_PERCENT = 17;
- ETHERNET_COMPONENT_AREA_HEIGHT_PERCENT = 27;
+ ETHERNET0_COMPONENT_VISIBLE = true;
+ ETHERNET0_COMPONENT_HAS_PANEL = true;
+ ETHERNET0_COMPONENT_HAS_ARROW = true;
+ ETHERNET0_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
+ ETHERNET0_COMPONENT_PANEL_ORIENTATION = VALUE_BOTTOM;
+ ETHERNET0_COMPONENT_PANEL_HORIZONTAL_PERCENT = -7;
+ ETHERNET0_COMPONENT_PANEL_VERTICAL_PERCENT = 34;
+ ETHERNET0_COMPONENT_ARROW_PERCENT = 18;
+ ETHERNET0_COMPONENT_AREA_TOP_PERCENT = 68;
+ ETHERNET0_COMPONENT_AREA_LEFT_PERCENT = 12;
+ ETHERNET0_COMPONENT_AREA_WIDTH_PERCENT = 17;
+ ETHERNET0_COMPONENT_AREA_HEIGHT_PERCENT = 27;
+
+ ETHERNET1_COMPONENT_VISIBLE = true;
+ ETHERNET1_COMPONENT_HAS_PANEL = true;
+ ETHERNET1_COMPONENT_HAS_ARROW = true;
+ ETHERNET1_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
+ ETHERNET1_COMPONENT_PANEL_ORIENTATION = VALUE_BOTTOM;
+ ETHERNET1_COMPONENT_PANEL_HORIZONTAL_PERCENT = 29;
+ ETHERNET1_COMPONENT_PANEL_VERTICAL_PERCENT = 34;
+ ETHERNET1_COMPONENT_ARROW_PERCENT = 35;
+ ETHERNET1_COMPONENT_AREA_TOP_PERCENT = 68;
+ ETHERNET1_COMPONENT_AREA_LEFT_PERCENT = 28.5;
+ ETHERNET1_COMPONENT_AREA_WIDTH_PERCENT = 17;
+ ETHERNET1_COMPONENT_AREA_HEIGHT_PERCENT = 27;
CONSOLE_COMPONENT_VISIBLE = true;
CONSOLE_COMPONENT_HAS_PANEL = false;
@@ -138,6 +151,7 @@ class CCIMX8X extends ConnectCoreDevice {
// Capabilities
SUPPORTS_VIDEO_BRIGHTNESS = false;
+ SUPPORTS_DUAL_ETHERNET = true;
// Constructor.
constructor(deviceData) {
diff --git a/connectcore-demo-example/static/js/common.js b/connectcore-demo-example/static/js/common.js
index ab1ff99..1a74a05 100644
--- a/connectcore-demo-example/static/js/common.js
+++ b/connectcore-demo-example/static/js/common.js
@@ -50,12 +50,18 @@ const ID_ERROR = "error";
const ID_ERROR_GUIDE = "error_guide";
const ID_ERROR_MESSAGE = "error_msg";
const ID_ERROR_TITLE = "error_title";
-const ID_ETHERNET = "ethernet";
-const ID_ETHERNET_IP = "ethernet_ip";
-const ID_ETHERNET_MAC = "ethernet_mac";
-const ID_ETHERNET_READ_DATA = "ethernet_received_data";
-const ID_ETHERNET_SENT_DATA = "ethernet_sent_data";
-const ID_ETHERNET_STATE = "ethernet_state";
+const ID_ETHERNET0 = "ethernet0";
+const ID_ETHERNET1 = "ethernet1";
+const ID_ETHERNET0_IP = "ethernet0_ip";
+const ID_ETHERNET1_IP = "ethernet1_ip";
+const ID_ETHERNET0_MAC = "ethernet0_mac";
+const ID_ETHERNET1_MAC = "ethernet1_mac";
+const ID_ETHERNET0_READ_DATA = "ethernet0_received_data";
+const ID_ETHERNET1_READ_DATA = "ethernet1_received_data";
+const ID_ETHERNET0_SENT_DATA = "ethernet0_sent_data";
+const ID_ETHERNET1_SENT_DATA = "ethernet1_sent_data";
+const ID_ETHERNET0_STATE = "ethernet0_state";
+const ID_ETHERNET1_STATE = "ethernet1_state";
const ID_FILES = "files";
const ID_FLASH_MEMORY = "flash_memory";
const ID_FLASH_SIZE = "flash_size";
@@ -92,6 +98,9 @@ const ID_PANEL_VERTICAL_MARGIN = "panel-vertical-margin";
const ID_PATH = "path";
const ID_PROGRESS = "progress";
const ID_SAMPLE_RATE = "sample_rate";
+const ID_SECTION_DASHBOARD = "section_dashboard";
+const ID_SECTION_MANAGEMENT = "section_management";
+const ID_SECTION_MULTIMEDIA = "section_multimedia";
const ID_SERIAL_NUMBER = "serial_number";
const ID_SESSION_ID = "session_id";
const ID_SIZE = "size";
@@ -480,3 +489,37 @@ function isMultimediaShowing() {
function getDeviceName() {
return new URLSearchParams(window.location.search).get(ID_DEVICE_NAME);
}
+
+// Updates the available web sections.
+function updateAvailableSections() {
+ // Remove multimedia section when rendering the demo from a computer.
+ if (!navigator.platform.includes("aarch"))
+ removeSection(ID_SECTION_MULTIMEDIA);
+ // Set visible sections based on device type.
+ $.post(
+ "http://" + getServerAddress() + "/ajax/get_device_type",
+ function(data) {
+ // Process answer.
+ if (data[ID_DEVICE_TYPE] == null || data[ID_DEVICE_TYPE] == "undefined") {
+ // Show error message.
+ toastr.error("Could not get device type");
+ return;
+ }
+ switch (data[ID_DEVICE_TYPE]) {
+ case CCIMX6ULSBC.DEVICE_TYPE:
+ removeSection(ID_SECTION_MULTIMEDIA);
+ break;
+ }
+ }
+ ).fail(function(response) {
+ // Process error.
+ processAjaxErrorResponse(response);
+ });
+}
+
+// Removes the given section.
+function removeSection(sectionID) {
+ var sectionElement = document.getElementById(sectionID);
+ if (sectionElement != null && sectionElement != "undefined")
+ sectionElement.parentNode.removeChild(sectionElement);
+}
\ No newline at end of file
diff --git a/connectcore-demo-example/static/js/dashboard.js b/connectcore-demo-example/static/js/dashboard.js
index 9cf6987..e6a31e1 100644
--- a/connectcore-demo-example/static/js/dashboard.js
+++ b/connectcore-demo-example/static/js/dashboard.js
@@ -31,10 +31,16 @@ const ID_DEVICE_INFO_TOGGLE_BUTTON = "device_info_toggle_button";
const ID_DEVICE_INFO_PANEL_HEADER = "device_info_panel_header";
const ID_DEVICE_INFO_PANEL_CONTAINER = "device_info_panel_container";
const ID_DEVICE_TOOLBAR = "device_toolbar";
-const ID_ETHERNET_PANEL = "ethernet_panel";
-const ID_ETHERNET_PANEL_AREA = "ethernet_panel_area";
-const ID_ETHERNET_PANEL_ARROW = "ethernet_panel_arrow";
-const ID_ETHERNET_PANEL_ICON = "ethernet_panel_icon";
+const ID_ETHERNET0_PANEL = "ethernet0_panel";
+const ID_ETHERNET0_PANEL_AREA = "ethernet0_panel_area";
+const ID_ETHERNET0_PANEL_ARROW = "ethernet0_panel_arrow";
+const ID_ETHERNET0_PANEL_ICON = "ethernet0_panel_icon";
+const ID_ETHERNET0_TITLE = "ethernet0_title";
+const ID_ETHERNET0_TOOLTIP = "ethernet0_tooltip";
+const ID_ETHERNET1_PANEL = "ethernet1_panel";
+const ID_ETHERNET1_PANEL_AREA = "ethernet1_panel_area";
+const ID_ETHERNET1_PANEL_ARROW = "ethernet1_panel_arrow";
+const ID_ETHERNET1_PANEL_ICON = "ethernet1_panel_icon";
const ID_FLASH_MEMORY_PANEL = "flash_memory_panel";
const ID_FLASH_MEMORY_PANEL_AREA = "flash_memory_panel_area";
const ID_FLASH_MEMORY_PANEL_ARROW = "flash_memory_panel_arrow";
@@ -61,7 +67,8 @@ const ID_WIFI_BT_PANEL_ARROW = "wifi_bt_panel_arrow";
const ID_WIFI_BT_PANEL_ICON = "wifi_bt_panel_icon";
const IFACE_BT = "hci0/";
-const IFACE_ETHERNET = "eth0/";
+const IFACE_ETHERNET0 = "eth0/";
+const IFACE_ETHERNET1 = "eth1/";
const IFACE_WIFI = "wlan0/";
const USER_LED = "user_led";
@@ -69,9 +76,12 @@ const USER_LED = "user_led";
const STREAM_CPU_FREQUENCY = PREFIX_STREAM + "frequency";
const STREAM_CPU_TEMPERATURE = PREFIX_STREAM + "cpu_temperature";
const STREAM_CPU_UPTIME = PREFIX_STREAM + "uptime";
-const STREAM_ETHERNET_READ_BYTES = PREFIX_STREAM + IFACE_ETHERNET + "rx_bytes";
-const STREAM_ETHERNET_SENT_BYTES = PREFIX_STREAM + IFACE_ETHERNET + "tx_bytes";
-const STREAM_ETHERNET_STATE = PREFIX_STREAM + IFACE_ETHERNET + "state";
+const STREAM_ETHERNET0_READ_BYTES = PREFIX_STREAM + IFACE_ETHERNET0 + "rx_bytes";
+const STREAM_ETHERNET0_SENT_BYTES = PREFIX_STREAM + IFACE_ETHERNET0 + "tx_bytes";
+const STREAM_ETHERNET0_STATE = PREFIX_STREAM + IFACE_ETHERNET0 + "state";
+const STREAM_ETHERNET1_READ_BYTES = PREFIX_STREAM + IFACE_ETHERNET1 + "rx_bytes";
+const STREAM_ETHERNET1_SENT_BYTES = PREFIX_STREAM + IFACE_ETHERNET1 + "tx_bytes";
+const STREAM_ETHERNET1_STATE = PREFIX_STREAM + IFACE_ETHERNET1 + "state";
const STREAM_LED_STATUS = PREFIX_STREAM + "led_status";
const STREAM_MEMORY_USED = PREFIX_STREAM + "used_memory";
const STREAM_WIFI_READ_BYTES = PREFIX_STREAM + IFACE_WIFI + "rx_bytes";
@@ -260,7 +270,7 @@ function refreshDevice() {
initializingDevice = false;
return;
}
- device.refreshIPs(data[ID_ETHERNET_IP], data[ID_WIFI_IP]);
+ device.refreshIPs(data[ID_ETHERNET0_IP], data[ID_ETHERNET1_IP], data[ID_WIFI_IP]);
updateInfoValues();
}
).fail(function(response) {
@@ -322,7 +332,8 @@ function processDeviceStatusResponse(response) {
}
// Check if IP values are initialized.
- if ((response[STREAM_ETHERNET_STATE] == 1 && device.getEthernetIP() == "0.0.0.0")
+ if ((response[STREAM_ETHERNET0_STATE] == 1 && device.getEthernetIP(0) == "0.0.0.0")
+ || (response[STREAM_ETHERNET1_STATE] == 1 && device.getEthernetIP(1) == "0.0.0.0")
|| (response[STREAM_WIFI_STATE] == 1 && device.getWifiIP() == "0.0.0.0")) {
deviceInitialized = false;
}
@@ -351,6 +362,9 @@ function createDevice(deviceData) {
case CCIMX8X.DEVICE_TYPE:
device = new CCIMX8X(deviceData);
break;
+ case CCIMX6ULSBC.DEVICE_TYPE:
+ device = new CCIMX6ULSBC(deviceData);
+ break;
}
if (device != null) {
// Draw the device.
@@ -413,13 +427,26 @@ function initializeComponents() {
var wifiBtPanelIcon = document.getElementById(ID_WIFI_BT_PANEL_ICON);
var wifiBtInfo = {"panel": wifiBtPanel, "arrow": wifiBtPanelArrow, "area": wifiBtPanelArea, "icon": wifiBtPanelIcon, "data": device.getWifiBtComponentData()};
components[ID_WIFI_BT] = wifiBtInfo;
- // Ethernet component.
- var ethernetPanel = document.getElementById(ID_ETHERNET_PANEL);
- var ethernetPanelArrow = document.getElementById(ID_ETHERNET_PANEL_ARROW);
- var ethernetPanelArea = document.getElementById(ID_ETHERNET_PANEL_AREA);
- var ethernetPanelIcon = document.getElementById(ID_ETHERNET_PANEL_ICON);
- var ethernetInfo = {"panel": ethernetPanel, "arrow": ethernetPanelArrow, "area": ethernetPanelArea, "icon": ethernetPanelIcon, "data": device.getEthernetComponentData()};
- components[ID_ETHERNET] = ethernetInfo;
+ // Ethernet 0 component.
+ var ethernet0Panel = document.getElementById(ID_ETHERNET0_PANEL);
+ var ethernet0PanelArrow = document.getElementById(ID_ETHERNET0_PANEL_ARROW);
+ var ethernet0PanelArea = document.getElementById(ID_ETHERNET0_PANEL_AREA);
+ var ethernet0PanelIcon = document.getElementById(ID_ETHERNET0_PANEL_ICON);
+ var ethernet0Info = {"panel": ethernet0Panel, "arrow": ethernet0PanelArrow, "area": ethernet0PanelArea, "icon": ethernet0PanelIcon, "data": device.getEthernetComponentData(0)};
+ components[ID_ETHERNET0] = ethernet0Info;
+ if (device.supportsDualEthernet()) {
+ // Ethernet 1 component.
+ var ethernet1Panel = document.getElementById(ID_ETHERNET1_PANEL);
+ var ethernet1PanelArrow = document.getElementById(ID_ETHERNET1_PANEL_ARROW);
+ var ethernet1PanelArea = document.getElementById(ID_ETHERNET1_PANEL_AREA);
+ var ethernet1PanelIcon = document.getElementById(ID_ETHERNET1_PANEL_ICON);
+ var ethernet1Info = {"panel": ethernet1Panel, "arrow": ethernet1PanelArrow, "area": ethernet1PanelArea, "icon": ethernet1PanelIcon, "data": device.getEthernetComponentData(1)};
+ components[ID_ETHERNET1] = ethernet1Info;
+ } else {
+ // Update tooltip and title to reflect there is only one Ethernet interface.
+ document.getElementById(ID_ETHERNET0_TOOLTIP).innerText = "Ethernet stats";
+ document.getElementById(ID_ETHERNET0_TITLE).innerText = "Ethernet stats";
+ }
// Video component.
var videoPanel = document.getElementById(ID_VIDEO_PANEL);
var videoPanelArrow = document.getElementById(ID_VIDEO_PANEL_ARROW);
@@ -605,10 +632,13 @@ function updateInfoValues() {
updateFieldValue(ID_MCA_FW_VERSION, device.getMCAFWVersion());
// Set MCA HW version.
updateFieldValue(ID_MCA_HW_VERSION, device.getMCAHWVersion());
- // Set Ethernet MAC address.
- updateFieldValue(ID_ETHERNET_MAC, device.getEthernetMAC());
- // Set Ethernet IP address.
- updateFieldValue(ID_ETHERNET_IP, device.getEthernetIP());
+ // Iterate Ethernet interfaces.
+ for (var index = 0; index < device.NUM_ETHERNET_INTERFACES; index++) {
+ // Set Ethernet MAC address.
+ updateFieldValue(eval("ID_ETHERNET" + index + "_MAC"), device.getEthernetMAC(index));
+ // Set Ethernet IP address.
+ updateFieldValue(eval("ID_ETHERNET" + index + "_IP"), device.getEthernetIP(index));
+ }
// Set Wi-Fi MAC address.
updateFieldValue(ID_WIFI_MAC, device.getWifiMAC());
// Set Wi-Fi IP address.
@@ -628,6 +658,7 @@ function updateDataPointsValues(response) {
// Iterate the streams in the response.
for (var key in response)
updateDataPointValue(key, response[key]);
+ positionComponents();
}
// Updates the given data stream value.
@@ -658,14 +689,23 @@ function updateDataPointValue(streamID, value) {
case STREAM_MEMORY_USED:
updateValueWithEffect(ID_MEMORY_USED, kiloBytesToMegaBytes(value));
break;
- case STREAM_ETHERNET_STATE:
- updateValueWithEffect(ID_ETHERNET_STATE, onOffStatus(value));
+ case STREAM_ETHERNET0_STATE:
+ updateValueWithEffect(ID_ETHERNET0_STATE, onOffStatus(value));
break;
- case STREAM_ETHERNET_READ_BYTES:
- updateValueWithEffect(ID_ETHERNET_READ_DATA, sizeToHumanRead(value));
+ case STREAM_ETHERNET0_READ_BYTES:
+ updateValueWithEffect(ID_ETHERNET0_READ_DATA, sizeToHumanRead(value));
break;
- case STREAM_ETHERNET_SENT_BYTES:
- updateValueWithEffect(ID_ETHERNET_SENT_DATA, sizeToHumanRead(value));
+ case STREAM_ETHERNET0_SENT_BYTES:
+ updateValueWithEffect(ID_ETHERNET0_SENT_DATA, sizeToHumanRead(value));
+ break;
+ case STREAM_ETHERNET1_STATE:
+ updateValueWithEffect(ID_ETHERNET1_STATE, onOffStatus(value));
+ break;
+ case STREAM_ETHERNET1_READ_BYTES:
+ updateValueWithEffect(ID_ETHERNET1_READ_DATA, sizeToHumanRead(value));
+ break;
+ case STREAM_ETHERNET1_SENT_BYTES:
+ updateValueWithEffect(ID_ETHERNET1_SENT_DATA, sizeToHumanRead(value));
break;
case STREAM_WIFI_STATE:
updateValueWithEffect(ID_WIFI_STATE, onOffStatus(value));
diff --git a/connectcore-demo-example/static/js/devices.js b/connectcore-demo-example/static/js/devices.js
index 534b832..c52cc40 100644
--- a/connectcore-demo-example/static/js/devices.js
+++ b/connectcore-demo-example/static/js/devices.js
@@ -81,19 +81,33 @@ class ConnectCoreDevice {
WIFI_BT_COMPONENT_AREA_WIDTH_PERCENT = 0;
WIFI_BT_COMPONENT_AREA_HEIGHT_PERCENT = 0;
- // Ethernet panel.
- ETHERNET_COMPONENT_VISIBLE = false;
- ETHERNET_COMPONENT_HAS_PANEL = false;
- ETHERNET_COMPONENT_HAS_ARROW = false;
- ETHERNET_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
- ETHERNET_COMPONENT_PANEL_ORIENTATION = VALUE_TOP;
- ETHERNET_COMPONENT_PANEL_HORIZONTAL_PERCENT = 0;
- ETHERNET_COMPONENT_PANEL_VERTICAL_PERCENT = 0;
- ETHERNET_COMPONENT_ARROW_PERCENT = 0;
- ETHERNET_COMPONENT_AREA_TOP_PERCENT = 0;
- ETHERNET_COMPONENT_AREA_LEFT_PERCENT = 0;
- ETHERNET_COMPONENT_AREA_WIDTH_PERCENT = 0;
- ETHERNET_COMPONENT_AREA_HEIGHT_PERCENT = 0;
+ // Ethernet0 panel.
+ ETHERNET0_COMPONENT_VISIBLE = false;
+ ETHERNET0_COMPONENT_HAS_PANEL = false;
+ ETHERNET0_COMPONENT_HAS_ARROW = false;
+ ETHERNET0_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
+ ETHERNET0_COMPONENT_PANEL_ORIENTATION = VALUE_TOP;
+ ETHERNET0_COMPONENT_PANEL_HORIZONTAL_PERCENT = 0;
+ ETHERNET0_COMPONENT_PANEL_VERTICAL_PERCENT = 0;
+ ETHERNET0_COMPONENT_ARROW_PERCENT = 0;
+ ETHERNET0_COMPONENT_AREA_TOP_PERCENT = 0;
+ ETHERNET0_COMPONENT_AREA_LEFT_PERCENT = 0;
+ ETHERNET0_COMPONENT_AREA_WIDTH_PERCENT = 0;
+ ETHERNET0_COMPONENT_AREA_HEIGHT_PERCENT = 0;
+
+ // Ethernet1 panel.
+ ETHERNET1_COMPONENT_VISIBLE = false;
+ ETHERNET1_COMPONENT_HAS_PANEL = false;
+ ETHERNET1_COMPONENT_HAS_ARROW = false;
+ ETHERNET1_COMPONENT_PANEL_ALWAYS_VISIBLE = false;
+ ETHERNET1_COMPONENT_PANEL_ORIENTATION = VALUE_TOP;
+ ETHERNET1_COMPONENT_PANEL_HORIZONTAL_PERCENT = 0;
+ ETHERNET1_COMPONENT_PANEL_VERTICAL_PERCENT = 0;
+ ETHERNET1_COMPONENT_ARROW_PERCENT = 0;
+ ETHERNET1_COMPONENT_AREA_TOP_PERCENT = 0;
+ ETHERNET1_COMPONENT_AREA_LEFT_PERCENT = 0;
+ ETHERNET1_COMPONENT_AREA_WIDTH_PERCENT = 0;
+ ETHERNET1_COMPONENT_AREA_HEIGHT_PERCENT = 0;
// Console.
CONSOLE_COMPONENT_VISIBLE = false;
@@ -167,6 +181,9 @@ class ConnectCoreDevice {
// Capabilities
SUPPORTS_VIDEO_BRIGHTNESS;
+ SUPPORTS_DUAL_ETHERNET;
+
+ NUM_ETHERNET_INTERFACES = 2;
// Device information.
#deviceType;
@@ -180,8 +197,8 @@ class ConnectCoreDevice {
#boardID;
#mcaHWVersion;
#mcaFWVersion;
- #ethernetMAC;
- #ethernetIP;
+ #ethernetMAC = [];
+ #ethernetIP = [];
#wifiMAC;
#wifiIP;
#bluetoothMAC;
@@ -209,8 +226,6 @@ class ConnectCoreDevice {
this.#boardID = deviceData[ID_BOARD_ID];
this.#mcaHWVersion = deviceData[ID_MCA_HW_VERSION];
this.#mcaFWVersion = deviceData[ID_MCA_FW_VERSION];
- this.#ethernetMAC = deviceData[ID_ETHERNET_MAC];
- this.#ethernetIP = deviceData[ID_ETHERNET_IP];
this.#wifiMAC = deviceData[ID_WIFI_MAC];
this.#wifiIP = deviceData[ID_WIFI_IP];
this.#bluetoothMAC = deviceData[ID_BLUETOOTH_MAC];
@@ -219,10 +234,15 @@ class ConnectCoreDevice {
this.#videoResolution = deviceData[ID_VIDEO_RESOLUTION];
this.#sampleRate = deviceData[ID_SAMPLE_RATE];
this.#numSamplesUpload = deviceData[ID_NUM_SAMPLES_UPLOAD];
+ for (var index = 0; index < this.NUM_ETHERNET_INTERFACES; index++) {
+ this.#ethernetMAC[index] = deviceData[eval("ID_ETHERNET" + index + "_MAC")];
+ this.#ethernetIP[index] = deviceData[eval("ID_ETHERNET" + index + "_IP")];
+ }
}
- refreshIPs(eth_ip, wifi_ip) {
- this.#ethernetIP = eth_ip;
+ refreshIPs(eth0_ip, eth1_ip, wifi_ip) {
+ this.#ethernetIP[0] = eth0_ip;
+ this.#ethernetIP[1] = eth1_ip;
this.#wifiIP = wifi_ip;
}
@@ -291,14 +311,18 @@ class ConnectCoreDevice {
return this.#mcaFWVersion;
}
- // Returns the device Ethernet MAC address.
- getEthernetMAC() {
- return this.#ethernetMAC;
+ // Returns the device Ethernet MAC address for the given interface index.
+ getEthernetMAC(index=0) {
+ if (index >= this.NUM_ETHERNET_INTERFACES)
+ return "";
+ return this.#ethernetMAC[index];
}
- // Returns the device Ethernet IP address.
- getEthernetIP() {
- return this.#ethernetIP;
+ // Returns the device Ethernet IP address for the given interface index.
+ getEthernetIP(index=0) {
+ if (index >= this.NUM_ETHERNET_INTERFACES)
+ return "";
+ return this.#ethernetIP[index];
}
// Returns the device WiFi MAC address.
@@ -389,20 +413,22 @@ class ConnectCoreDevice {
this.WIFI_BT_COMPONENT_AREA_HEIGHT_PERCENT));
}
- // Returns the Ethernet panel data.
- getEthernetComponentData() {
- return JSON.parse(TEMPLATE_COMPONENT_DATA.format(this.ETHERNET_COMPONENT_VISIBLE,
- this.ETHERNET_COMPONENT_HAS_PANEL,
- this.ETHERNET_COMPONENT_HAS_ARROW,
- this.ETHERNET_COMPONENT_PANEL_ALWAYS_VISIBLE,
- this.ETHERNET_COMPONENT_PANEL_ORIENTATION,
- this.ETHERNET_COMPONENT_PANEL_HORIZONTAL_PERCENT,
- this.ETHERNET_COMPONENT_PANEL_VERTICAL_PERCENT,
- this.ETHERNET_COMPONENT_ARROW_PERCENT,
- this.ETHERNET_COMPONENT_AREA_TOP_PERCENT,
- this.ETHERNET_COMPONENT_AREA_LEFT_PERCENT,
- this.ETHERNET_COMPONENT_AREA_WIDTH_PERCENT,
- this.ETHERNET_COMPONENT_AREA_HEIGHT_PERCENT));
+ // Returns the Ethernet panel data for the given interface index.
+ getEthernetComponentData(index=0) {
+ if (index >= this.NUM_ETHERNET_INTERFACES)
+ return "";
+ return JSON.parse(TEMPLATE_COMPONENT_DATA.format(eval("this.ETHERNET" + index + "_COMPONENT_VISIBLE"),
+ eval("this.ETHERNET" + index + "_COMPONENT_HAS_PANEL"),
+ eval("this.ETHERNET" + index + "_COMPONENT_HAS_ARROW"),
+ eval("this.ETHERNET" + index + "_COMPONENT_PANEL_ALWAYS_VISIBLE"),
+ eval("this.ETHERNET" + index + "_COMPONENT_PANEL_ORIENTATION"),
+ eval("this.ETHERNET" + index + "_COMPONENT_PANEL_HORIZONTAL_PERCENT"),
+ eval("this.ETHERNET" + index + "_COMPONENT_PANEL_VERTICAL_PERCENT"),
+ eval("this.ETHERNET" + index + "_COMPONENT_ARROW_PERCENT"),
+ eval("this.ETHERNET" + index + "_COMPONENT_AREA_TOP_PERCENT"),
+ eval("this.ETHERNET" + index + "_COMPONENT_AREA_LEFT_PERCENT"),
+ eval("this.ETHERNET" + index + "_COMPONENT_AREA_WIDTH_PERCENT"),
+ eval("this.ETHERNET" + index + "_COMPONENT_AREA_HEIGHT_PERCENT")));
}
// Returns the Console panel data.
@@ -489,4 +515,9 @@ class ConnectCoreDevice {
supportsVideoBrightness() {
return this.SUPPORTS_VIDEO_BRIGHTNESS;
}
+
+ // Returns whether the device supports dual ethernet or not.
+ supportsDualEthernet() {
+ return this.SUPPORTS_DUAL_ETHERNET;
+ }
}