Merge branch 'dey-3.2/maint'

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
This commit is contained in:
Javier Viguera 2022-07-07 13:44:21 +02:00
commit 3c6caabcdf
12 changed files with 588 additions and 248 deletions

View File

@ -16,6 +16,7 @@
import argparse
import cgi
import errno
import http.server
import json
import logging
@ -38,6 +39,9 @@ APP_NAME = "Demo server"
PORT = 9090
EMMC_SIZE_FILE = "/sys/class/mmc_host/mmc0/mmc0:0001/block/mmcblk0/size"
NAND_SIZE_FILE = "/proc/mtd"
SIZE_KB = "KB"
SIZE_MB = "MB"
SIZE_GB = "GB"
@ -86,7 +90,19 @@ class RequestHandler(http.server.SimpleHTTPRequestHandler):
"""
Override.
"""
if re.search("/ajax/get_device_info", self.path) is not None:
if re.search("/ajax/get_device_type", self.path) is not None:
# Set the response headers.
self._set_headers(200)
log.debug("Get device info")
info = {
"device_type": read_proc_file("/proc/device-tree/digi,machine,name")
}
# Send the JSON value.
self.wfile.write(json.dumps(info).encode(encoding="utf_8"))
elif re.search("/ajax/get_device_info", self.path) is not None:
# Set the response headers.
self._set_headers(200)
@ -113,8 +129,10 @@ class RequestHandler(http.server.SimpleHTTPRequestHandler):
"bluetooth_mac": get_bt_mac("hci0"),
"wifi_mac": read_file("/sys/class/net/wlan0/address").strip().upper() if "wlan0" in list_net_ifaces() else ZERO_MAC,
"wifi_ip": get_iface_ip("wlan0") if "wlan0" in list_net_ifaces() else ZERO_IP,
"ethernet_mac": read_file("/sys/class/net/eth0/address").strip().upper() if "eth0" in list_net_ifaces() else ZERO_MAC,
"ethernet_ip": get_iface_ip("eth0") if "eth0" in list_net_ifaces() else ZERO_IP,
"ethernet0_mac": read_file("/sys/class/net/eth0/address").strip().upper() if "eth0" in list_net_ifaces() else ZERO_MAC,
"ethernet0_ip": get_iface_ip("eth0") if "eth0" in list_net_ifaces() else ZERO_IP,
"ethernet1_mac": read_file("/sys/class/net/eth1/address").strip().upper() if "eth1" in list_net_ifaces() else ZERO_MAC,
"ethernet1_ip": get_iface_ip("eth1") if "eth1" in list_net_ifaces() else ZERO_IP,
}
# Send the JSON value.
@ -574,7 +592,21 @@ def get_storage_size():
Returns:
Integer: The internal storage size, -1 if fails.
"""
size = read_file("/sys/class/mmc_host/mmc0/mmc0:0001/block/mmcblk0/size")
if os.path.exists(NAND_SIZE_FILE):
return get_nand_size()
if os.path.exists(EMMC_SIZE_FILE):
return get_emmc_size()
return -1
def get_emmc_size():
"""
Gets the internal eMMC storage size in KB.
Returns:
Integer: The internal eMMC storage size, -1 if fails.
"""
size = read_file(EMMC_SIZE_FILE)
if size == NOT_AVAILABLE:
return -1
try:
@ -583,6 +615,30 @@ def get_storage_size():
return -1
def get_nand_size():
"""
Gets the internal NAND storage size in KB.
Returns:
Integer: The internal NAND storage size, -1 if fails.
"""
total_size = 0
mtd_contents = read_file(NAND_SIZE_FILE)
if mtd_contents == NOT_AVAILABLE:
return -1
for line in mtd_contents.splitlines():
if line.startswith("mtd"):
fields = line.split()
if len(fields) < 4:
continue
try:
total_size += int(fields[1], 16)
except ValueError:
return -1
return total_size / 1024 # kB
def get_video_resolution():
"""
Gets the video resolution.
@ -594,7 +650,7 @@ def get_video_resolution():
if res == NOT_AVAILABLE:
return "-"
return res.split(":")[1].strip()
return res.splitlines()[0].split(":")[1].strip()
def is_dual_system():

View File

@ -35,12 +35,12 @@ Digi Demo - Dashboard
</div>
</a>
<div class="nav-right-container">
<div>
<img src="./static/images/board.png" class="device-title-img" title="Device">
</div>
<div id="device-name">DEY DEVICE</div>
<div class="nav-right-container">
<div>
<img src="./static/images/board.png" class="device-title-img" title="Device">
</div>
<div id="device-name">DEY DEVICE</div>
</div>
</div>
</nav>
@ -53,7 +53,7 @@ Digi Demo - Dashboard
<!-- Bootstrap List Group -->
<ul id="sections" data-pjax class="list-group">
<li>
<li id="section_dashboard">
<a data-pjax href="index.html" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="d-flex w-100 justify-content-start align-items-center">
<span class="digi-menu-icon fas fa-tachometer-alt fa-fw fa-lg mr-3"></span>
@ -61,7 +61,7 @@ Digi Demo - Dashboard
</div>
</a>
</li>
<li>
<li id="section_multimedia">
<a data-pjax href="multimedia.html" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="d-flex w-100 justify-content-start align-items-center">
<span class="digi-menu-icon fas fa-film fa-fw fa-lg mr-3"></span>
@ -69,7 +69,7 @@ Digi Demo - Dashboard
</div>
</a>
</li>
<li>
<li id="section_management">
<a data-pjax href="management.html" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="d-flex w-100 justify-content-start align-items-center">
<span class="digi-menu-icon fas fa-cog fa-fw fa-lg mr-3"></span>
@ -246,114 +246,40 @@ Digi Demo - Dashboard
</div>
<div class="device-card-content">
<div class="cpu-info">
<table>
<tr style="vertical-align: baseline;">
<td>
<span class="device-card-content-text">Usage:</span>
</td>
<td>
<span id="cpu_load" class="device-card-content-value">-</span> %
</td>
</tr>
<tr style="vertical-align: baseline;">
<td>
<span class="device-card-content-text">Uptime:</span>
</td>
<td>
<span id="cpu_uptime" class="device-card-content-value">-</span>
</td>
</tr>
<tr style="vertical-align: baseline;">
<td>
<span class="device-card-content-text">Frequency:</span>
</td>
<td>
<span id="cpu_frequency" class="device-card-content-value">-</span> MHz
</td>
</tr>
<tr style="vertical-align: baseline;">
<td>
<span class="device-card-content-text">Temperature:</span>
</td>
<td>
<span id="cpu_temperature" class="device-card-content-value">-</span> C
</td>
</tr>
</table>
</div>
<div class="cores">
<div id="core-1" class="core">
<table class="core-table">
<tbody>
<tr>
<td rowspan="2">
<div class="core-name-container">
<span class="digi-icon-color fas fa-microchip fa-2x"></span>
<span>Core 1</span>
</div>
</td>
<td><span id="core-1-usage">-</span> %</td>
</tr>
<tr>
<td><span id="core-1-speed">-</span> MHz</td>
</tr>
</tbody>
</table>
</div>
<div id="core-2" class="core">
<table class="core-table">
<tbody>
<tr>
<td rowspan="2">
<div class="core-name-container">
<span class="digi-icon-color fas fa-microchip fa-2x"></span>
<span>Core 2</span>
</div>
</td>
<td><span id="core-2-usage">-</span> %</td>
</tr>
<tr>
<td><span id="core-2-speed">-</span> MHz</td>
</tr>
</tbody>
</table>
</div>
<div id="core-3" class="core">
<table class="core-table">
<tbody>
<tr>
<td rowspan="2">
<div class="core-name-container">
<span class="digi-icon-color fas fa-microchip fa-2x"></span>
<span>Core 3</span>
</div>
</td>
<td><span id="core-3-usage">-</span> %</td>
</tr>
<tr>
<td><span id="core-3-speed">-</span> MHz</td>
</tr>
</tbody>
</table>
</div>
<div id="core-4" class="core">
<table class="core-table">
<tbody>
<tr>
<td rowspan="2">
<div class="core-name-container">
<span class="digi-icon-color fas fa-microchip fa-2x"></span>
<span>Core 4</span>
</div>
</td>
<td><span id="core-4-usage">-</span> %</td>
</tr>
<tr>
<td><span id="core-4-speed">-</span> MHz</td>
</tr>
</tbody>
</table>
</div>
<table>
<tr style="vertical-align: baseline;">
<td>
<span class="device-card-content-text">Usage:</span>
</td>
<td>
<span id="cpu_load" class="device-card-content-value">-</span> %
</td>
</tr>
<tr style="vertical-align: baseline;">
<td>
<span class="device-card-content-text">Uptime:</span>
</td>
<td>
<span id="cpu_uptime" class="device-card-content-value">-</span>
</td>
</tr>
<tr style="vertical-align: baseline;">
<td>
<span class="device-card-content-text">Frequency:</span>
</td>
<td>
<span id="cpu_frequency" class="device-card-content-value">-</span> MHz
</td>
</tr>
<tr style="vertical-align: baseline;">
<td>
<span class="device-card-content-text">Temperature:</span>
</td>
<td>
<span id="cpu_temperature" class="device-card-content-value">-</span> C
</td>
</tr>
</table>
</div>
</div>
</div>
@ -541,16 +467,16 @@ Digi Demo - Dashboard
</table>
</div>
</div>
<div id="ethernet_panel_area" class="panel-area panel-tooltip" onclick="toggleInfoPanelVisibility('ethernet')">
<span class="panel-tooltip-text">Ethernet stats</span>
<span id="ethernet_panel_icon" class="fas fa-ethernet panel-area-icon"></span>
<div id="ethernet0_panel_area" class="panel-area panel-tooltip" onclick="toggleInfoPanelVisibility('ethernet0')">
<span id="ethernet0_tooltip" class="panel-tooltip-text">Ethernet 0 stats</span>
<span id="ethernet0_panel_icon" class="fas fa-ethernet panel-area-icon"></span>
</div>
<div id="ethernet_panel" class="device-card ethernet-panel shadow-sm">
<span id="ethernet_panel_arrow" class="panel-arrow"></span>
<div id="ethernet0_panel" class="device-card ethernet-panel shadow-sm">
<span id="ethernet0_panel_arrow" class="panel-arrow"></span>
<div class="device-card-header">
<span class="fas fa-ethernet fa-lg mr-2"></span>
<span>Ethernet stats</span>
<div class="fas fa-window-close fa-lg device-card-header-button" onclick="setInfoPanelVisible('ethernet', false)"></div>
<span id="ethernet0_title">Ethernet 0 stats</span>
<div class="fas fa-window-close fa-lg device-card-header-button" onclick="setInfoPanelVisible('ethernet0', false)"></div>
</div>
<div class="device-card-content">
<table>
@ -559,7 +485,7 @@ Digi Demo - Dashboard
<span class="device-card-content-text">Status:</span>
</td>
<td>
<span id="ethernet_state" class="device-card-content-value">-</span>
<span id="ethernet0_state" class="device-card-content-value">-</span>
</td>
</tr>
<tr>
@ -567,7 +493,7 @@ Digi Demo - Dashboard
<span class="device-card-content-text">MAC address:</span>
</td>
<td>
<span id="ethernet_mac" class="device-card-content-value">-</span>
<span id="ethernet0_mac" class="device-card-content-value">-</span>
</td>
</tr>
<tr>
@ -575,7 +501,7 @@ Digi Demo - Dashboard
<span class="device-card-content-text">IP address:</span>
</td>
<td>
<span id="ethernet_ip" class="device-card-content-value">-</span>
<span id="ethernet0_ip" class="device-card-content-value">-</span>
</td>
</tr>
<tr>
@ -583,7 +509,7 @@ Digi Demo - Dashboard
<span class="device-card-content-text">Sent data:</span>
</td>
<td>
<span id="ethernet_sent_data" class="device-card-content-value">-</span>
<span id="ethernet0_sent_data" class="device-card-content-value">-</span>
</td>
</tr>
<tr>
@ -591,7 +517,63 @@ Digi Demo - Dashboard
<span class="device-card-content-text">Received data:</span>
</td>
<td>
<span id="ethernet_received_data" class="device-card-content-value">-</span>
<span id="ethernet0_received_data" class="device-card-content-value">-</span>
</td>
</tr>
</table>
</div>
</div>
<div id="ethernet1_panel_area" class="panel-area panel-tooltip" onclick="toggleInfoPanelVisibility('ethernet1')">
<span class="panel-tooltip-text">Ethernet 1 stats</span>
<span id="ethernet1_panel_icon" class="fas fa-ethernet panel-area-icon"></span>
</div>
<div id="ethernet1_panel" class="device-card ethernet-panel shadow-sm">
<span id="ethernet1_panel_arrow" class="panel-arrow"></span>
<div class="device-card-header">
<span class="fas fa-ethernet fa-lg mr-2"></span>
<span>Ethernet 1 stats</span>
<div class="fas fa-window-close fa-lg device-card-header-button" onclick="setInfoPanelVisible('ethernet1', false)"></div>
</div>
<div class="device-card-content">
<table>
<tr>
<td>
<span class="device-card-content-text">Status:</span>
</td>
<td>
<span id="ethernet1_state" class="device-card-content-value">-</span>
</td>
</tr>
<tr>
<td>
<span class="device-card-content-text">MAC address:</span>
</td>
<td>
<span id="ethernet1_mac" class="device-card-content-value">-</span>
</td>
</tr>
<tr>
<td>
<span class="device-card-content-text">IP address:</span>
</td>
<td>
<span id="ethernet1_ip" class="device-card-content-value">-</span>
</td>
</tr>
<tr>
<td>
<span class="device-card-content-text">Sent data:</span>
</td>
<td>
<span id="ethernet1_sent_data" class="device-card-content-value">-</span>
</td>
</tr>
<tr>
<td>
<span class="device-card-content-text">Received data:</span>
</td>
<td>
<span id="ethernet1_received_data" class="device-card-content-value">-</span>
</td>
</tr>
</table>
@ -758,6 +740,7 @@ Digi Demo - Dashboard
<!-- Local JS files and functions -->
<script type="text/javascript" src="./static/js/sidebar.js"></script>
<script type="text/javascript" src="./static/js/ccimx6ulsbc.js"></script>
<script type="text/javascript" src="./static/js/ccimx8mm-dvk.js"></script>
<script type="text/javascript" src="./static/js/ccimx8m-nano.js"></script>
<script type="text/javascript" src="./static/js/ccimx8x-sbc-pro.js"></script>
@ -803,6 +786,9 @@ Digi Demo - Dashboard
});
}
// Update available sections.
updateAvailableSections();
// Set the selected section.
setSelectedSection();
});

View File

@ -53,7 +53,7 @@ Digi Demo - Management
<!-- Bootstrap List Group -->
<ul id="sections" data-pjax class="list-group">
<li>
<li id="section_dashboard">
<a data-pjax href="index.html" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="d-flex w-100 justify-content-start align-items-center">
<span class="digi-menu-icon fas fa-tachometer-alt fa-fw fa-lg mr-3"></span>
@ -61,7 +61,7 @@ Digi Demo - Management
</div>
</a>
</li>
<li>
<li id="section_multimedia">
<a data-pjax href="multimedia.html" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="d-flex w-100 justify-content-start align-items-center">
<span class="digi-menu-icon fas fa-film fa-fw fa-lg mr-3"></span>
@ -69,7 +69,7 @@ Digi Demo - Management
</div>
</a>
</li>
<li>
<li id="section_management">
<a data-pjax href="management.html" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="d-flex w-100 justify-content-start align-items-center">
<span class="digi-menu-icon fas fa-cog fa-fw fa-lg mr-3"></span>
@ -286,6 +286,7 @@ Digi Demo - Management
<!-- Local JS files and functions -->
<script type="text/javascript" src="./static/js/sidebar.js"></script>
<script type="text/javascript" src="./static/js/ccimx6ulsbc.js"></script>
<script type="text/javascript" src="./static/js/ccimx8mm-dvk.js"></script>
<script type="text/javascript" src="./static/js/ccimx8m-nano.js"></script>
<script type="text/javascript" src="./static/js/ccimx8x-sbc-pro.js"></script>
@ -331,6 +332,9 @@ Digi Demo - Management
});
}
// Update available sections.
updateAvailableSections();
// Set the selected section.
setSelectedSection();
});

View File

@ -53,7 +53,7 @@ Digi Demo - Multimedia
<!-- Bootstrap List Group -->
<ul id="sections" data-pjax class="list-group">
<li>
<li id="section_dashboard">
<a data-pjax href="index.html" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="d-flex w-100 justify-content-start align-items-center">
<span class="digi-menu-icon fas fa-tachometer-alt fa-fw fa-lg mr-3"></span>
@ -61,7 +61,7 @@ Digi Demo - Multimedia
</div>
</a>
</li>
<li>
<li id="section_multimedia">
<a data-pjax href="multimedia.html" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="d-flex w-100 justify-content-start align-items-center">
<span class="digi-menu-icon fas fa-film fa-fw fa-lg mr-3"></span>
@ -69,7 +69,7 @@ Digi Demo - Multimedia
</div>
</a>
</li>
<li>
<li id="section_management">
<a data-pjax href="management.html" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="d-flex w-100 justify-content-start align-items-center">
<span class="digi-menu-icon fas fa-cog fa-fw fa-lg mr-3"></span>
@ -227,6 +227,7 @@ Digi Demo - Multimedia
<!-- Local JS files and functions -->
<script type="text/javascript" src="./static/js/sidebar.js"></script>
<script type="text/javascript" src="./static/js/ccimx6ulsbc.js"></script>
<script type="text/javascript" src="./static/js/ccimx8mm-dvk.js"></script>
<script type="text/javascript" src="./static/js/ccimx8m-nano.js"></script>
<script type="text/javascript" src="./static/js/ccimx8x-sbc-pro.js"></script>
@ -272,6 +273,9 @@ Digi Demo - Multimedia
});
}
// Update available sections.
updateAvailableSections();
// Set the selected section.
setSelectedSection();
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 KiB

View File

@ -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);
}
}

View File

@ -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) {

View File

@ -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) {

View File

@ -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) {

View File

@ -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);
}

View File

@ -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));

View File

@ -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;
}
}