You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

465 lines
23 KiB

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Device Configuration UI</title>
<link rel="stylesheet" href="./css/style.css"/>
</head>
<body>
<!-- Sidebar -->
<aside class="sidebar">
<h2>Configuration</h2>
<details class="nav" open>
<summary>Device configuration</summary>
<div class="nav-items">
<button data-page="ssid">SSID</button>
<button data-page="network">Network &amp; Server</button>
<button data-page="io">I/O</button>
<button data-page="log">Log</button>
</div>
</details>
<details class="nav">
<summary>Protocol configuration</summary>
<div class="nav-items">
<button data-page="reg">Config</button>
<button data-page="modbus" id="modbusSidebarBtn" style="display: none">MODBUS</button>
<button data-page="opcua" id="opcUaSidebarBtn" style="display: none">OPC_UA</button>
<button data-page="can" id="canSidebarBtn" style="display: none">CAN</button>
<button data-page="odometer" id="odometerSidebarBtn" style="display: none">ODOmeter</button>
</div>
</details>
</aside>
<!-- Content -->
<div class="content">
1 year ago
<header class="topbar">
<span id="page-title">SSID</span>
<div class="topbar-actions">
<div class="topbar-file-actions topbar-device-actions">
<div class="file-upload-wrapper-device"
data-file-type="device"
data-expected-filename="deviceConfig.json"
data-upload-url="/setting/device"
data-get-url="/setting/get-device">
<input type="file" class="upload-input-device" accept=".json" style="display: none;">
<button class="select-file-btn-device">Load Local Device File</button>
</div>
<button class="download-device-file">Download Local Device File</button>
</div>
<div class="topbar-file-actions topbar-protocol-actions" style="display: none;">
<div class="file-upload-wrapper-protocol"
data-file-type="protocol"
data-expected-filename="protocolConfig.json"
data-upload-url="/setting/protocol"
data-get-url="/setting/get-protocol">
<input type="file" class="upload-input-protocol" accept=".json" style="display: none;">
<button class="select-file-btn-protocol">Load Local Protocol File</button>
</div>
<button class="download-protocol-file">Download Local Protocol File</button>
</div>
<button class="save-file">Save</button>
</div>
1 year ago
</header>
<main class="board">
<!-- SSID PAGE -->
<section id="page-ssid" class="page">
<div class="card">
<h3>SSID List</h3>
<template id="ssid-template">
<div class="ssid-row">
<input class="ssid-name" placeholder="Name"/>
<input class="ssid-pw" type="password" placeholder="Password"/>
<button type="button" class="toggle-pw">show</button>
<select>
<option value="none">NONE</option>
<option value="wpa/wpa2">WPA/WPA2</option>
<option value="wpa3">WPA3</option>
</select>
</div>
</template>
<div id="ssid-list"></div>
<button id="add-ssid" class="icon-button" title="add SSID" type="button">+</button>
</div>
3 months ago
<div class="card separate-setting-card">
<h3>Region</h3>
<div class="ssid-country-code">
<label for="wifi_country_code">Country Code</label>
<input id="wifi_country_code" maxlength="2" placeholder="KR" />
<span class="field-hint">2-letter code such as KR, DE, JP, US</span>
3 months ago
</div>
</div>
</section>
<!-- NETWORK PAGE -->
<section id="page-network" class="page" style="display:none">
<div class="card" style="margin-bottom:32px">
<h3>Network</h3>
<div class="grid-3-col" style="margin-bottom:16px">
<div class="radio-group">
<label class="radio-label"><input type="radio" name="ipMode" value="static"> Static</label>
<label class="radio-label"><input type="radio" name="ipMode" value="dhcp"> DHCP</label>
</div>
</div>
<div class="grid-3-col"><span>IP</span><input id="wifi_ip" /></div>
<div class="grid-3-col"><span>SUBNET</span><input id="wifi_netmask" /></div>
<div class="grid-3-col"><span>GATEWAY</span><input id="wifi_gateway" />
</div>
<div class="grid-3-col"><span>DNS #1</span><input id="wifi_dns1" /></div>
<div class="grid-3-col"><span>DNS #2</span><input id="wifi_dns2" /></div>
</div>
<div class="card">
<h3>Server</h3>
<div class="grid-3-col"><strong></strong><span style="text-align:center">IP</span><span
style="text-align:center">Port</span></div>
<div class="grid-3-col"><span>TIoT Server</span> <input id="protocol_server_ip" placeholder="ex)123.123.123.123"/><input
id="protocol_server_port"/></div>
<div class="grid-3-col"><span>Update Server</span><input id="update_server_ip" placeholder="ex)123.123.123.123"/><input
id="update_server_port"/></div>
<div class="grid-3-col"><span>DGPS Server</span> <input id="rtcm_server_ip" placeholder="ex)123.123.123.123"/><input
id="rtcm_server_port"/></div>
<div class="grid-3-col"><span>OPC_UA</span> <input id="opc_ua_server_ip" placeholder="ex)123.123.123.123"/><input
id="opc_ua_server_port"/></div>
<div class="grid-3-col"><span>MODBUS</span> <input id="modbus_server_ip" placeholder="ex)123.123.123.123"/><input
id="modbus_server_port"/></div>
<div class="grid-3-col"><span>LTE Server</span> <input id="lte_server_ip" placeholder="ex)123.123.123.123"/><input
id="lte_server_port"/></div>
</div>
</section>
<!-- I/O PAGE -->
<section id="page-io" class="page" style="display:none">
<div class="card">
<div class="io-top">
<!-- Ethernet -->
<div class="io-group">
<h4>Ethernet</h4>
<div class="io-fieldset">
<div class="io-row"><span class="label-inline">IP</span><span class="colon">:</span><input
id="eth_ip"></div>
<div class="io-row"><span class="label-inline">SUBNET</span><span
class="colon">:</span><input id="eth_netmask"></div>
<div class="io-row"><span class="label-inline">GATEWAY</span><span
class="colon">:</span><input id="eth_gateway"></div>
</div>
</div>
<!-- LTE -->
<div class="io-group">
<h4>LTE</h4>
<div class="io-fieldset">
<div class="io-row"><span class="label-inline">IP</span><span class="colon">:</span><input
id="lte_ip"></div>
<div class="io-row"><span class="label-inline">PORT</span><span class="colon">:</span><input
id="lte_port"></div>
<div class="io-row"><span class="label-inline">NETMASK</span><span
class="colon">:</span><input id="lte_netmask"></div>
<div class="io-row"><span class="label-inline">GATEWAY</span><span
class="colon">:</span><input id="lte_gateway"></div>
</div>
</div>
</div>
<div class="io-bot">
<!-- RS-485 -->
<div class="io-group">
<h4>MODBUS 422 / 485</h4>
<div class="io-fieldset">
<div class="io-row"><span class="label-inline">Mode</span><span class="colon">:</span>
<select id="rs485_mode">
<option value="" selected disabled hidden></option>
<option value="half">half</option>
<option value="full">full</option>
</select>
</div>
<div class="io-row"><span class="label-inline">Speed</span><span
class="colon">:</span><select id="rs485_baudrate">
1 year ago
<option value="">NONE</option>
<option value="9600">9600</option>
<option value="115200">115200</option>
</select></div>
<div class="io-row"><span class="label-inline">Parity</span><span
class="colon">:</span><select id="rs485_parity">
<option value="no">NONE</option>
<option value="odd">ODD</option>
<option value="even">EVEN</option>
</select></div>
<div class="io-row"><span class="label-inline">Data bits</span><span
class="colon">:</span><input id="rs485_databits"></div>
<div class="io-row"><span class="label-inline">Stop bits</span><span
class="colon">:</span><input id="rs485_stopbits"></div>
</div>
</div>
<!-- CAN -->
<div class="io-group">
3 months ago
<h4>CAN</h4>
<div class="io-fieldset">
1 year ago
<div class="io-row"><span class="label-inline">Can Type</span><span class="colon">:</span>
<select id="can_bus_type">
<option value="" selected disabled hidden></option>
<option value="extended">extended</option>
<option value="standard">standard</option>
</select>
</div>
1 year ago
<div class="io-row"><span class="label-inline">Can Speed</span><span class="colon">:</span>
<select id="can_baudrate">
<option value="">AUTO</option>
2 months ago
<option value="100">100kb/s</option>
<option value="250">250kb/s</option>
<option value="500">500kb/s</option>
<option value="1000">1M/s</option>
</select>
</div>
</div>
</div>
</div>
</section>
<!-- LOG PAGE -->
<section id="page-log" class="page" style="display:none">
<div class="card">
<h3>Log Configuration</h3>
<div class="io-group">
<div class="io-fieldset">
<div class="io-row"><span class="label-inline">Log Save</span><span class="colon">:</span>
<select id="log_save">
<option value="off">OFF</option>
<option value="on">ON</option>
</select>
</div>
<div class="io-row"><span class="label-inline">Max Size (MB)</span><span class="colon">:</span><input id="log_max_size" type="number" min="1" max="1000"></div>
<div class="io-row"><span class="label-inline">Max Duration (days)</span><span class="colon">:</span><input id="log_max_duration" type="number" min="1" max="365"></div>
</div>
</div>
</div>
</section>
<!-- Protocol PAGE -->
<section id="page-reg" class="page" style="display:none">
<div class="card">
<div class="io-group">
<div class="reg-io-grid">
<div class="io-fieldset">
<div class="io-row"><span class="label">Device type</span>
<select id="reg_device_type">
<option selected disabled hidden="hidden"></option>
<option value="TIOT">TIOT</option>
<option value="RTLS">RTLS</option>
</select>
</div>
<div class="io-row"><span class="label">Version</span><input id="reg_version"></div>
<div class="io-row"><span class="label">Equipment</span>
<select id="reg_equipment">
<option selected disabled hidden="hidden"></option>
<option value="ITV">ITV</option>
<option value="RS">RS</option>
<option value="ECH">ECH</option>
<option value="RTG">RTG</option>
<option value="RMG">RMG</option>
<option value="MHC">MHC</option>
<option value="STS">STS</option>
</select>
</div>
<div class="io-row"><span class="label">Equipment ID</span><input id="reg_equipment_id">
</div>
<div class="io-row"><span class="label">MEID</span><input id="reg_meid"></div>
<div class="io-row"><span class="label">Protocol</span>
<select id="reg_protocol">
<option value="NONE">NONE</option>
<option value="MODBUS">MODBUS</option>
<option value="OPC_UA">OPC_UA</option>
</select>
</div>
</div>
<div class="io-fieldset">
<div class="io-row"><span class="label">DR On/Off</span>
<select id="reg_dr_on_off">
<option selected disabled hidden="hidden"></option>
<option value="on">on</option>
<option value="off">off</option>
</select>
</div>
<div class="io-row"><span class="label">ODOmeter on/off</span>
<select id="odo_on">
<option selected disabled hidden="hidden"></option>
<option value="on">on</option>
<option value="off">off</option>
</select>
</div>
<div class="io-row"><span class="label">Speed Data Source</span>
<select id="reg_speed_data_source">
<option selected disabled hidden="hidden"></option>
<option value="CAN">CAN</option>
<option value="GPS">GPS</option>
</select>
</div>
<div class="io-row"><span class="label">2Byte Order</span>
<select id="reg_two_byte_order">
<option selected disabled hidden="hidden"></option>
<option value="little">little</option>
<option value="big">big</option>
</select>
</div>
<div class="io-row"><span class="label">4Byte Order</span>
<select id="reg_four_byte_order">
<option selected disabled hidden="hidden"></option>
<option value="little">little</option>
<option value="littleSwap">little swap</option>
<option value="bigSwap">big swap</option>
<option value="big">big</option>
</select>
</div>
<div class="io-row"><span class="label">CAN Input</span>
<select id="reg_can_input">
<option selected disabled hidden="hidden"></option>
<option value="on">on</option>
<option value="off">off</option>
</select>
</div>
<div class="io-row"><span class="label">Analog Input Level</span>
<select id="reg_analog_input_level">
<option selected disabled hidden="hidden"></option>
<option value="2">2</option>
<option value="4">4</option>
<option value="6">6</option>
</select>
</div>
<div class="io-row checkbox-group">
<label class="checkbox-with-text">
<input type="checkbox" id="ai0"/>AI0
1 year ago
</label>
<label class="checkbox-with-text">
<input type="checkbox" id="ai1"/>AI1
1 year ago
</label>
</div>
<div class="io-row checkbox-group">
<label class="checkbox-with-text">
<input type="checkbox" id="di0"/>DI0
1 year ago
</label>
<label class="checkbox-with-text">
<input type="checkbox" id="di1"/>DI1
1 year ago
</label>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="page-modbus" class="page" style="display:none;">
<div class="card">
<div class="modbus-table-container">
<table>
<thead>
<tr>
1 year ago
<th>Field</th>
<th>Address</th>
<th>IDT</th>
<th>ODT</th>
<th>Default Value</th>
<th>Expression</th>
<th>Action</th>
</tr>
</thead>
<tbody id="modbus-field-list">
</tbody>
</table>
</div>
<div class="inline-table-actions">
<button id="modbus_add_row_btn" type="button">Add Row</button>
</div>
</div>
</section>
<section id="page-opcua" class="page" style="display:none;">
<div class="card">
<div class="opcua-table-container">
<table>
<thead>
<tr>
<th>Field</th>
<th>Address</th>
<th>NS</th>
<th>ODT</th>
<th>Default Value</th>
<th>Expression</th>
<th>Action</th>
</tr>
</thead>
<tbody id="opcua-field-list">
</tbody>
</table>
</div>
<div class="inline-table-actions">
<button id="opcua_add_row_btn" type="button">Add Row</button>
</div>
</div>
</section>
<section id="page-can" class="page" style="display:none;">
<div class="card">
<h3>CAN Configuration</h3>
<div class="can-table-container">
<table>
<thead>
<tr>
<th>Field</th>
<th>ID</th>
<th>ODT</th>
<th>Default Value</th>
<th>Shift</th>
<th>Mask</th>
3 months ago
<th>Expression</th>
<th>Action</th>
</tr>
</thead>
<tbody id="can-field-list">
</tbody>
</table>
</div>
<div class="inline-table-actions">
<button id="can_add_row_btn" type="button">Add Row</button>
</div>
</div>
</section>
<section id="page-odometer" class="page" style="display:none;">
<div class="card">
<div class="odometer-table-container">
<table>
<thead>
<tr>
<th>Target</th>
<th>Source</th>
<th>ID</th>
<th>Shift</th>
<th>Mask</th>
3 months ago
<th>Expression</th>
</tr>
</thead>
<tbody id="odometer-field-list">
</tbody>
</table>
</div>
</div>
</section>
</main>
</div>
<!-- Script -->
<script type="module" src="./js/main.js"></script>
</body>
3 months ago
</html>