|
|
|
<!doctype html>
|
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
|
|
<title>Terminal :: ESPTerm</title>
|
|
|
|
<link href="/css/app.css" rel="stylesheet">
|
|
|
|
<script src="/js/app.js"></script>
|
|
|
|
<script>
|
|
|
|
var _root = location.host;
|
|
|
|
var _demo = 1;
|
|
|
|
var _demo_screen = "S\u0019\u0001Q\u0001\u0018\u0001P\u0001\u0014\u0003\u0001\u0005\b\u0001 \u0002P\u0001\u0005\u0005\u0001\u0004\u0002\u0001~ $ \u0005\b\u0001\u0004\u0001\u0001archey3|lolcat -F .3 \u0002\t\u0002\u0005^\u0001 \u0005@\u0001 \u0005\"\u0001 \u0005(\u0001 \u0005'\u0001 \u0005-\u0001 +\u0005,\u0001 \u00052\u0001 \u00051\u0001 \u0005T\u0001 \u0005w\u0001 \u0005\u001c\u0002 O\u0005\u0016\u0002S\u0005:\u0002: A\u00054\u0002r\u0005X\u0002ch \u0005R\u0002Lin\u0005M\u0002ux x\u0005H\u000286_\u0005I\u000264\u0005\b\u0001 \u0002\u001b\u0001\u0005@\u0001 \u0005\"\u0001 \u0005(\u0001 \u0005'\u0001 \u0005-\u0001 \u0005,\u0001 \u00052\u0001 # \u00051\u0001 \u0005T\u0001 \u0005w\u0001 \u0005\u001c\u0002 \u0005\u0016\u0002 \u0005:\u0002 Ho\u00054\u0002s\u0005X\u0002tna\u0005R\u0002me:\u0005M\u0002 N20\u0005H\u00022\u0005\b\u0001 \u0002\"\u0001\u0005\"\u0001 \u0005(\u0001 \u0005'\u0001 \u0005-\u0001 \u0005,\u0001 \u00052\u0001 \u00051\u0001###\u0005T\u0001 \u0005w\u0001 \u0005\u001c\u0002 \u0005\u0016\u0002 \u0005:\u0002 \u00054\u0002 \u0005X\u0002Ker\u0005R\u0002nel\u0005M\u0002 Rel\u0005H\u0002eas\u0005I\u0002e: \u0005%\u00024\u0005&\u0002.9.\u0005\u0002\u00024\u0005\u0003\u00027-1\u0005^\u0001-lt\u0005@\u0001s\u0005\b\u0001 \u0002\u0014\u0001\u0005(\u0001 \u0005'\u0001 \u0005-\u0001 \u0005,\u0001 \u00052\u0001 \u00051\u0001 #\u0005T\u0001####\u0005w\u0001 \u0005\u001c\u0002 \u0005\u0016\u0002 \u0005:\u0002 \u00054\u0002 \u0005X\u0002 \u0005R\u0002Upt\u0005M\u0002ime:\u0005H\u0002 19\u0005I\u0002:26\u0005\b\u0001 \u0002#\u0001\u0005'\u0001 \u0005-\u0001 \u0005,\u0001 \u00052\u0001 \u00051\u0001 \u0005T\u0001 ##\u0005w\u0001###\u0005\u001c\u0002# \u0005\u0016\u0002 \u0005:\u0002 \u00054\u0002 \u0005X\u0002 \u0005R\u0002 \u0005M\u0002WM: \u0005H\u0002KWi\u0005I\u0002n\u0005\b\u0001 \u0002(\u0001\u0005-\u0001 \u0005,\u0001 \u00052\u0001 \u00051\u0001 \u0005T\u0001 \u0005w\u0001; #\u0005\u001c\u0002###\u0005\u0016\u0002#\u0005:\u0002; \u00054\u0002 \u0005X\u0002 \u0005R\u0002 \u0005M\u0002 D\u0005H\u0002E: \u0005I\u0002KDE\u0005\b\u0001 \u0002)\u0001\u00052\u0001 \u00051\u0001 \u0005T\u0001 \u0005w\u0001 +\u0005\u001c\u0002##.\u0005\u0016\u0002#\u0005:\u0002###\u00054\u0002#\u0005X\u0002 \u0005R\u0002 \u0005M\u0002 \u0005H\u0002 P\u0005I\u0002ack\u0005%\u0002a\u0005&\u0002ges\u0005\u0002\u0002:\u0005\u0003\u0002 18\u0005^\u000121\u0005\b\u0001 \u0002\"\u0001\u00051\u0001 \u0005T\u0001 \u0005w\u0001 \u0005\u001c\u0002 +#\u0005\u0016\u0002#\u0005:\u0002###\u00054\u0002#\u0005X\u0002###\u0005R\u0002# \u0005M\u0002 \u0005H\u0002 \u0005I\u0002 R\u0005%\u0002A\u0005&\u0002M: \u0005\u0002\u00029\u0005\u0003\u0002256\u0005^\u0001 MB\u0005@\u0001 / 1\u0005\"\u0001599\u0005(\u00019 M\u0005'\u0001B\u0005\b\u0001 \u0002\u0019\u0001\u0005T\u0001 \u0005w\u0001 \u0005\u001c\u0002 \u0005\u0016\u0002#\u0005:\u0002###\u00054\u0002#\u0005X\u0002###\u0005R\u0002###\u0005M\u0002##; \u0005H\u0002 \u0005I\u0002 \u0005%\u0002 \u0005&\u0002 Pr\u0005\u0002\u0002o\u0005\u0003\u0002ces\u0005^\u0001sor\u0005@\u0001 Typ\u0005\"\u0001e: \u0005(\u0001Int\u0005'\u0001e\u0005-\u0001l(R\u0005,\u0001)\u00052\u0001 Co\u00051\u0001re(\u0005T\u0001TM) \u0005w\u0001i5-\u0005\u001c\u0002640\u0005\u0016\u00020\u0005:\u0002 CP\u00054\u0002U\u0005X\u0002 @ \u0005R\u00022.7\u0005M\u00020GHz\u0005R\u0002 \u0002I\u0001\u0005w\u0001 \u0005\u001c\u0002 \u0005\u0016\u0002 \u0005:\u0002 ##\u00054\u0002#\u0005X\u0002###\u0005R\u0002###\u0005M\u0002####\u0005H\u0002##+\u0005I\u0002 \u0005%\u0002 \u0005&\u0002 \u0005\u0002\u0002 \u0005\u0003\u0002$ED\u0005^\u0001ITO\u0005@\u0001R: n\u0005\"\u0001ano\u0005\b\u0001 \u0002#\u0001\u0005\u001c\u0002 \u0005\u0016\u0002 \u0005:\u0002 \u00054\u0002#\u0005X\u0002###\u0005R\u0002###\u0005M\u0002 #\u0005H\u0002###\u0005I\u0002###\u0005%\u0002 \u0005&\u0002 \u0005\u0002\u0002 \u0005\u0003\u0002 \u0005^\u0001Roo\u0005@\u0001t: 1\u0005\"\u000160G\u0005(\u0001 / \u0005'\u00011\u0005-\u000196
|
|
|
|
</head>
|
|
|
|
<body class="term">
|
|
|
|
<div id="outer">
|
|
|
|
|
|
|
|
<div id="content">
|
|
|
|
<img src="/img/loader.gif" alt="Loading…" id="loader">
|
|
|
|
<script>
|
|
|
|
// Workaround for badly loaded page
|
|
|
|
setTimeout(function() {
|
|
|
|
if (typeof termInit == 'undefined' || typeof $ == 'undefined') {
|
|
|
|
console.error("Page load failed, refreshing…");
|
|
|
|
location.reload(true);
|
|
|
|
}
|
|
|
|
}, 3000);
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<div class="Modal light hidden" id="fu_modal">
|
|
|
|
<div id="fu_form" class="Dialog">
|
|
|
|
<div class="fu-content">
|
|
|
|
<h2>Text Upload</h2>
|
|
|
|
<p>
|
|
|
|
<label for="fu_file">Load a text file:</label>
|
|
|
|
<input type="file" id="fu_file" accept="text/*" /><br>
|
|
|
|
<textarea id="fu_text"></textarea>
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
<label for="fu_crlf">Line Endings:</label>
|
|
|
|
<select id="fu_crlf">
|
|
|
|
<option value="CR">CR (Enter key)</option>
|
|
|
|
<option value="CRLF">CR LF (Windows)</option>
|
|
|
|
<option value="LF">LF (Linux)</option>
|
|
|
|
</select>
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
<label for="fu_delay">Line Delay (ms):</label>
|
|
|
|
<input id="fu_delay" type="number" value=1 min=0>
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
<div class="fu-buttons">
|
|
|
|
<button onclick="TermUpl.start()" class="icn-ok x-fu-go">Start</button>
|
|
|
|
<button onclick="TermUpl.close()" class="icn-cancel x-fu-cancel">Cancel</button>
|
|
|
|
<i class="fu-prog-box">Upload: <span id="fu_prog"></span></i>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<h1><!-- Screen title gets loaded here by JS --></h1>
|
|
|
|
|
|
|
|
<div id="term-wrap">
|
|
|
|
<div id="screen">
|
|
|
|
<input id="softkb-input" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
|
|
|
|
<div id="touch-select-menu">
|
|
|
|
<button id="touch-select-copy-btn">Copy</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div id="action-buttons">
|
|
|
|
<button data-n="1"></button><!--
|
|
|
|
--><button data-n="2"></button><!--
|
|
|
|
--><button data-n="3"></button><!--
|
|
|
|
--><button data-n="4"></button><!--
|
|
|
|
--><button data-n="5"></button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<nav id="term-nav">
|
|
|
|
<a href="#" onclick="toggleFitScreen();return false" class="mq-tablet-max"><i id="resize-button-icon" class="icn-resize-small"></i></a><!--
|
|
|
|
--><a href="#" onclick="kbOpen(true);return false" class="mq-tablet-max"><i class="icn-keyboard"></i><span>Keyboard</span></a><!--
|
|
|
|
--><a href="#" onclick="TermUpl.open();return false"><i class="icn-download"></i><span>Upload</span></a><!--
|
|
|
|
--><a href="cfg_term.html" class="x-term-conf-btn"><i class="icn-configure"></i><span>Config</span></a><!--
|
|
|
|
--><a href="cfg_wifi.html" class="x-term-conf-btn"><i class="icn-wifi"></i><span>WiFi</span></a><!--
|
|
|
|
--><a href="help.html" class="x-term-conf-btn"><i class="icn-help"></i><span>Help</span></a><!--
|
|
|
|
--><a href="about.html" class="x-term-conf-btn"><i class="icn-about"></i><span>About</span></a>
|
|
|
|
</nav>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
try {
|
|
|
|
window.noAutoShow = true;
|
|
|
|
termInit('TESPTerm Web UI Demo\u0001OK\u0001Cancel\u0001\u0001\u0001Help', +'0');
|
|
|
|
} catch(e) {
|
|
|
|
console.error(e);
|
|
|
|
console.error("Fail, reloading in 3s…");
|
|
|
|
setTimeout(function() {
|
|
|
|
location.reload(true);
|
|
|
|
}, 3000);
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<div class="botpad"></div>
|
|
|
|
|
|
|
|
<div class="NotifyMsg hidden" id="notif"></div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</body>
|
|
|
|
</html>
|