initial push
This commit is contained in:
14
.gitignore
vendored
Normal file
14
.gitignore
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
# ---> VisualStudioCode
|
||||
.vscode/*
|
||||
!.vscode/settings.json
|
||||
!.vscode/tasks.json
|
||||
!.vscode/launch.json
|
||||
!.vscode/extensions.json
|
||||
!.vscode/*.code-snippets
|
||||
|
||||
# Local History for Visual Studio Code
|
||||
.history/
|
||||
|
||||
# Built Visual Studio Code Extensions
|
||||
*.vsix
|
||||
|
||||
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# reap-simulator
|
||||
|
||||
As seen on https://spares.robe.cz/reap/
|
||||
BIN
favicon.png
Normal file
BIN
favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 314 B |
1
files/bootstrap.min.css
vendored
Normal file
1
files/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
6
files/bootstrap.min.js
vendored
Normal file
6
files/bootstrap.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
75
files/identify.svg
Normal file
75
files/identify.svg
Normal file
@@ -0,0 +1,75 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="129mm"
|
||||
height="78mm"
|
||||
viewBox="0 0 129 78"
|
||||
version="1.1"
|
||||
id="svg918"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||
sodipodi:docname="identify.svg">
|
||||
<defs
|
||||
id="defs912" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.979899"
|
||||
inkscape:cx="310.94801"
|
||||
inkscape:cy="184.51041"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1149"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata915">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Vrstva 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-219)">
|
||||
<path
|
||||
style="fill:#ffffff;stroke:#ffffff;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 62.115518,219.30336 c -19.559635,0.16053 -34.91929,9.98784 -45.389037,19.77501 -10.46975,9.78717 -16.04958747,19.53421 -16.04958747,19.53421 0,0 32.12589547,32.12828 63.12224447,32.12828 6.636515,0 12.8988,-1.02298 18.722888,-2.71767 l -4.867921,-5.57847 c -4.101769,0.87081 -9.485077,1.37666 -14.010513,1.37666 -27.144204,0 -54.2189124,-26.04337 -54.2189124,-26.04337 0,0 18.7207594,-32.63352 53.4813414,-32.3944 37.310809,0.25666 58.728339,29.94339 58.728339,29.94339 0,0 -10.32915,12.8855 -27.462918,21.32634 l 4.159438,4.76664 c 19.03679,-10.41404 30.47979,-25.83098 30.47979,-25.83098 0,0 -23.16179,-35.96902 -65.76756,-36.28564 -0.310105,-0.002 -0.619564,-0.003 -0.927592,0 z"
|
||||
id="path1463"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cscsccscsccccsc" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
d="m 49.23261,237.74385 a 23.056549,23.056549 0 0 0 -2.213231,32.53158 23.056549,23.056549 0 0 0 28.386884,5.06381 c 0.19947,0.66027 0.53552,1.29122 1.02001,1.84645 l 15.66712,17.95451 c 1.82122,2.08711 4.96722,2.30115 7.054333,0.47993 l 1.009234,-0.88067 c 2.08712,-1.82122 2.30115,-4.96721 0.47993,-7.05433 L 84.969773,269.73062 c -0.50874,-0.58302 -1.12273,-1.01406 -1.78632,-1.30122 a 23.056549,23.056549 0 0 0 -1.41926,-28.47232 23.056549,23.056549 0 0 0 -32.531583,-2.21323 z m 4.10025,4.69889 a 16.81994,16.81994 0 0 1 23.732443,1.61459 16.81994,16.81994 0 0 1 -1.61494,23.73205 16.81994,16.81994 0 0 1 -23.731708,-1.61454 16.81994,16.81994 0 0 1 1.614205,-23.7321 z"
|
||||
id="path1482"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:transform-center-x="-0.1889881"
|
||||
inkscape:transform-center-y="15.875" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
d="m 64.743783,246.13944 a 8.8824405,8.8824405 0 0 0 -8.882145,8.88267 8.8824405,8.8824405 0 0 0 8.882145,8.88214 8.8824405,8.8824405 0 0 0 8.88266,-8.88214 8.8824405,8.8824405 0 0 0 -8.88266,-8.88267 z m -3.761012,1.96526 a 4.2522319,4.2522319 0 0 1 4.252454,4.25245 4.2522319,4.2522319 0 0 1 -4.252454,4.25246 4.2522319,4.2522319 0 0 1 -4.251937,-4.25246 4.2522319,4.2522319 0 0 1 4.251937,-4.25245 z"
|
||||
id="path1520"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.2 KiB |
2
files/jquery-3.3.1.min.js
vendored
Normal file
2
files/jquery-3.3.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
465
files/layout.css
Normal file
465
files/layout.css
Normal file
@@ -0,0 +1,465 @@
|
||||
body {
|
||||
margin-top: 75px
|
||||
}
|
||||
|
||||
a {
|
||||
outline: 0
|
||||
}
|
||||
|
||||
nav.navbar {
|
||||
margin-top: 20px
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
font-size: 1.2rem
|
||||
}
|
||||
|
||||
.navbar-brand img {
|
||||
height: 1.6rem;
|
||||
padding-right: 1rem
|
||||
}
|
||||
|
||||
.navbar-toggler {
|
||||
font-size: 1rem
|
||||
}
|
||||
|
||||
.navbar-dark .navbar-toggler {
|
||||
border: 0
|
||||
}
|
||||
|
||||
.device-label {
|
||||
color: #0070af;
|
||||
background: #22262a;
|
||||
font-weight: bold
|
||||
}
|
||||
|
||||
.container-fluid.in {
|
||||
padding-top: 1.6rem;
|
||||
padding-bottom: 1rem
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 1.7rem;
|
||||
margin-bottom: 1rem
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.3rem
|
||||
}
|
||||
|
||||
h2 a.cfg {
|
||||
display: inline-block;
|
||||
float: right;
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
h2 a.cfg img {
|
||||
height: 21px
|
||||
}
|
||||
|
||||
.box-c {
|
||||
margin-bottom: 30px
|
||||
}
|
||||
|
||||
.box-c h2 {
|
||||
background-color: #0070af;
|
||||
color: #fff;
|
||||
font-size: 1.4rem;
|
||||
padding: .3rem .5rem;
|
||||
margin-bottom: 0
|
||||
}
|
||||
|
||||
.box-c.log h2 {
|
||||
background-color: #555;
|
||||
color: #fff;
|
||||
font-size: 1.2rem
|
||||
}
|
||||
|
||||
.box-c h2.err {
|
||||
background-color: #dc3545;
|
||||
transition: background-color ease 600ms
|
||||
}
|
||||
|
||||
.box-c h3,
|
||||
.modal-content h3 {
|
||||
color: #0070af;
|
||||
font-size: 1.2rem;
|
||||
padding: .3rem 0rem;
|
||||
margin-bottom: .1rem
|
||||
}
|
||||
|
||||
.box-c h3 div.fall {
|
||||
font-weight: normal;
|
||||
display: inline-block;
|
||||
padding-left: 1rem;
|
||||
font-size: 1rem
|
||||
}
|
||||
|
||||
.box {
|
||||
padding: .6rem;
|
||||
margin-top: 0;
|
||||
background: #ddd
|
||||
}
|
||||
|
||||
.box p {
|
||||
margin-bottom: 0;
|
||||
text-align: right
|
||||
}
|
||||
|
||||
.group {
|
||||
list-style-type: none;
|
||||
list-style-position: inside;
|
||||
padding: 0;
|
||||
margin-bottom: 0;
|
||||
display: inline-block
|
||||
}
|
||||
|
||||
.group li {
|
||||
font-weight: normal;
|
||||
color: #212529
|
||||
}
|
||||
|
||||
.group.vals {
|
||||
float: right
|
||||
}
|
||||
|
||||
.group.vals div {
|
||||
display: inline-block
|
||||
}
|
||||
|
||||
.group.vals li {
|
||||
padding: .0rem .0rem;
|
||||
font-weight: bold;
|
||||
color: #0070af
|
||||
}
|
||||
|
||||
.group.vals li.err {
|
||||
color: red
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
border-radius: 0
|
||||
}
|
||||
|
||||
.modal-header {
|
||||
background-color: #0070af;
|
||||
color: #fff;
|
||||
border-radius: 0;
|
||||
padding: .6rem 1rem
|
||||
}
|
||||
|
||||
.modal-header img {
|
||||
height: 25px;
|
||||
margin-top: 3px;
|
||||
margin-right: 10px
|
||||
}
|
||||
|
||||
.modal-header img.loader {
|
||||
-webkit-animation: rotation 1400ms infinite linear;
|
||||
animation: rotation 1400ms infinite linear
|
||||
}
|
||||
|
||||
@-webkit-keyframes rotation {
|
||||
from {
|
||||
-webkit-transform: rotate(0)
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: rotate(359deg)
|
||||
}
|
||||
}
|
||||
|
||||
.modal-header.err,
|
||||
.modal-header.suc {
|
||||
background-color: #dc3545;
|
||||
transition: background-color ease 600ms
|
||||
}
|
||||
|
||||
.modal-header.suc {
|
||||
background-color: #28a745
|
||||
}
|
||||
|
||||
.form-group>label,
|
||||
.form-group>legend,
|
||||
.form-row div:first-child label {
|
||||
font-weight: bold
|
||||
}
|
||||
|
||||
.mt06 {
|
||||
margin-top: .6rem
|
||||
}
|
||||
|
||||
.mr06 {
|
||||
margin-right: .6rem
|
||||
}
|
||||
|
||||
.pl03 {
|
||||
padding-left: .4rem
|
||||
}
|
||||
|
||||
.btn-pm {
|
||||
padding: 0rem .3rem
|
||||
}
|
||||
|
||||
.btn-pm i {
|
||||
padding: 3px;
|
||||
display: block;
|
||||
border: solid #fff;
|
||||
border-width: 0 3px 3px 0;
|
||||
transform: rotate(45deg);
|
||||
transition: transform .3s ease;
|
||||
margin: 4px 0 5px 0
|
||||
}
|
||||
|
||||
.btn-pm i.blue {
|
||||
border: solid #0070af;
|
||||
border-width: 0 4px 4px 0;
|
||||
margin: 7px 0 6px 0
|
||||
}
|
||||
|
||||
.btn-pm img {
|
||||
width: 12px;
|
||||
transform: rotate(-90deg);
|
||||
transition: transform .3s ease
|
||||
}
|
||||
|
||||
.btn-pm.op i {
|
||||
transform: rotate(-135deg)
|
||||
}
|
||||
|
||||
h2 .btn-pm {
|
||||
padding: 0rem .45rem;
|
||||
background-color: #fff;
|
||||
border-color: #eee
|
||||
}
|
||||
|
||||
h2 .btn-pm:hover,
|
||||
h2 .btn-pm:focus {
|
||||
background-color: #ccc
|
||||
}
|
||||
|
||||
.nlb {
|
||||
font-size: 1.8rem;
|
||||
line-height: .7;
|
||||
padding: .26rem .35rem
|
||||
}
|
||||
|
||||
.device-label.serr {
|
||||
background-color: #dc3545;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.device-label.stou {
|
||||
background-color: #fc0;
|
||||
color: #333
|
||||
}
|
||||
|
||||
tr.err {
|
||||
background-color: #dc9ca3
|
||||
}
|
||||
|
||||
tr.na {
|
||||
background-color: #fc0
|
||||
}
|
||||
|
||||
@keyframes ert {
|
||||
0 {
|
||||
background-color: #22262a;
|
||||
color: #0070af
|
||||
}
|
||||
|
||||
30% {
|
||||
background-color: #dc3545;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
100% {
|
||||
background-color: #22262a;
|
||||
color: #0070af
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes ctout {
|
||||
0 {
|
||||
background-color: #22262a;
|
||||
color: #0070af
|
||||
}
|
||||
|
||||
30% {
|
||||
background-color: #f90;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
100% {
|
||||
background-color: #22262a;
|
||||
color: #0070af
|
||||
}
|
||||
}
|
||||
|
||||
.dn {
|
||||
display: none
|
||||
}
|
||||
|
||||
.btn-group-sm>.btn,
|
||||
.btn-sm {
|
||||
padding: 0rem .5rem
|
||||
}
|
||||
|
||||
.derr {
|
||||
font-weight: bold
|
||||
}
|
||||
|
||||
.dmax {
|
||||
background-color: #e0be58
|
||||
}
|
||||
|
||||
.rdmi {
|
||||
height: 27px;
|
||||
padding: 6px 2px
|
||||
}
|
||||
|
||||
.rdmi.a {
|
||||
background-color: #dc3545
|
||||
}
|
||||
|
||||
th i {
|
||||
border: solid black;
|
||||
border-width: 0 3px 3px 0;
|
||||
display: inline-block;
|
||||
padding: 4px;
|
||||
transform: rotate(-135deg);
|
||||
-webkit-transform: rotate(-135deg);
|
||||
margin: 0 4px;
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
.ab {
|
||||
transform: rotate(45deg);
|
||||
-webkit-transform: rotate(45deg)
|
||||
}
|
||||
|
||||
.as {
|
||||
border-color: #dc3545;
|
||||
border-width: 0 4px 4px 0
|
||||
}
|
||||
|
||||
.pt02 {
|
||||
padding-top: .2rem
|
||||
}
|
||||
|
||||
.pl04 {
|
||||
padding-left: .4rem
|
||||
}
|
||||
|
||||
.loader {
|
||||
border: 5px solid #0069d9;
|
||||
border-radius: 50%;
|
||||
border-top: 5px solid #fff;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
-webkit-animation: spin 1s linear infinite;
|
||||
animation: spin 1s linear infinite;
|
||||
float: left;
|
||||
margin: .1rem .5rem 0 0
|
||||
}
|
||||
|
||||
@-webkit-keyframes spin {
|
||||
0 {
|
||||
-webkit-transform: rotate(0)
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg)
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0 {
|
||||
transform: rotate(0)
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate(360deg)
|
||||
}
|
||||
}
|
||||
|
||||
.prst {
|
||||
padding: 14px
|
||||
}
|
||||
|
||||
.prst span {
|
||||
display: block;
|
||||
padding-bottom: 12px
|
||||
}
|
||||
|
||||
.ptok,
|
||||
.ptf {
|
||||
font-size: 50px;
|
||||
font-weight: bold;
|
||||
color: #28a745
|
||||
}
|
||||
|
||||
.ptf {
|
||||
color: red
|
||||
}
|
||||
|
||||
.fl {
|
||||
float: left
|
||||
}
|
||||
|
||||
.fr {
|
||||
float: right
|
||||
}
|
||||
|
||||
.rains {
|
||||
clear: both;
|
||||
background: #000;
|
||||
height: 30px;
|
||||
margin-bottom: .5rem;
|
||||
padding-right: 4px
|
||||
}
|
||||
|
||||
.rains.sl {
|
||||
height: 28px;
|
||||
margin-bottom: 0
|
||||
}
|
||||
|
||||
.rains>div {
|
||||
background-color: #f70;
|
||||
height: 100%;
|
||||
width: 0;
|
||||
padding-left: 4px
|
||||
}
|
||||
|
||||
.myd {
|
||||
background-color: #007bff;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.myd.na {
|
||||
color: #000
|
||||
}
|
||||
|
||||
.dchb {
|
||||
display: inline-block;
|
||||
padding-right: 1rem
|
||||
}
|
||||
|
||||
.dchb>label {
|
||||
padding-left: .3rem
|
||||
}
|
||||
|
||||
.esm {
|
||||
margin-top: .4rem;
|
||||
margin-bottom: 1.4rem
|
||||
}
|
||||
|
||||
#d-t th,
|
||||
#d-t td {
|
||||
text-align: center
|
||||
}
|
||||
|
||||
#d-t th:first-child,
|
||||
#d-t td:first-child {
|
||||
text-align: left
|
||||
}
|
||||
5
files/popper.min.js
vendored
Normal file
5
files/popper.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
56
files/robe_logo_white.svg
Normal file
56
files/robe_logo_white.svg
Normal file
@@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
xml:space="preserve"
|
||||
width="415"
|
||||
height="110"
|
||||
viewBox="0 0 415 110"><metadata
|
||||
id="metadata8"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs6"><clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath16"><path
|
||||
d="M 0,173 446,173 446,0 0,0 0,173 Z"
|
||||
id="path18" /></clipPath></defs><g
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(1.25,0,0,-1.25,140.86154,42.229256)"
|
||||
id="g20"><path
|
||||
id="path22"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
d="m 0,0 c -2.442,-2.964 -4.657,-7.477 -3.98,-13.168 0.577,-4.853 2.86,-8.605 6.022,-11.33 3.101,-2.672 8.165,-4.479 13.167,-3.981 4.927,0.491 8.682,2.834 11.331,5.92 2.711,3.16 4.72,7.441 4.184,12.963 -0.256,2.649 -1.014,4.719 -2.04,6.635 C 25.776,2.463 20.151,6.657 11.535,5.92 6.645,5.501 2.317,2.81 0,0 m 10.31,26.539 5.92,0 C 27.173,25.383 34.908,21.071 40.932,14.698 43.801,11.664 46.191,7.961 48.077,3.572 49.92,-0.721 51.333,-6.041 51.139,-11.637 50.74,-23.19 46.475,-31.385 40.523,-37.563 34.485,-43.832 26.795,-48.26 15.822,-49.302 l -5.206,0 c -8.208,0.668 -14.821,3.804 -19.802,7.553 -8.233,6.198 -15.164,16.198 -15.311,30.214 -0.117,11.165 4.527,20.015 10.309,26.131 5.966,6.311 13.483,10.798 24.498,11.943" /></g><g
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(1.25,0,0,-1.25,333.01479,34.702381)"
|
||||
id="g24"><path
|
||||
id="path26"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
d="m 0,0 c -6.181,-0.481 -10.744,-4.191 -13.269,-8.472 -0.176,-0.297 -0.776,-0.812 -0.409,-1.02 l 31.031,0 C 14.351,-3.843 8.871,0.69 0,0 m -1.327,20.517 5.92,0 c 12.026,-1.163 20.497,-6.576 26.54,-14.086 5.608,-6.971 10.345,-18.183 7.553,-31.336 -17.459,-0.064 -35.175,0.129 -52.466,-0.102 2.188,-4.775 7.154,-8.15 13.577,-9.289 6.866,-1.219 13.952,0.944 18.271,3.674 0.75,-5.438 1.35,-11.298 2.041,-17.149 0.099,-0.833 0.453,-1.896 0.306,-2.347 -0.227,-0.697 -2.536,-1.512 -3.471,-1.939 -3.696,-1.689 -8.024,-2.858 -12.861,-3.267 l -5.103,0 c -10.962,0.896 -18.816,5.94 -24.6,11.841 -6.032,6.153 -10.241,14.574 -10.513,25.926 -0.134,5.503 1.211,10.748 3.062,15.107 1.857,4.374 4.37,8.038 7.247,11.024 6.028,6.259 13.451,10.827 24.497,11.943" /></g><g
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(1.25,0,0,-1.25,234.51441,66.472506)"
|
||||
id="g28"><path
|
||||
id="path30"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
d="m 0,0 c -0.443,-3.299 -1.049,-6.436 -1.531,-9.697 3.939,0.4 10.435,-0.798 13.27,0.715 1.213,0.648 2.112,2.137 2.552,3.878 0.347,1.378 0.61,3.47 -0.409,4.491 -1.128,1.132 -3.972,0.92 -6.329,0.92 l -7.348,0 C 0.061,0.28 0.088,0.083 0,0 M 4.287,26.437 C 3.785,23.299 3.306,20.136 2.756,17.046 c 4.738,0.438 12.007,-1.246 14.29,1.837 1.081,1.461 1.958,4.701 0.511,6.432 -2.21,2.64 -8.653,0.911 -13.168,1.428 -0.118,-0.017 -0.11,-0.161 -0.102,-0.306 m -20.414,16.434 41.339,0 c 2.378,0 4.524,0.05 6.533,-0.307 5.608,-0.995 10.132,-3.76 11.943,-8.676 1.249,-3.392 1.095,-8.232 -0.205,-11.942 C 41.142,15.26 36.124,10.761 28.887,9.084 35.939,7.956 40.114,4.103 40.114,-3.879 c 0,-3.486 -0.921,-6.682 -1.94,-9.39 -3.147,-8.382 -10.248,-12.34 -20.617,-13.372 -3.568,-0.356 -7.3,-0.205 -11.126,-0.205 l -33.991,0 c 3.878,23.172 7.426,46.675 11.433,69.717" /></g><g
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(1.25,0,0,-1.25,53.844284,45.420256)"
|
||||
id="g32"><path
|
||||
id="path34"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
d="m 0,0 9.493,0 c 3.403,0 6.745,-0.224 8.574,0.919 1.308,0.818 2.85,3.972 2.143,6.328 C 19.37,10.054 15.621,9.8 11.841,9.8 L 1.633,9.8 C 0.939,6.682 0.48,3.331 0,0 m -30.111,-43.891 0,0.715 c 3.886,22.925 7.388,46.233 11.33,69.103 l 30.52,0 c 5.238,0 10.463,0.222 15.209,-0.102 9.444,-0.644 16.553,-4.049 18.883,-11.636 1.254,-4.085 0.55,-8.948 -1.021,-12.862 -2.888,-7.196 -8.405,-12.264 -15.617,-15.005 2.091,-10.021 4.028,-20.197 6.022,-30.315 l -26.743,0 c -0.961,9.143 -1.918,18.292 -2.959,27.355 l -8.269,0 c -1.568,-9.013 -2.906,-18.257 -4.491,-27.253 l -22.864,0 z" /></g><g
|
||||
transform="matrix(1.25,0,0,-1.25,374.35579,68.259006)"
|
||||
id="g36"><path
|
||||
id="path38"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
d="m 0,0 c 6.684,0.677 11.168,-2.981 13.371,-7.247 1.231,-2.382 1.689,-4.083 1.429,-7.451 -0.518,-6.721 -6.568,-12.08 -13.473,-12.045 -4.252,0.022 -6.744,1.426 -9.085,3.675 -2.532,2.431 -4.716,5.734 -4.287,11.024 0.14,1.731 0.794,3.612 1.327,4.695 1.195,2.435 3.34,4.708 5.92,6.022 C -3.469,-0.649 -1.864,-0.188 0,0" /></g><g
|
||||
transform="matrix(1.3327053,0,0,1.3327053,-116.13492,-4.2831463)"
|
||||
id="text4146-0"
|
||||
style="font-style:normal;font-weight:normal;font-size:67.82930756px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"><path
|
||||
id="path4151-3"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.67531967px;font-family:Arial;-inkscape-font-specification:Arial;fill:#ffffff"
|
||||
d="m 387.29939,9.1524032 q 2.75308,0 5.37575,1.4200108 2.62267,1.40552 4.08615,4.042682 1.46348,2.622673 1.46348,5.477183 0,2.825531 -1.44899,5.433714 -1.4345,2.608182 -4.04268,4.057172 -2.59369,1.434501 -5.43371,1.434501 -2.84002,0 -5.44821,-1.434501 -2.59369,-1.44899 -4.04268,-4.057172 -1.44899,-2.608183 -1.44899,-5.433714 0,-2.85451 1.46348,-5.477183 1.47797,-2.637162 4.10064,-4.042682 2.62267,-1.4200108 5.37576,-1.4200108 z m 0,1.8112378 q -2.3039,0 -4.49187,1.188172 -2.17349,1.173682 -3.40513,3.376147 -1.23164,2.187975 -1.23164,4.564319 0,2.361854 1.20266,4.53534 1.21715,2.158995 3.39064,3.376147 2.17348,1.202662 4.53534,1.202662 2.36185,0 4.53534,-1.202662 2.17348,-1.217152 3.37614,-3.376147 1.20266,-2.173486 1.20266,-4.53534 0,-2.376344 -1.23164,-4.564319 -1.21715,-2.202465 -3.40512,-3.376147 -2.18798,-1.188172 -4.47738,-1.188172 z m -4.79616,15.170928 0,-11.765801 4.04268,0 q 2.07206,0 2.99941,0.333268 0.92735,0.318778 1.47797,1.130212 0.55062,0.811435 0.55062,1.724298 0,1.289602 -0.92736,2.245935 -0.91286,0.956334 -2.4343,1.072253 0.62307,0.260818 0.9998,0.623066 0.71001,0.695515 1.73879,2.332874 l 1.4345,2.303895 -2.31838,0 -1.04328,-1.854708 q -1.23164,-2.187975 -1.98511,-2.738591 -0.52164,-0.405718 -1.52144,-0.405718 l -1.11572,0 0,4.999017 -1.89818,0 z m 1.89818,-6.621886 2.30389,0 q 1.65185,0 2.24593,-0.492656 0.60858,-0.492657 0.60858,-1.304092 0,-0.521636 -0.2898,-0.927353 -0.2898,-0.420207 -0.81143,-0.623066 -0.50715,-0.202859 -1.89818,-0.202859 l -2.15899,0 0,3.550026 z" /></g></svg>
|
||||
|
After Width: | Height: | Size: 7.0 KiB |
51
files/settings.svg
Normal file
51
files/settings.svg
Normal file
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Capa_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 231.2 231.2"
|
||||
style="enable-background:new 0 0 231.2 231.2;"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="settings.svg"><metadata
|
||||
id="metadata11"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs9" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1147"
|
||||
id="namedview7"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.0207613"
|
||||
inkscape:cx="-46.044067"
|
||||
inkscape:cy="115.6"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Capa_1" /><style
|
||||
type="text/css"
|
||||
id="style3">
|
||||
.st0{fill:#333333;}
|
||||
</style><path
|
||||
class="st0"
|
||||
d="M230.5,102.8c-0.4-3.2-4.2-5.7-7.4-5.7c-10.6,0-20-6.2-23.9-15.8c-4-9.9-1.4-21.3,6.5-28.6 c2.5-2.3,2.8-6.1,0.7-8.7c-5.4-6.9-11.6-13.1-18.3-18.5c-2.6-2.1-6.5-1.8-8.8,0.7c-6.9,7.6-19.3,10.5-28.8,6.5 c-10-4.2-16.2-14.3-15.6-25.1c0.2-3.4-2.3-6.4-5.7-6.8c-8.6-1-17.3-1-26-0.1c-3.3,0.4-5.8,3.3-5.7,6.6c0.4,10.7-6,20.6-15.8,24.7 c-9.5,3.9-21.7,1-28.6-6.5c-2.3-2.5-6.1-2.8-8.7-0.7c-6.9,5.4-13.2,11.7-18.7,18.5c-2.1,2.7-1.8,6.5,0.7,8.8 c8,7.3,10.6,18.9,6.5,28.8c-4,9.5-13.9,15.6-25.2,15.6c-3.7-0.1-6.3,2.3-6.7,5.7c-1,8.7-1,17.5,0,26.3c0.4,3.3,4.3,5.7,7.6,5.7 c10.1-0.3,19.7,6,23.8,15.8c4,9.9,1.4,21.3-6.5,28.6c-2.5,2.3-2.8,6.1-0.7,8.7c5.4,6.8,11.5,13.1,18.3,18.5c2.7,2.1,6.5,1.8,8.8-0.7 c6.9-7.6,19.3-10.5,28.8-6.5c10,4.2,16.3,14.3,15.6,25.1c-0.2,3.4,2.3,6.4,5.7,6.8c4.4,0.5,8.9,0.8,13.3,0.8c4.2,0,8.5-0.2,12.7-0.7 c3.4-0.4,5.8-3.3,5.7-6.6c-0.4-10.7,6-20.6,15.8-24.7c9.5-3.9,21.8-1,28.6,6.5c2.3,2.5,6.1,2.8,8.7,0.7c6.9-5.4,13.2-11.6,18.7-18.5 c2.1-2.6,1.8-6.5-0.7-8.8c-8-7.3-10.7-18.9-6.5-28.8c3.9-9.4,13.4-15.7,23.6-15.7l1.4,0c3.3,0.3,6.4-2.3,6.8-5.7 C231.5,120.4,231.5,111.5,230.5,102.8z M115.6,182.3c-36.8,0-66.7-29.8-66.7-66.7S78.8,49,115.6,49s66.7,29.8,66.7,66.7 c0,12.5-3.4,24.2-9.4,34.2l-29.2-29.2c2.1-5,3.2-10.4,3.2-16c0-10.9-4.3-21.2-12-28.9c-7.7-7.7-18-12-28.9-12 c-3.6,0-7.3,0.5-10.8,1.4c-1.5,0.4-2.8,1.7-3.2,3.2c-0.4,1.6,0.1,3.2,1.3,4.4c0,0,14.4,14.5,19.2,19.3c0.5,0.5,0.5,1.7,0.4,2.1 l0,0.3c-0.5,5.3-1.4,11.7-2.2,14.1c-0.1,0.1-0.2,0.2-0.3,0.3c-0.1,0.1-0.2,0.2-0.3,0.3c-2.5,0.8-8.9,1.7-14.3,2.2l0,0l-0.2,0.1 c0,0-0.1,0-0.2,0c-0.6,0-1.4-0.2-2.2-0.9c-5-5-18.9-18.8-18.9-18.8c-1.2-1.2-2.5-1.5-3.4-1.5c-2,0-3.8,1.4-4.3,3.5 c-3.8,14.1,0.2,29.3,10.5,39.6c7.7,7.7,18,12,28.9,12c5.6,0,11-1.1,16-3.2l29.5,29.5C141.1,178.4,128.8,182.3,115.6,182.3z"
|
||||
id="path5"
|
||||
style="fill:#ffffff" /></svg>
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
423
iforte/base.js
Normal file
423
iforte/base.js
Normal file
@@ -0,0 +1,423 @@
|
||||
function get_cookie(n,d,ti=false) {
|
||||
var r = d;
|
||||
var c = document.cookie.split(';');
|
||||
c.forEach(function(v,i) {
|
||||
v = v.split('=');
|
||||
if (v[0].trim() == n) {
|
||||
if (ti) {
|
||||
const par = parseInt(v[1].trim());
|
||||
if (!isNaN(par)) {
|
||||
r = par;
|
||||
}
|
||||
} else r = v[1].trim();
|
||||
}
|
||||
});
|
||||
return r;
|
||||
}
|
||||
|
||||
function mhdr_status(c) {
|
||||
|
||||
if (c.length == 0) $('#cfg-modal .modal-header').removeClass('suc err');
|
||||
else $('#cfg-modal .modal-header').addClass(c);
|
||||
}
|
||||
|
||||
function loader(a) {
|
||||
|
||||
if (a) $('#cfg-modal .modal-header img').addClass('loader');
|
||||
else $('#cfg-modal .modal-header img').removeClass('loader');
|
||||
}
|
||||
|
||||
function do_ajax(p_url,p_data,f,i = -1,a = true) {
|
||||
|
||||
$.ajax({
|
||||
url: p_url,
|
||||
type: 'POST',
|
||||
data: p_data,
|
||||
dataType: 'json',
|
||||
async: a,
|
||||
success: function (json) {
|
||||
f(json,i);
|
||||
},
|
||||
error: function () {
|
||||
// console.log('do_ajax error');
|
||||
f();
|
||||
},
|
||||
timeout:2000
|
||||
});
|
||||
}
|
||||
|
||||
function copy_form_values(dir) {
|
||||
|
||||
$('#m-b input:text, #m-b input[type=range]').each(function() {
|
||||
var id = $(this).attr('id');
|
||||
if (dir == 0) $('#' + id + '_v').html($('#' + id).val());
|
||||
else $('#' + id).val($('#' + id + '_v').html());
|
||||
});
|
||||
$('#m-b select').each(function() {
|
||||
var id = $(this).attr('id');
|
||||
text = $('#' + id + '_v').html();
|
||||
if (dir == 1) {
|
||||
$(this).find('option').filter(function () { return $(this).html() == text; }).attr('selected', 'selected');
|
||||
} else {
|
||||
$('#' + id + '_v').html($(this).find('option:selected').html());
|
||||
}
|
||||
});
|
||||
$('#m-b input:radio').each(function() {
|
||||
var id = $(this).attr('name');
|
||||
text = $('#' + id + '_v').html();
|
||||
label = $(this).parent().find('label').html();
|
||||
if (dir == 1) {
|
||||
if (label == text) $(this).attr('checked','checked');
|
||||
} else {
|
||||
if ($(this).is(':checked')) $('#' + id + '_v').html(label);
|
||||
}
|
||||
|
||||
});
|
||||
if (dir == 1) {
|
||||
$('#m-b div.form-group').each(function() {
|
||||
var len = $(this).find('div.invalid-feedback').length;
|
||||
if (len == 0) {
|
||||
$(this).append('<div class="invalid-feedback">Wrong value!</div>');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function fill_values(d,ids) {
|
||||
|
||||
for (i = 0; i < ids.length; i++) {
|
||||
$('#' + ids[i] + '_v').html(d[ids[i]]);
|
||||
}
|
||||
}
|
||||
|
||||
function show_errors(s,ids) {
|
||||
|
||||
if (s) mhdr_status('err');
|
||||
for (i = 0; i < ids.length; i++) {
|
||||
if (s & (1 << i)) $('#' + ids[i]).addClass('is-invalid').removeClass('is-valid');
|
||||
else $('#' + ids[i]).removeClass('is-invalid').addClass('is-valid');
|
||||
}
|
||||
}
|
||||
|
||||
function close_modal() {
|
||||
|
||||
setTimeout(function() {
|
||||
$('#m-b').empty();
|
||||
$('#cfg-modal').modal('hide');
|
||||
},500);
|
||||
}
|
||||
|
||||
function pv(p) {
|
||||
|
||||
var s = '';
|
||||
|
||||
for (var i in p) {
|
||||
var o = p[i];
|
||||
if (i == 0) s += o + '=';
|
||||
else s += '&' + o + '=';
|
||||
if ($('#' + o).val() != undefined) s += $('#' + o).val();
|
||||
else if ($('input[name=' + o + ']:checked').val() != undefined) s += $('input[name=' + o + ']:checked').val();
|
||||
}
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
function c_txt(n,t,e,c = '',it = 'text') {
|
||||
|
||||
var html = '<div class="form-group' + c + '">';
|
||||
html += '<label for="' + n + '" class="col-form-label">' + t + '</label>';
|
||||
html += '<input type="'+ it +'" class="form-control" id="' + n + '">';
|
||||
html += e.length > 0 ? '<div class="invalid-feedback">' + e + '</div>' : '';
|
||||
html += '</div>';
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
function c_btn(t,v,c) {
|
||||
|
||||
return '<button class="btn btn-primary btn-block' + c + '" value="' + v + '">' + t + '</button>';
|
||||
}
|
||||
|
||||
function c_opt(n,t,o,pl,vp,lp,e) {
|
||||
|
||||
var html = '<div class="form-group">';
|
||||
html += '<label for="' + n + '" class="col-form-label">' + t + '</label>';
|
||||
html += '<select class="form-control" id="' + n + '">';
|
||||
var l = o.length;
|
||||
var li = l;
|
||||
if (l == 1) li = o[0];
|
||||
for (i = 0; i < li; i++) {
|
||||
if (l == 1) html += '<option value="' + (i + vp) + '">'+ pl + (i + lp) + '</option>';
|
||||
else html += '<option value="' + (i + vp) + '">'+ o[i] + '</option>';
|
||||
}
|
||||
html += '</select>';
|
||||
html += e.length > 0 ? '<div class="invalid-feedback">' + e + '</div>' : '';
|
||||
html += '</div>';
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
function c_rad(n,t,r,e,c) {
|
||||
|
||||
var html = '<div class="form-group' + c + '">';
|
||||
html += '<legend class="col-form-label">' + t + '</legend>';
|
||||
for (i = 0; i < r.length; i++) {
|
||||
html += '<div class="form-check form-check-inline">';
|
||||
html += '<input class="form-check-input" type="radio" name="' + n + '" value="' + i + '" id="' + n + (i + 1) + '">';
|
||||
html += '<label class="form-check-label" for="' + n + (i + 1) + '">' + r[i] + '</label>';
|
||||
html += '</div>';
|
||||
}
|
||||
html += e.length > 0 ? '<div class="invalid-feedback">' + e + '</div>' : '';
|
||||
html += '</div>';
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
function box(t,id,p,su = '',vid = '',bc = '') {
|
||||
|
||||
var s = '';
|
||||
|
||||
s += '<div class="col-md-6 col-xl-4 box-c' + bc + '">';
|
||||
if (id >= 0) s += '<h2>' + t + '<a class="cfg" onclick="open_modal(' + id + ');"><img src="/settings.svg.gz"></a></h2>';
|
||||
else s += '<h2>' + t + '</h2>';
|
||||
s += '<div class="box">';
|
||||
for (var j in p) {
|
||||
if (p[j][0].length > 0) s += '<h3>' + p[j][0] + '</h3>';
|
||||
s += '<ul class="group">';
|
||||
for (var i in p[j][1]) {
|
||||
l = p[j][1][i].split(";");
|
||||
if (l.length == 4) s += l[0];
|
||||
else s += '<li>' + l[0] + '</li>';
|
||||
}
|
||||
s += '</ul>';
|
||||
s += '<ul class="group vals" id="' + vid + '">';
|
||||
for (var i in p[j][1]) {
|
||||
l = p[j][1][i].split(";");
|
||||
if (l.length == 4) {
|
||||
var t = l[3].replace(/&DG/gi,'°');
|
||||
s += t;
|
||||
} else if (l.length == 3) s += l[2];
|
||||
else if (l.length == 2) s += '<li><div id="' + l[1] + '_v">-</div></li>';
|
||||
else s += '<li>-</li>';
|
||||
}
|
||||
s += '</ul>';
|
||||
}
|
||||
s += su;
|
||||
s += '</div>';
|
||||
s += '</div>';
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
function gens() {
|
||||
|
||||
var o = '<nav class="navbar fixed-top navbar-expand-md navbar-dark bg-dark">';
|
||||
|
||||
o += '<div class="container">';
|
||||
o += '<a class="navbar-brand" href="/"><img src="/robe_logo_white.svg.gz"></a>';
|
||||
o += '<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar">';
|
||||
o += '<span class="navbar-toggler-icon"></span>';
|
||||
o += '</button>';
|
||||
o += '<div class="collapse navbar-collapse" id="navbar">';
|
||||
o += '<ul class="navbar-nav mr-auto">';
|
||||
o += '<li class="nav-item">';
|
||||
o += '<a class="nav-link" href="/">Status</a>';
|
||||
o += '</li>';
|
||||
o += '<li class="nav-item">';
|
||||
o += '<a class="nav-link" href="/personality">Personality</a>';
|
||||
o += '</li>';
|
||||
o += '<li class="nav-item">';
|
||||
o += '<a class="nav-link" href="/logs">Logs</a>';
|
||||
|
||||
o += '</li>';
|
||||
o += '<li class="nav-item snz">';
|
||||
o += '<a class="nav-link" href="/sensors">RAINS logs</a>';
|
||||
o += '</li>';
|
||||
|
||||
o += '<li class="nav-item">';
|
||||
o += '<a class="nav-link" href="/discovery">Discovery</a>';
|
||||
o += '</li>';
|
||||
o += '<li class="nav-item">';
|
||||
o += '<a class="nav-link" href="#" id="scfg">Settings</a>';
|
||||
o += '</li>';
|
||||
o += '<li class="nav-item">';
|
||||
o += '<a class="nav-link" href="#" id="idnt"><img class="rdmi" src="/identify.svg.gz"></a>';
|
||||
o += '</li>';
|
||||
o += '</ul>';
|
||||
|
||||
o += '</div>';
|
||||
o += '</div>';
|
||||
o += '</nav>';
|
||||
|
||||
o += '<div class="fixed-top text-center device-label" id="pth"></div>';
|
||||
|
||||
o += '<div class="container-fluid in">';
|
||||
o += '<h1></h1>';
|
||||
o += '<div class="row" id="boxes"></div>';
|
||||
o += '</div>';
|
||||
|
||||
o += '<div id="cfg-modal" class="modal fade" tabindex="-1" role="dialog">';
|
||||
o += '<div class="modal-dialog" role="document">';
|
||||
o += '<div class="modal-content">';
|
||||
o += '<div class="modal-header">';
|
||||
o += '<img src="/settings.svg.gz">';
|
||||
o += '<h5 class="modal-title" id="m-t"></h5>';
|
||||
o += '<button type="button" class="close" data-dismiss="modal" aria-label="Close">';
|
||||
o += '<span aria-hidden="true">×</span>';
|
||||
o += '</button>';
|
||||
o += '</div>';
|
||||
o += '<div class="modal-body" id="m-b">';
|
||||
o += '</div>';
|
||||
o += '<div class="modal-footer" id="m-f">';
|
||||
o += '<button type="button" class="btn btn-primary sb">Save</button>';
|
||||
o += '</div>';
|
||||
o += '</div>';
|
||||
o += '</div>';
|
||||
o += '</div>';
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
|
||||
var pre = '';
|
||||
var dmxsnf = '';
|
||||
|
||||
function ptit(t) {
|
||||
// console.log('setting title to ' + t);
|
||||
|
||||
if (t == $('#pth').data('title')) return;
|
||||
|
||||
// console.log('set');
|
||||
|
||||
if (t.length) $('#pth').data('title',t);
|
||||
$('#pth').html($('#pth').data('title') + dmxsnf);
|
||||
$('#pt_v').html(pre + $('#pth').html());
|
||||
|
||||
// console.log($('#pth').html());
|
||||
}
|
||||
|
||||
function c_dt(n,t,e,c,it) {
|
||||
|
||||
var html = '<div class="form-group' + c + '">';
|
||||
html += '<label for="' + n + '" class="col-form-label">' + t + '</label>';
|
||||
html += '</div><div class="form-group' + c + '">';
|
||||
html += '<input type="' + it + '" class="form-control" id="' + n + '" step="1">';
|
||||
html += e.length > 0 ? '<div class="invalid-feedback">' + e + '</div>' : '';
|
||||
html += '</div>';
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
function c_fsens(i,t,u) {
|
||||
|
||||
var html = '';
|
||||
html += '<div class="form-row">';
|
||||
html += '<div class="form-group col-auto"><label class="col-form-label" id="tl' + i + '" for="fts' + i + '">' + t + '</label></div>';
|
||||
html += '<div class="form-group col-auto"><select class="form-control" id="fts' + i + '">';
|
||||
html += '<option value="0">-</option><option value="1">=</option><option value="2"><</option><option value="3">></option>';
|
||||
html += '<option value="4"><=</option><option value="5">>=</option>';
|
||||
html += '</select></div>';
|
||||
html += '<div class="form-group col-auto"><input type="text" class="form-control" size="5" id="ftv' + i + '"></div>';
|
||||
html += '<div class="form-group col-auto"><label class="col-form-label" for="ftv' + i + '">' + u + '</label></div>';
|
||||
html += '</div>';
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
$('body').prepend(gens());
|
||||
var am = 0;
|
||||
var mip = 0;
|
||||
mip = 1;
|
||||
var href = $(location).attr('pathname');
|
||||
if (href.indexOf('personality') != -1) am = 1;
|
||||
if (href.indexOf('logs') != -1) am = 2;
|
||||
if (href.indexOf('sensors') != -1) am = 3;
|
||||
if (href.indexOf('discovery') != -1) am = (3 + mip);
|
||||
$('#navbar ul li').eq(am).addClass('active');
|
||||
|
||||
//handle settings
|
||||
$(document).on('click','#scfg',function() {
|
||||
mhdr_status('');
|
||||
$('#m-t').html('Site settings');
|
||||
var h = '<h3>Password settings</h3>';
|
||||
h += c_txt('opswd','Old password','Please put old password (four digits)','','password');
|
||||
h += c_txt('npswd','New password','Please put new password (four digits)','','password');
|
||||
h += c_txt('npsch','New password check','New passwords check failed','','password');
|
||||
$('#m-b').html(h);
|
||||
$('.sb').unbind();
|
||||
$('#cfg-modal').modal();
|
||||
$('.sb').bind('click',function() {
|
||||
loader(1);
|
||||
var par = ['opswd','npswd','npsch'];
|
||||
do_ajax('/set_cfg',pv(par),function (json) {
|
||||
if (json) {
|
||||
if (json['status'] == 0) {
|
||||
mhdr_status('suc');
|
||||
close_modal();
|
||||
location = '/';
|
||||
}
|
||||
show_errors(json['status'],par);
|
||||
loader(0);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
//periodicly get status
|
||||
var bsy = false;
|
||||
var ebli = 0;
|
||||
var eblio = 255;
|
||||
var idntb = $('#idnt img');
|
||||
function sta() {
|
||||
do_ajax('/serr',{},function (json) {
|
||||
// console.log(json);
|
||||
dmxsnf = '';
|
||||
if (json ) {
|
||||
if (json['err'] == 1) ebli = 0x80;
|
||||
else ebli = 0;
|
||||
if (json['dmxsnf'] == 1) dmxsnf = ' [sniffing DMX]';
|
||||
if (json['idnt'] == 1) idntb.addClass('a');
|
||||
else idntb.removeClass('a');
|
||||
if (json['dls'] && json['dls'] == 1) {
|
||||
$('.snz').show();
|
||||
}
|
||||
} else if (json == undefined) {
|
||||
ebli = 0x40;
|
||||
} else ebli = 0;
|
||||
bsy = false;
|
||||
});
|
||||
}
|
||||
setInterval(function() {
|
||||
if (!bsy) {
|
||||
bsy = true;
|
||||
sta();
|
||||
}
|
||||
},3000);
|
||||
sta();
|
||||
setInterval(function() {
|
||||
if (ebli == eblio) return;
|
||||
var opre = pre;
|
||||
if (ebli & 0x80) {
|
||||
ebli ^= 0x01;
|
||||
if (ebli & 0x01) pre = '(!) ';
|
||||
$('#pth').removeClass('stou');
|
||||
$('#pth').addClass('serr');
|
||||
} else if (ebli & 0x40) {
|
||||
ebli ^= 0x01;
|
||||
if (ebli & 0x01) pre = '(?) ';
|
||||
$('#pth').removeClass('serr');
|
||||
$('#pth').addClass('stou');
|
||||
} else {
|
||||
ebli = 0;
|
||||
$('#pth').removeClass('serr stou');
|
||||
pre = '';
|
||||
}
|
||||
//$('#pt_v').html(pre + $('#pth').data('title') + dmxsnf);
|
||||
if (opre != pre) ptit('');
|
||||
eblio = ebli;
|
||||
},1000);
|
||||
$('#idnt').click(function() {
|
||||
idntb.toggleClass('a');
|
||||
do_ajax('/rdmi',{s:idntb.hasClass('a') ? 1:0},function(json) {});
|
||||
});
|
||||
});
|
||||
1
iforte/discovery.html
Normal file
1
iforte/discovery.html
Normal file
File diff suppressed because one or more lines are too long
1
iforte/iforte_pressure_ok.html
Normal file
1
iforte/iforte_pressure_ok.html
Normal file
File diff suppressed because one or more lines are too long
1
iforte/iforte_while_pressure_testing.html
Normal file
1
iforte/iforte_while_pressure_testing.html
Normal file
File diff suppressed because one or more lines are too long
404
iforte/index.html
Normal file
404
iforte/index.html
Normal file
@@ -0,0 +1,404 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
|
||||
<link rel="stylesheet" href="../files/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="../files/layout.css">
|
||||
<script src="../files/jquery-3.3.1.min.js"></script>
|
||||
<script src="../files/popper.min.js"></script>
|
||||
<script src="../files/bootstrap.min.js"></script>
|
||||
<script src="base.js"></script>
|
||||
<title id="pt_v">iForte</title>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="navbar fixed-top navbar-expand-md navbar-dark bg-dark">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="./index.html">
|
||||
<img src="../files/robe_logo_white.svg">
|
||||
</a>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbar">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link" href="./index.html">Status</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="./personality.html">Personality</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="./logs.html">Logs</a>
|
||||
</li>
|
||||
<li class="nav-item snz">
|
||||
<a class="nav-link" href="./sensors.html">RAINS logs</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="./discovery.html">Discovery</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#" id="scfg">Settings</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#" id="idnt">
|
||||
<img class="rdmi" src="../files/identify.svg">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="fixed-top text-center device-label" id="pth">iForte</div>
|
||||
<div class="container-fluid in">
|
||||
<h1>Device status</h1>
|
||||
<div class="row" id="boxes">
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>DMX/RDM settings <a class="cfg" onclick="open_modal(0);">
|
||||
<img src="../files/settings.svg">
|
||||
</a>
|
||||
</h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>DMX address</li>
|
||||
<li>DMX preset</li>
|
||||
<li>DMX input</li>
|
||||
<li class="mt-2">IP address</li>
|
||||
<li>MAC address</li>
|
||||
<li class="mt-2">RDM UID</li>
|
||||
<li>RDM label</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="dmxa_v">350</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="dmxp_v">Mode 1</div>
|
||||
<small id="dmxf_v">(54 channels)</small>
|
||||
</li>
|
||||
<li>
|
||||
<div id="dmxi_v">wired</div>
|
||||
</li>
|
||||
<li class="mt-2">
|
||||
<div id="ip_v">2.247.136.14</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="mac_v">00:0d:19:06:88:0e</div>
|
||||
</li>
|
||||
<li class="mt-2">
|
||||
<div id="rdmu_v">52:53:01:2c:00:0e</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="rdmn_v">iForte</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>Device times <a class="cfg" onclick="open_modal(1);">
|
||||
<img src="../files/settings.svg">
|
||||
</a>
|
||||
</h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>Power on time</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="h0_v">164</div>h / <div id="hr0_v">161</div>h
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
<small>total / resettable</small>
|
||||
</p>
|
||||
<ul class="group">
|
||||
<li>LED on time total</li>
|
||||
<li>LED on time adaptive</li>
|
||||
</ul>
|
||||
<ul class="group vals">
|
||||
<li>
|
||||
<div id="h1_v">21</div>h
|
||||
</li>
|
||||
<li>
|
||||
<div id="hr1_v">19</div>h
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>Device temperatures <a class="cfg" onclick="open_modal(2);">
|
||||
<img src="../files/settings.svg">
|
||||
</a>
|
||||
</h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>LEDs</li>
|
||||
<li>PSU</li>
|
||||
<li>Driver</li>
|
||||
<li>Base</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="t0_v">34</div>° <div class="tu">C</div> / <div id="tm0_v">65</div>° <div class="tu">C</div> / <div id="tmr0_v">65</div>° <div class="tu">C</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="t3_v">36</div>° <div class="tu">C</div> / <div id="tm3_v">65</div>° <div class="tu">C</div> / <div id="tmr3_v">65</div>° <div class="tu">C</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="t1_v">49</div>° <div class="tu">C</div> / <div id="tm1_v">97</div>° <div class="tu">C</div> / <div id="tmr1_v">97</div>° <div class="tu">C</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="t2_v">34</div>° <div class="tu">C</div> / <div id="tm2_v">59</div>° <div class="tu">C</div> / <div id="tmr2_v">59</div>° <div class="tu">C</div>
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
<small>current / maximum / resettable</small>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>Wireless state <a class="cfg" onclick="open_modal(3);">
|
||||
<img src="../files/settings.svg">
|
||||
</a>
|
||||
</h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>State</li>
|
||||
<li>Signal strength</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="lwc_v">linked</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="lws_v">0.0%</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>Software versions</h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>Display System</li>
|
||||
<li>Module M</li>
|
||||
<li>Module L1</li>
|
||||
<li>Module L2</li>
|
||||
<li>Module O</li>
|
||||
<li>Module F-A</li>
|
||||
<li>Module F-B</li>
|
||||
<li>Module G1</li>
|
||||
<li>Module G2</li>
|
||||
<li>Module P</li>
|
||||
<li>Module C1</li>
|
||||
<li>Module C2</li>
|
||||
<li>Module DL</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="sw_vers">
|
||||
<li>1.9</li>
|
||||
<li>1.4</li>
|
||||
<li>1.6</li>
|
||||
<li>1.5</li>
|
||||
<li>1.3</li>
|
||||
<li>1.1</li>
|
||||
<li>1.1</li>
|
||||
<li>1.5</li>
|
||||
<li>1.5</li>
|
||||
<li>1.2</li>
|
||||
<li>1.2</li>
|
||||
<li>1.2</li>
|
||||
<li>1.2</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>Device state</h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>Device status</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="devs_v">active</div>
|
||||
</li>
|
||||
</ul>
|
||||
<button class="btn btn-primary btn-block esm dn btn-success" value="0" style="display: inline-block;">Enter standby mode</button>
|
||||
<div>Current RAINS status</div>
|
||||
<div>
|
||||
<small class="fl">WET</small>
|
||||
<small class="fr">DRY</small>
|
||||
</div>
|
||||
<div id="rai" class="rains">
|
||||
<div style="width: 63%;"></div>
|
||||
</div>
|
||||
<div>MAX WET/resettable</div>
|
||||
<div>
|
||||
<small class="fl">WET</small>
|
||||
<small class="fr">DRY</small>
|
||||
</div>
|
||||
<div id="rair" class="rains">
|
||||
<div style="width: 63%;"></div>
|
||||
</div>
|
||||
<button class="btn btn-primary btn-block mwr" value="0">MAX WET reset</button>
|
||||
<p>
|
||||
<small id="wrt">last reset: 2.3.2023 16:19:57</small>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 box-c">
|
||||
<h2 id="sta_err">Status messages</h2>
|
||||
<div class="box">
|
||||
<ul class="group" id="err_v"></ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="cfg-modal" class="modal fade" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<img src="../files/settings.svg">
|
||||
<h5 class="modal-title" id="m-t"></h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body" id="m-b"></div>
|
||||
<div class="modal-footer" id="m-f">
|
||||
<button type="button" class="btn btn-primary sb">Save</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
var a_m = -1;
|
||||
var m_t = ['DMX/RDM settings', 'Reset timers', 'Reset temperatures', 'Wireless settings', ];
|
||||
|
||||
function open_modal(i) {
|
||||
a_m = i;
|
||||
mhdr_status('');
|
||||
if (a_m < m_t.length) {
|
||||
$('#m-t').html(m_t[a_m])
|
||||
}
|
||||
$('.sb').unbind();
|
||||
$('#m-f').empty();
|
||||
$('#m-f').append(' < button type = "button"
|
||||
class = "btn btn-primary sb" > Save < /button>');if(a_m==0) $('#m-f').show();else $('#m-f').hide();var h='';if(a_m==0){h+=c_txt('dmxa','DMX address','Please put DMX address from 1 to 512');h+=c_opt('dmxp','DMX preset',[1],'Mode ',0,1,'');h+=c_opt('dmxi','DMX input',['wired','wireless','wireless XLR out'],'',0,1,'Can not set wireless input now!');h+=c_txt('rdmn','RDM label','Please insert label,max 32 characters')} else if(a_m==1){h+=c_btn('Power on time reset',0,' rh')} else if(a_m==2){h+=c_btn('LEDs temperature reset',0,' rt');h+=c_btn('PSU temperature reset',3,' rt');h+=c_btn('Driver temperature reset',1,' rt');h+=c_btn('Base temperature reset',2,' rt')} else if(a_m==3){h+=c_btn('Unlink Wireless module',0,' lwu')}$('#m-b').html(h);copy_form_values(1);$('#cfg-modal').modal();$('.sb').bind('click',function(){loader(1);var par=['dmxa','dmxp','dmxi','rdmn'];do_ajax('/set_dmx
|
||||
',pv(par),function (json){if(json){if(json['
|
||||
status ']==0){mhdr_status('
|
||||
suc ');copy_form_values(0);if(a_m==0){console.log(json['
|
||||
dmxf ']);fill_values(json,['
|
||||
dmxf '])}ptit(json['
|
||||
pt ']);close_modal()}show_errors(json['
|
||||
status '],par);loader(0)}})});$('.rh ').bind('
|
||||
click ',function(){loader(1);do_ajax(' / reset_hours ',{index:$(this).attr('
|
||||
value ')},function (json){if(json){mhdr_status('
|
||||
suc ');fill_values(json,['
|
||||
hr0 ','
|
||||
hr1 ','
|
||||
hr2 ','
|
||||
hr3 '])}loader(0)})});$('.rt ').bind('
|
||||
click ',function(){loader(1);do_ajax(' / reset_temps ',{index:$(this).attr('
|
||||
value ')},function (json){if(json){mhdr_status('
|
||||
suc ');fill_values(json,['
|
||||
tmr0 ','
|
||||
tmr1 ','
|
||||
tmr2 '])}loader(0)})});$('.lwu ').bind('
|
||||
click ',function(){loader(1);do_ajax(' / lwm ',{unlink:1},function (json){if(json){fill_values(json,['
|
||||
lwc ','
|
||||
lws ']);mhdr_status('
|
||||
suc ');close_modal()}loader(0)})})}$(document).ready(function(){$('
|
||||
h1 ').html('
|
||||
Device status ');var boxes='
|
||||
';boxes+=box(m_t[0],0,[['
|
||||
',['
|
||||
DMX address; dmxa ','
|
||||
DMX preset; dmxp; < li > < div id = "dmxp_v" > - < /div> < small id = "dmxf_v" > < /small> < /li>','DMX input;dmxi',' < li class = "mt-2" > IP address < /li>;;; < li class = "mt-2" > < div id = "ip_v" > - < /div> < /li>','MAC address;mac',' < li class = "mt-2" > RDM UID < /li>;;; < li class = "mt-2" > < div id = "rdmu_v" > - < /div> < /li>','RDM label;rdmn',]],]);var lot_ta='';lot_ta=' < ul class = "group" > < li > LED on time total < /li> < li > LED on time adaptive < /li> < /ul>',lot_ta+=' < ul class = "group vals" > < li > < div id = "h1_v" > - < /div>h < /li> < li > < div id = "hr1_v" > - < /div>h < /li> < /ul>',boxes+=box('Device times',1,[['',[' < li > Power on time < /li>;;; < li > < div id = "h0_v" > - < /div>h / < div id = "hr0_v" > - < /div>h < /li>',]],],' < p > < small > total / resettable < /small> < /p>'+lot_ta);boxes+=box('Device temperatures',2,[['',[' < li > LEDs < /li>;;; < li > < div id = "t0_v" > - < /div>&DG < div class = "tu" > < /div> / < div id = "tm0_v" > - < /div>&DG < div class = "tu" > < /div> / < div id = "tmr0_v" > - < /div>&DG < div class = "tu" > < /div> < /li>',' < li > PSU < /li>;;; < li > < div id = "t3_v" > - < /div>&DG < div class = "tu" > < /div> / < div id = "tm3_v" > - < /div>&DG < div class = "tu" > < /div> / < div id = "tmr3_v" > - < /div>&DG < div class = "tu" > < /div> < /li>',' < li > Driver < /li>;;; < li > < div id = "t1_v" > - < /div>&DG < div class = "tu" > < /div> / < div id = "tm1_v" > - < /div>&DG < div class = "tu" > < /div> / < div id = "tmr1_v" > - < /div>&DG < div class = "tu" > < /div> < /li>',' < li > Base < /li>;;; < li > < div id = "t2_v" > - < /div>&DG < div class = "tu" > < /div> / < div id = "tm2_v" > - < /div>&DG < div class = "tu" > < /div> / < div id = "tmr2_v" > - < /div>&DG < div class = "tu" > < /div> < /li>',]],],' < p > < small > current / maximum / resettable < /small> < /p>');boxes+=box('Wireless state',3,[['',['State;lwc','Signal strength;lws',]],]);boxes+=box('Software versions',-1,[['',['Display System','Module M','Module L1','Module L2','Module O','Module F-A','Module F-B','Module G1','Module G2','Module P','Module C1','Module C2','Module DL',]],],'','sw_vers');boxes+=box('Device state',-1,[['',['Device status;devs',]],],c_btn('',0,' esm dn')+' < div > Current RAINS status < /div> < div > < small class = "fl" > WET < /small> < small class = "fr" > DRY < /small> < /div> < div id = "rai"
|
||||
class = "rains" > < div > < /div> < /div> < div > MAX WET / resettable < /div> < div > < small class = "fl" > WET < /small> < small class = "fr" > DRY < /small> < /div> < div id = "rair"
|
||||
class = "rains" > < div > < /div> < /div>'+c_btn('MAX WET reset',0,' mwr')+' < p > < small id = "wrt" > < /small> < /p>');boxes+=' < div class = "col-12 box-c" > ';boxes+=' < h2 id = "sta_err" > Status messages < /h2>';boxes+=' < div class = "box" > ';boxes+=' < ul class = "group"
|
||||
id = "err_v" > ';boxes+=' < /ul>';boxes+=' < /div>';boxes+=' < /div>';$('#boxes').html(boxes);var emb=$('button.esm');emb.addClass('btn-success');function ems_btn(v){if(v==0){emb.removeClass('sa btn-warning').html('Enter standby mode').show()} else {emb.addClass('sa btn-warning').html('Escape standby mode').show()}}emb.click(function(){var run=true;var s_v=(emb.hasClass('sa') ? 0:1);if((s_v==1)&&!confirm('Are you sure you want to enter standby mode?')) run=false;if(run){do_ajax('/sbm
|
||||
',{s:s_v},function (json){ems_btn(json['
|
||||
sm ']);fill_values(json,['
|
||||
devs '])})}});var bussy=0;function do_5s(){bussy|=(1< < 0);
|
||||
do_ajax('/lwm', {}, function(json) {
|
||||
if (json) {
|
||||
fill_values(json, ['lwc', 'lws'])
|
||||
}
|
||||
bussy &= ~(1 < < 0)
|
||||
});
|
||||
bussy |= (1 < < 1);
|
||||
do_ajax('/reset_temps', {}, function(json) {
|
||||
if (json) {
|
||||
fill_values(json, ['t0', 't1', 't2', 't3', 'tm0', 'tm1', 'tm2', 'tm3', 'tmr0', 'tmr1', 'tmr2', 'tmr3']);
|
||||
$('.tu').html(json['tu'])
|
||||
}
|
||||
bussy &= ~(1 < < 1)
|
||||
});
|
||||
bussy |= (1 < < 3);
|
||||
do_ajax('/reset_hours', {}, function(json) {
|
||||
if (json) {
|
||||
fill_values(json, ['h0', 'h1', 'h2', 'h3', 'hr0', 'hr1', 'hr2', 'hr3'])
|
||||
}
|
||||
bussy &= ~(1 < < 3)
|
||||
});
|
||||
bussy |= (1 < < 4);
|
||||
do_ajax('/devsta', {}, function(json) {
|
||||
if (json) {
|
||||
fill_values(json, ['devs']);
|
||||
$('#rai>div').css('width', json['rains']);
|
||||
$('#rair>div').css('width', json['maxw']);
|
||||
$('#wrt').html('last reset: ' + json['maxwt']);
|
||||
ems_btn(json['sm'])
|
||||
} else {
|
||||
fill_values({
|
||||
devs: 'disconnected'
|
||||
}, ['devs'])
|
||||
}
|
||||
bussy &= ~(1 < < 4)
|
||||
});
|
||||
bussy |= (1 < < 7);
|
||||
do_ajax('/errors', {}, function(json) {
|
||||
if (json) {
|
||||
if (json['err']) {
|
||||
if (json['err'].length) $('#sta_err').addClass('err');
|
||||
else $('#sta_err').removeClass('err');
|
||||
var html = '';
|
||||
for (i = 0; i < json['err'].length; i++) html += ' < li > '+json['
|
||||
err '][i]+' < /li>';$('#err_v').html(html)}}bussy&=~(1< < 7)
|
||||
})
|
||||
}
|
||||
do_ajax('/status_i', {}, function(json) {
|
||||
if (json) {
|
||||
fill_values(json, ['dmxa', 'dmxp', 'dmxf', 'dmxi', 'pt', 'ip', 'mac', 'rdmu', 'rdmn']);
|
||||
ptit(json['pt']);
|
||||
$('.tu').html(json['tu'])
|
||||
}
|
||||
});
|
||||
do_ajax('/reset_hours', {}, function(json) {
|
||||
if (json) {
|
||||
fill_values(json, ['h0', 'h1', 'h2', 'h3', 'hr0', 'hr1', 'hr2', 'hr3'])
|
||||
}
|
||||
});
|
||||
do_ajax('/sw_ver', {}, function(json) {
|
||||
if (json) {
|
||||
$('#sw_vers li').each(function(i) {
|
||||
var v = json['vers'][i];
|
||||
$(this).html(v == 0 ? '-' : Math.floor(v / 10) + '.' + (v % 10))
|
||||
})
|
||||
}
|
||||
});
|
||||
do_5s();
|
||||
setInterval(function() {
|
||||
if (bussy == 0) do_5s()
|
||||
}, 5000);
|
||||
$('button.mwr').click(function() {
|
||||
do_ajax('/mwres', {}, function(json) {
|
||||
if (json) {
|
||||
$('#rair>div').css('width', json['maxw']);
|
||||
$('#wrt').html('last reset: ' + json['maxwt'])
|
||||
}
|
||||
})
|
||||
})
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
1
iforte/logs.html
Normal file
1
iforte/logs.html
Normal file
File diff suppressed because one or more lines are too long
1
iforte/personality.html
Normal file
1
iforte/personality.html
Normal file
File diff suppressed because one or more lines are too long
1
iforte/sensors.html
Normal file
1
iforte/sensors.html
Normal file
File diff suppressed because one or more lines are too long
36
index.html
Normal file
36
index.html
Normal file
@@ -0,0 +1,36 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
|
||||
<link rel="stylesheet" href="./files/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="./files/layout.css">
|
||||
<script src="./files/jquery-3.3.1.min.js"></script><script src="./files/popper.min.js"></script><script src="./files/bootstrap.min.js"></script>
|
||||
<link rel="icon" type="image/png" href="../favicon.png" />
|
||||
<title>REAP Simulators</title>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="navbar fixed-top navbar-expand-md navbar-dark bg-dark" style="margin-top: 0px !important;">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="./index.html"><img src="./files/robe_logo_white.svg"></a>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="container in">
|
||||
<h1>Available simulators</h1>
|
||||
<div class="row" id="boxes">
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>T1 Profile</h2>
|
||||
<div class="box">
|
||||
<button type="button" class="btn btn-primary" style="width: 100%;" onclick="location.href='t1/index.html'">Launch</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>iForte</h2>
|
||||
<div class="box">
|
||||
<button type="button" class="btn btn-primary" style="width: 100%;" onclick="location.href='iforte_index.html'" disabled>Coming soon</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
461
t1/base.js
Normal file
461
t1/base.js
Normal file
@@ -0,0 +1,461 @@
|
||||
$(document).ready(function() {
|
||||
|
||||
initSessionStorage()
|
||||
populateUIFromSessionStorage()
|
||||
|
||||
// Sets the proper fixture name in the header and title
|
||||
var fixturename = "Robin T1 Wash - Simulated";
|
||||
$('#pth').html(fixturename)
|
||||
$(document).prop('title', fixturename)
|
||||
|
||||
//handle settins modal
|
||||
$(document).on('click','#scfg',function() {
|
||||
$('#m-t').html('Site settings');
|
||||
var h = '<h3>Password settings</h3>';
|
||||
h += c_txt('opswd','Old password','Please put old password (four digits)','','password');
|
||||
h += c_txt('npswd','New password','Please put new password (four digits)','','password');
|
||||
h += c_txt('npsch','New password check','New passwords check failed','','password');
|
||||
h += c_btn('Reset demo values', 'btnresetdemo', ' btnresetdemo')
|
||||
$('#m-b').html(h);
|
||||
$('.sb').unbind();
|
||||
$('#cfg-modal').modal();
|
||||
$('.sb').bind('click',function() {
|
||||
loader(1);
|
||||
setTimeout(function() {
|
||||
close_modal();
|
||||
loader(0);
|
||||
}, 500);
|
||||
});
|
||||
});
|
||||
|
||||
// handle reset demo values
|
||||
$(document).on('click','.btnresetdemo',function() {
|
||||
$('.sb').html('OK')
|
||||
sessionStorage.clear()
|
||||
initSessionStorage()
|
||||
populateUIFromSessionStorage()
|
||||
showCustomModal('Cleared', 'Simulated page reset to default settings.')
|
||||
});
|
||||
});
|
||||
|
||||
// custom modal
|
||||
function showCustomModal(title, text) {
|
||||
loader(0)
|
||||
$('#m-t').html(title);
|
||||
var h = '<h3>' + text +'</h3>';
|
||||
$('#m-b').html(h);
|
||||
$('.sb').unbind();
|
||||
$('#cfg-modal').modal();
|
||||
$('.sb').bind('click',function() {
|
||||
close_modal()
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// turns loader animation on or off (0 or 1)
|
||||
function loader(a) {
|
||||
if (a) $('#cfg-modal .modal-header img').addClass('loader');
|
||||
else $('#cfg-modal .modal-header img').removeClass('loader');
|
||||
}
|
||||
|
||||
|
||||
// called on modal saves
|
||||
function do_ajax(p_url,p_data) {
|
||||
loader(1)
|
||||
// convert p_data to an Object
|
||||
const data_object = {}
|
||||
p_data.toString().split('&').forEach(element => {
|
||||
var kvp = element.split('=');
|
||||
data_object[kvp[0]] = kvp[1]
|
||||
});
|
||||
|
||||
p_data = data_object
|
||||
|
||||
switch (p_url) {
|
||||
case '/reset_hours':
|
||||
if (p_data.rh == 0) {
|
||||
sessionStorage.setItem('hr0', '0')
|
||||
} else if (p_data.rh == 1){
|
||||
sessionStorage.setItem('hr1', '0')
|
||||
} else if (p_data.rh == 3){
|
||||
sessionStorage.setItem('hr3', sessionStorage.getItem('h3'))
|
||||
}
|
||||
break;
|
||||
case '/reset_temps':
|
||||
if (p_data.rt == 0) {
|
||||
sessionStorage.setItem('tmr0', sessionStorage.getItem('t0'))
|
||||
} else if (p_data.rt == 3){
|
||||
sessionStorage.setItem('tmr3', sessionStorage.getItem('t3'))
|
||||
} else if (p_data.rt == 2){
|
||||
sessionStorage.setItem('tmr2', sessionStorage.getItem('t2'))
|
||||
}
|
||||
break;
|
||||
case '/ltemps':
|
||||
if (p_data.rlt == 0) {
|
||||
sessionStorage.setItem('ltmr0', sessionStorage.getItem('lt0'))
|
||||
} else if (p_data.rlt == 1){
|
||||
sessionStorage.setItem('ltmr1', sessionStorage.getItem('lt1'))
|
||||
} else if (p_data.rlt == 2){
|
||||
sessionStorage.setItem('ltmr2', sessionStorage.getItem('lt2'))
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
for (const [key, value] of Object.entries(p_data)) {
|
||||
sessionStorage.setItem(key, value)
|
||||
|
||||
if (key == 'tmpu') {
|
||||
if (value == 0) {
|
||||
sessionStorage.setItem('tu', 'C')
|
||||
} else if (value == 1) {
|
||||
sessionStorage.setItem('tu', 'F')
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
populateUIFromSessionStorage()
|
||||
loader(0)
|
||||
close_modal()
|
||||
}
|
||||
|
||||
// closes the currently open modal
|
||||
function close_modal() {
|
||||
loader(0)
|
||||
setTimeout(function() {
|
||||
$('#m-b').empty();
|
||||
$('#cfg-modal').modal('hide');
|
||||
},500);
|
||||
}
|
||||
|
||||
|
||||
// fills modals with form values
|
||||
function copy_form_values(dir) {
|
||||
|
||||
$('#m-b input:text, #m-b input[type=range]').each(function() {
|
||||
var id = $(this).attr('id');
|
||||
if (dir == 0) $('#' + id + '_v').html($('#' + id).val());
|
||||
else $('#' + id).val($('#' + id + '_v').html());
|
||||
});
|
||||
$('#m-b select').each(function() {
|
||||
var id = $(this).attr('id');
|
||||
text = $('#' + id + '_v').html();
|
||||
if (dir == 1) {
|
||||
$(this).find('option').filter(function () { return $(this).html() == text; }).attr('selected', 'selected');
|
||||
} else {
|
||||
$('#' + id + '_v').html($(this).find('option:selected').html());
|
||||
}
|
||||
});
|
||||
$('#m-b input:radio').each(function() {
|
||||
var id = $(this).attr('name');
|
||||
text = $('#' + id + '_v').html();
|
||||
label = $(this).parent().find('label').html();
|
||||
if (dir == 1) {
|
||||
if (label == text) $(this).attr('checked','checked');
|
||||
} else {
|
||||
if ($(this).is(':checked')) $('#' + id + '_v').html(label);
|
||||
}
|
||||
|
||||
});
|
||||
if (dir == 1) {
|
||||
$('#m-b div.form-group').each(function() {
|
||||
var len = $(this).find('div.invalid-feedback').length;
|
||||
if (len == 0) {
|
||||
$(this).append('<div class="invalid-feedback">Wrong value!</div>');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// creates a parameter-like url format from an array
|
||||
function serialize_parameters(p) {
|
||||
var s = '';
|
||||
|
||||
for (var i in p) {
|
||||
var o = p[i];
|
||||
if (i == 0) s += o + '=';
|
||||
else s += '&' + o + '=';
|
||||
if ($('#' + o).val() != undefined) s += $('#' + o).val();
|
||||
else if ($('input[name=' + o + ']:checked').val() != undefined) s += $('input[name=' + o + ']:checked').val();
|
||||
}
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
// returns txt field
|
||||
function c_txt(input_id,label,e,form_div_class = '',input_text = 'text') {
|
||||
|
||||
var html = '<div class="form-group' + form_div_class + '">';
|
||||
html += '<label for="' + input_id + '" class="col-form-label">' + label + '</label>';
|
||||
html += '<input type="'+ input_text +'" class="form-control" id="' + input_id + '">';
|
||||
html += e.length > 0 ? '<div class="invalid-feedback">' + e + '</div>' : '';
|
||||
html += '</div>';
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
// returns btn field
|
||||
function c_btn(text, btnvalue, btnclass) {
|
||||
return '<button class="btn btn-primary btn-block' + btnclass + '" value="' + btnvalue + '">' + text + '</button>';
|
||||
}
|
||||
|
||||
// returns select field
|
||||
function c_opt(n,t,o,pl,vp,lp,e) {
|
||||
|
||||
var html = '<div class="form-group">';
|
||||
html += '<label for="' + n + '" class="col-form-label">' + t + '</label>';
|
||||
html += '<select class="form-control" id="' + n + '">';
|
||||
var l = o.length;
|
||||
var li = l;
|
||||
if (l == 1) li = o[0];
|
||||
for (i = 0; i < li; i++) {
|
||||
if (l == 1) html += '<option value="' + (i + vp) + '">'+ pl + (i + lp) + '</option>';
|
||||
else html += '<option value="' + (i + vp) + '">'+ o[i] + '</option>';
|
||||
}
|
||||
html += '</select>';
|
||||
html += e.length > 0 ? '<div class="invalid-feedback">' + e + '</div>' : '';
|
||||
html += '</div>';
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
// returns radio field
|
||||
function c_rad(n,t,r,e,c) {
|
||||
|
||||
var html = '<div class="form-group' + c + '">';
|
||||
html += '<legend class="col-form-label">' + t + '</legend>';
|
||||
for (i = 0; i < r.length; i++) {
|
||||
html += '<div class="form-check form-check-inline">';
|
||||
html += '<input class="form-check-input" type="radio" name="' + n + '" value="' + i + '" id="' + n + (i + 1) + '">';
|
||||
html += '<label class="form-check-label" for="' + n + (i + 1) + '">' + r[i] + '</label>';
|
||||
html += '</div>';
|
||||
}
|
||||
html += e.length > 0 ? '<div class="invalid-feedback">' + e + '</div>' : '';
|
||||
html += '</div>';
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
|
||||
// add leading zeros to single digit hours, minutes, etc...
|
||||
function addLeadingZeros(num) {
|
||||
return String(num).padStart(2, '0');
|
||||
}
|
||||
|
||||
function initSessionStorage() {
|
||||
var currentTime = new Date();
|
||||
|
||||
if (sessionStorage.getItem('dmxa') == null) {
|
||||
|
||||
/* CONSTANTS */
|
||||
sessionStorage.setItem('ip', '2.246.16.203') // ip addr
|
||||
sessionStorage.setItem('mac', '00:00:00:00:00:00') //
|
||||
sessionStorage.setItem('rdmu', '52:53:00:00:00:00') //
|
||||
|
||||
/* VARIABLES */
|
||||
sessionStorage.setItem('dmxa', '1') // dmx addr
|
||||
sessionStorage.setItem('dmxp', '2') // dmx mode
|
||||
sessionStorage.setItem('dmxi', '0') // input (wired0 wireless1 wirelessout2)
|
||||
sessionStorage.setItem('rdmn', 'Robin T1 Wash') // rdm name
|
||||
|
||||
sessionStorage.setItem('bldmc', '0') // blackout dmc
|
||||
sessionStorage.setItem('blptm', '0') // blackout pt
|
||||
|
||||
sessionStorage.setItem('dty', currentTime.getFullYear()) // date year
|
||||
sessionStorage.setItem('dtmo', addLeadingZeros(currentTime.getMonth() + 1)) // date month
|
||||
sessionStorage.setItem('dtd', addLeadingZeros(currentTime.getDay())) // date day
|
||||
|
||||
sessionStorage.setItem('dth', addLeadingZeros(currentTime.getHours())) // time hour
|
||||
sessionStorage.setItem('dtmi', addLeadingZeros(currentTime.getMinutes())) // time minute
|
||||
sessionStorage.setItem('dts', addLeadingZeros(currentTime.getSeconds())) // time seconds
|
||||
|
||||
sessionStorage.setItem('emod', '0') //ethmode 0dis 1art 2gma1 3gma2 4sacn
|
||||
sessionStorage.setItem('ee2d', '0') //eth to dmx
|
||||
sessionStorage.setItem('eanu', '0') //art uni
|
||||
sessionStorage.setItem('emau', '1') //ma uni
|
||||
sessionStorage.setItem('emas', '1') //ma session
|
||||
sessionStorage.setItem('esau', '1') //sacn uni
|
||||
|
||||
sessionStorage.setItem('dint', '9') //disp int
|
||||
sessionStorage.setItem('dsd', '0') //disp screensave
|
||||
sessionStorage.setItem('dtl', '0') //disp lock
|
||||
sessionStorage.setItem('dor', '2') //disp orientation 0norm 1inv 2auto
|
||||
|
||||
sessionStorage.setItem('mics', '9') // mic sens
|
||||
|
||||
sessionStorage.setItem('them', '0') // theatre mode
|
||||
sessionStorage.setItem('fannl', '0') // fan noise level percent
|
||||
sessionStorage.setItem('frq', '4928') // cpulse frequency, use frq_s to calculate. 4928 = 600.0000Hz
|
||||
sessionStorage.setItem('fanm', '0') // fanmode 0auto 1high
|
||||
sessionStorage.setItem('tmpu', '0') //temp unit 0c 1f
|
||||
sessionStorage.setItem('tu', 'C') // temp unit string
|
||||
|
||||
sessionStorage.setItem('pr', '0') // pan rev
|
||||
sessionStorage.setItem('ptf', '1') // pt feedback
|
||||
sessionStorage.setItem('pte', '1') // pt EMS
|
||||
sessionStorage.setItem('tr', '0') // tilt rev
|
||||
sessionStorage.setItem('ptm', '0') // pt mode 0speed 1time
|
||||
|
||||
sessionStorage.setItem('ccalm', '1') // col cal mode
|
||||
sessionStorage.setItem('cmixm', '0') // color mix mode 0rgb 1cmy
|
||||
sessionStorage.setItem('chrwh', '0') // chromatic white
|
||||
sessionStorage.setItem('cdimc', '1') //dim curve 0linear 1squarelaw
|
||||
sessionStorage.setItem('thefs', '0') //tungsten dimming 0off 1_750 2_1000 3_1200 4_2000 5_2500
|
||||
|
||||
sessionStorage.setItem('h0', '1206') // power on time
|
||||
sessionStorage.setItem('hr0', '1206') // resetable
|
||||
sessionStorage.setItem('h1', '213') // leds on time
|
||||
sessionStorage.setItem('hr1', '213') // resetable
|
||||
sessionStorage.setItem('h3', '300') // airfilters
|
||||
sessionStorage.setItem('hr3', '45') // resetable
|
||||
|
||||
sessionStorage.setItem('t0', '28') // led brd top now
|
||||
sessionStorage.setItem('tm0', '62') // max
|
||||
sessionStorage.setItem('tmr0', '62') // resetable
|
||||
sessionStorage.setItem('t3', '26') // led brd bottom now
|
||||
sessionStorage.setItem('tm3', '64') // max
|
||||
sessionStorage.setItem('tmr3', '64') // resetable
|
||||
sessionStorage.setItem('t2', '25') // base now
|
||||
sessionStorage.setItem('tm2', '56') // max
|
||||
sessionStorage.setItem('tmr2', '56') // resetable
|
||||
sessionStorage.setItem('lt0', '22.3') // red amber now
|
||||
sessionStorage.setItem('ltm0', '53') // max
|
||||
sessionStorage.setItem('ltmr0', '53') // resetable
|
||||
sessionStorage.setItem('lt1', '22.9') // green yellow now
|
||||
sessionStorage.setItem('ltm1', '67') // max
|
||||
sessionStorage.setItem('ltmr1', '67') // resetable
|
||||
sessionStorage.setItem('lt2', '23.1') // blue now
|
||||
sessionStorage.setItem('ltm2', '65') // max
|
||||
sessionStorage.setItem('ltmr2', '65') // resetable
|
||||
}
|
||||
}
|
||||
|
||||
function populateUIFromSessionStorage() {
|
||||
for (var i = 0; i < sessionStorage.length; i++) {
|
||||
var valueToLoad = '';
|
||||
switch (sessionStorage.key(i)) {
|
||||
case 'dmxp':
|
||||
var valueToLoad = "Mode " + (parseInt(sessionStorage.getItem(sessionStorage.key(i))) + 1)
|
||||
break;
|
||||
case 'dmxi':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "wired"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "wireless"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 2) {
|
||||
var valueToLoad = "wireless XLR out"
|
||||
}
|
||||
break;
|
||||
|
||||
case 'bldmc':
|
||||
case 'blptm':
|
||||
case 'ee2d':
|
||||
case 'them':
|
||||
case 'pr':
|
||||
case 'tr':
|
||||
case 'ptf':
|
||||
case 'pte':
|
||||
case 'ccalm':
|
||||
case 'chrwh':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "off"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "on"
|
||||
}
|
||||
break;
|
||||
case 'emod':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "disable"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "ArtNet"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 2) {
|
||||
var valueToLoad = "gMA1"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 3) {
|
||||
var valueToLoad = "gMA2"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 4) {
|
||||
var valueToLoad = "sACN"
|
||||
}
|
||||
break;
|
||||
case 'dint':
|
||||
case 'mics':
|
||||
var valueToLoad = (parseInt(sessionStorage.getItem(sessionStorage.key(i))) + 1)
|
||||
break;
|
||||
|
||||
case 'dsd':
|
||||
case 'dtl':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "off"
|
||||
} else {
|
||||
var valueToLoad = (parseInt(sessionStorage.getItem(sessionStorage.key(i))) + " min")
|
||||
}
|
||||
break;
|
||||
case 'dor':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "normal"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "inverted"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 2) {
|
||||
var valueToLoad = "auto"
|
||||
}
|
||||
break;
|
||||
case 'fanm':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "auto"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "high"
|
||||
}
|
||||
break;
|
||||
case 'tmpu':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "°C"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "°F"
|
||||
}
|
||||
break;
|
||||
case 'ptm':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "speed"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "time"
|
||||
}
|
||||
break;
|
||||
case 'cmixm':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "rgb"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "cmy"
|
||||
}
|
||||
break;
|
||||
case 'thefs':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "off"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "750 W"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 2) {
|
||||
var valueToLoad = "1000 W"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 3) {
|
||||
var valueToLoad = "1200 W"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 4) {
|
||||
var valueToLoad = "2000 W"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 5) {
|
||||
var valueToLoad = "2500 W"
|
||||
}
|
||||
break;
|
||||
case 'cdimc':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "linear"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "square law"
|
||||
}
|
||||
break;
|
||||
default:
|
||||
var valueToLoad = sessionStorage.getItem(sessionStorage.key(i))
|
||||
break;
|
||||
}
|
||||
|
||||
$("#" + sessionStorage.key(i) + "_v").html(valueToLoad)
|
||||
|
||||
// for each element with id tu_v sets html to string of temp unit
|
||||
$('div[id^="tu_v"]').html(sessionStorage.getItem('tu'))
|
||||
}
|
||||
}
|
||||
98
t1/discovery.html
Normal file
98
t1/discovery.html
Normal file
@@ -0,0 +1,98 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
|
||||
<link rel="stylesheet" href="../files/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="../files/layout.css">
|
||||
<script src="../files/jquery-3.3.1.min.js"></script>
|
||||
<script src="../files/popper.min.js"></script>
|
||||
<script src="../files/bootstrap.min.js"></script>
|
||||
<script src="base.js"></script>
|
||||
<title id="pt_v">Robin T1 Wash</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<nav class="navbar fixed-top navbar-expand-md navbar-dark bg-dark">
|
||||
<div class="container"><a class="navbar-brand" href="./index.html"><img
|
||||
src="../files/robe_logo_white.svg"></a><button class="navbar-toggler" type="button"
|
||||
data-toggle="collapse" data-target="#navbar"><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="collapse navbar-collapse" id="navbar">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li class="nav-item"><a class="nav-link" href="./index.html">Status</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="./personality.html">Personality</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="./logs.html">Logs</a></li>
|
||||
<li class="nav-item active"><a class="nav-link" href="./discovery.html">Discovery</a>
|
||||
</li>
|
||||
<li class="nav-item"><a class="nav-link" id="scfg">Settings</a></li>
|
||||
<li class="nav-item"><a class="nav-link" id="idnt"><img class="rdmi" src="../files/identify.svg"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="fixed-top text-center device-label" id="pth">Robin T1 Wash</div>
|
||||
<div class="container in">
|
||||
<h1>Discovery</h1>
|
||||
<div class="row" id="boxes">
|
||||
<div class="col-12">
|
||||
<div class="clearfix">
|
||||
<div class="float-left pt02"><input type="checkbox" id="w-ot"><label for="w-ot" class="pl04"> Move
|
||||
devices with warning to top</label></div><button class="btn btn-primary float-right"
|
||||
id="scan">Discover (0)</button>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table class="table mt-2" id="d-t">
|
||||
<thead id="dmax">
|
||||
<tr>
|
||||
<th><i class="as"></i><i class="ab"></i> Device</th>
|
||||
<th><i></i><i class="ab"></i> DMX address</th>
|
||||
<th><i></i><i class="ab"></i> DMX preset</th>
|
||||
<th><i></i><i class="ab"></i> RDM UID</th>
|
||||
<th><i></i><i class="ab"></i> IP address</th>
|
||||
<th> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="scd">
|
||||
<tr>
|
||||
<td>Robin T1 Wash</td>
|
||||
<td>100</td>
|
||||
<td>Mode 3</td>
|
||||
<td>52:53:00:00:00</td>
|
||||
<td><a href="">2.146.200.16</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Robin EspriTE</td>
|
||||
<td>200</td>
|
||||
<td>Mode 1</td>
|
||||
<td>52:53:00:00:00</td>
|
||||
<td><a href="">2.146.12.146</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Robin T2 Profile</td>
|
||||
<td>300</td>
|
||||
<td>Mode 3</td>
|
||||
<td>52:53:00:00:00</td>
|
||||
<td><a href="">2.146.28.123</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="cfg-modal" class="modal fade" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header"><img src="../files/settings.svg">
|
||||
<h5 class="modal-title" id="m-t"></h5><button type="button" class="close" data-dismiss="modal"
|
||||
aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
</div>
|
||||
<div class="modal-body" id="m-b"></div>
|
||||
<div class="modal-footer" id="m-f"><button type="button" class="btn btn-primary sb">Save</button></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
320
t1/index.html
Normal file
320
t1/index.html
Normal file
@@ -0,0 +1,320 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
|
||||
<link rel="stylesheet" href="../files/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="../files/layout.css">
|
||||
<script src="../files/jquery-3.3.1.min.js"></script><script src="../files/popper.min.js"></script><script src="../files/bootstrap.min.js"></script><script src="base.js"></script>
|
||||
<title id="pt_v">Robin T1 Wash</title>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="navbar fixed-top navbar-expand-md navbar-dark bg-dark">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="./index.html"><img src="../files/robe_logo_white.svg"></a><button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="collapse navbar-collapse" id="navbar">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li class="nav-item active"><a class="nav-link" href="./index.html">Status</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="./personality.html">Personality</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="./logs.html">Logs</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="./discovery.html">Discovery</a></li>
|
||||
<li class="nav-item"><a class="nav-link" id="scfg">Settings</a></li>
|
||||
<li class="nav-item"><a class="nav-link" id="idnt"><img class="rdmi" src="../files/identify.svg"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="fixed-top text-center device-label" id="pth">Robin T1 Wash</div>
|
||||
<div class="container in">
|
||||
<h1>Device status</h1>
|
||||
<div class="row" id="boxes">
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>DMX/RDM settings<a class="cfg" onclick="open_modal(0);"><img src="../files/settings.svg"></a></h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>DMX address</li>
|
||||
<li>DMX preset</li>
|
||||
<li>DMX input</li>
|
||||
<li class="mt-2">IP address</li>
|
||||
<li>MAC address</li>
|
||||
<li class="mt-2">RDM UID</li>
|
||||
<li>RDM label</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="dmxa_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="dmxp_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="dmxi_v"></div>
|
||||
</li>
|
||||
<li class="mt-2">
|
||||
<div id="ip_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="mac_v"></div>
|
||||
</li>
|
||||
<li class="mt-2">
|
||||
<div id="rdmu_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="rdmn_v"></div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>Device times<a class="cfg" onclick="open_modal(1);"><img src="../files/settings.svg"></a></h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>Power on time</li>
|
||||
<li>LEDs on time</li>
|
||||
<li>Air filters</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="h0_v"></div>
|
||||
h /
|
||||
<div id="hr0_v"></div>
|
||||
h
|
||||
</li>
|
||||
<li>
|
||||
<div id="h1_v"></div>
|
||||
h /
|
||||
<div id="hr1_v"></div>
|
||||
h
|
||||
</li>
|
||||
<li>
|
||||
<div id="h3_v"></div>
|
||||
h /
|
||||
<div id="hr3_v"></div>
|
||||
h
|
||||
</li>
|
||||
</ul>
|
||||
<p><small>total / resetable</small></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>Device temperatures<a class="cfg" onclick="open_modal(2);"><img src="../files/settings.svg"></a></h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>LEDs board top</li>
|
||||
<li>LEDs board bottom</li>
|
||||
<li>Base</li>
|
||||
<li>Red/Amber leds</li>
|
||||
<li>Green/Yellow leds</li>
|
||||
<li>Blue led</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="t0_v"></div>
|
||||
°
|
||||
<div class="tu" id="tu_v"></div>
|
||||
/
|
||||
<div id="tm0_v"></div>
|
||||
°
|
||||
<div class="tu" id="tu_v"></div>
|
||||
/
|
||||
<div id="tmr0_v"></div>
|
||||
°
|
||||
<div class="tu" id="tu_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="t3_v"></div>
|
||||
°
|
||||
<div class="tu" id="tu_v"></div>
|
||||
/
|
||||
<div id="tm3_v"></div>
|
||||
°
|
||||
<div class="tu" id="tu_v"></div>
|
||||
/
|
||||
<div id="tmr3_v"></div>
|
||||
°
|
||||
<div class="tu" id="tu_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="t2_v"></div>
|
||||
°
|
||||
<div class="tu" id="tu_v"></div>
|
||||
/
|
||||
<div id="tm2_v"></div>
|
||||
°
|
||||
<div class="tu" id="tu_v"></div>
|
||||
/
|
||||
<div id="tmr2_v"></div>
|
||||
°
|
||||
<div class="tu" id="tu_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="lt0_v"></div>
|
||||
°
|
||||
<div class="tu" id="tu_v"></div>
|
||||
/
|
||||
<div id="ltm0_v"></div>
|
||||
°
|
||||
<div class="tu" id="tu_v"></div>
|
||||
/
|
||||
<div id="ltmr0_v"></div>
|
||||
°
|
||||
<div class="tu" id="tu_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="lt1_v"></div>
|
||||
°
|
||||
<div class="tu" id="tu_v"></div>
|
||||
/
|
||||
<div id="ltm1_v"></div>
|
||||
°
|
||||
<div class="tu" id="tu_v"></div>
|
||||
/
|
||||
<div id="ltmr1_v"></div>
|
||||
°
|
||||
<div class="tu" id="tu_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="lt2_v"></div>
|
||||
°
|
||||
<div class="tu" id="tu_v"></div>
|
||||
/
|
||||
<div id="ltm2_v"></div>
|
||||
°
|
||||
<div class="tu" id="tu_v"></div>
|
||||
/
|
||||
<div id="ltmr2_v"></div>
|
||||
°
|
||||
<div class="tu" id="tu_v"></div>
|
||||
</li>
|
||||
</ul>
|
||||
<p><small>current / maximum / resetable</small></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>Wireless state<a class="cfg" onclick="open_modal(3);"><img src="../files/settings.svg"></a></h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>State</li>
|
||||
<li>Signal strength</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="lwc_v">not installed</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="lws_v">...</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>Software versions</h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>Display System</li>
|
||||
<li>Module M</li>
|
||||
<li>Module L1</li>
|
||||
<li>Module L2</li>
|
||||
<li>Module L3</li>
|
||||
<li>Module O</li>
|
||||
<li>Module F-A</li>
|
||||
<li>Module SC</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="sw_vers">
|
||||
<li>2.2</li>
|
||||
<li>1.3</li>
|
||||
<li>2.0</li>
|
||||
<li>1.4</li>
|
||||
<li>1.4</li>
|
||||
<li>2.3</li>
|
||||
<li>1.1</li>
|
||||
<li>1.1</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 box-c">
|
||||
<h2 id="sta_err">Status messages</h2>
|
||||
<div class="box">
|
||||
<li> This is a simulated REAP™ page for demo purposes. Some content might be different on real fixtures.</li>
|
||||
<li>Big thanks to Vincent BOUQUET for creating this simulator.</li>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="cfg-modal" class="modal fade" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<img src="../files/settings.svg">
|
||||
<h5 class="modal-title" id="m-t"></h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
</div>
|
||||
<div class="modal-body" id="m-b"></div>
|
||||
<div class="modal-footer" id="m-f"><button type="button" class="btn btn-primary sb">Save</button></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
var a_m = -1;
|
||||
var m_t = ['DMX/RDM settings', 'Reset timers', 'Reset temperatures', 'Wireless settings', ];
|
||||
|
||||
function open_modal(i) {
|
||||
a_m = i;
|
||||
if (a_m < m_t.length) {
|
||||
$('#m-t').html(m_t[a_m])
|
||||
}
|
||||
$('.sb').unbind();
|
||||
$('#m-f').empty();
|
||||
$('#m-f').append('<button type="button" class="btn btn-primary sb">Save</button>');
|
||||
if (a_m == 0) $('#m-f').show();
|
||||
else $('#m-f').hide();
|
||||
var h = '';
|
||||
if (a_m == 0) {
|
||||
h += c_txt('dmxa', 'DMX address', 'Please put DMX address from 1 to 512');
|
||||
h += c_opt('dmxp', 'DMX preset', [3], 'Mode ', 0, 1, '');
|
||||
h += c_opt('dmxi', 'DMX input', ['wired', 'wireless', 'wireless XLR out'], '', 0, 1, 'Can not set wireless input now!');
|
||||
h += c_txt('rdmn', 'RDM label', 'Please insert label,max 32 characters')
|
||||
} else if (a_m == 1) {
|
||||
h += c_btn('Power on time reset', 0, ' rh');
|
||||
h += c_btn('LEDs on time reset', 1, ' rh')
|
||||
h += c_btn('Air filters reset', 3, ' rh')
|
||||
} else if (a_m == 2) {
|
||||
h += c_btn('Led board top temperature reset', 0, ' rt');
|
||||
h += c_btn('Led board bottom temperature reset', 3, ' rt');
|
||||
h += c_btn('Base temperature reset', 2, ' rt');
|
||||
h += c_btn('Red/Amber temperature reset', 0, ' rlt');
|
||||
h += c_btn('Green/Yellow temperature reset', 1, ' rlt');
|
||||
h += c_btn('Blue temperature reset', 2, ' rlt')
|
||||
} else if (a_m == 3) {
|
||||
h += c_btn('Unlink Wireless module', 0, ' lwu')
|
||||
}
|
||||
$('#m-b').html(h);
|
||||
copy_form_values(1);
|
||||
$('#cfg-modal').modal();
|
||||
$('.sb').bind('click', function() {
|
||||
loader(1);
|
||||
var par = ['dmxa', 'dmxp', 'dmxi', 'rdmn'];
|
||||
do_ajax('/set_dmx', serialize_parameters(par))
|
||||
});
|
||||
$('.rh').bind('click', function() {
|
||||
loader(1);
|
||||
do_ajax('/reset_hours', "rh=" + this.value)
|
||||
});
|
||||
$('.rt').bind('click', function() {
|
||||
loader(1);
|
||||
do_ajax('/reset_temps', "rt=" + this.value)
|
||||
});
|
||||
$('.rlt').bind('click', function() {
|
||||
loader(1);
|
||||
do_ajax('/ltemps', "rlt=" + this.value)
|
||||
});
|
||||
$('.lwu').bind('click', function() {
|
||||
// on unlink wireless module
|
||||
loader(1)
|
||||
close_modal()
|
||||
|
||||
})
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
412
t1/logs.html
Normal file
412
t1/logs.html
Normal file
@@ -0,0 +1,412 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
|
||||
<link rel="stylesheet" href="../files/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="../files/layout.css">
|
||||
<script src="../files/jquery-3.3.1.min.js"></script>
|
||||
<script src="../files/popper.min.js"></script>
|
||||
<script src="../files/bootstrap.min.js"></script>
|
||||
<script src="base.js"></script>
|
||||
<title id="pt_v">Robin T1 Wash</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<nav class="navbar fixed-top navbar-expand-md navbar-dark bg-dark">
|
||||
<div class="container"><a class="navbar-brand" href="./index.html"><img
|
||||
src="../files/robe_logo_white.svg"></a><button class="navbar-toggler" type="button"
|
||||
data-toggle="collapse" data-target="#navbar"><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="collapse navbar-collapse" id="navbar">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li class="nav-item"><a class="nav-link" href="./index.html">Status</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="./personality.html">Personality</a></li>
|
||||
<li class="nav-item active"><a class="nav-link" href="./logs.html">Logs</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="./discovery.html">Discovery</a>
|
||||
</li>
|
||||
<li class="nav-item"><a class="nav-link" id="scfg">Settings</a></li>
|
||||
<li class="nav-item"><a class="nav-link" id="idnt"><img class="rdmi" src="../files/identify.svg"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="fixed-top text-center device-label" id="pth">Robin T1 Wash</div>
|
||||
<div class="container in">
|
||||
<h1>Device logs</h1>
|
||||
<div class="row" id="boxes">
|
||||
<div class="col-12 box-c">
|
||||
<h2 id="sta_err"><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse"
|
||||
data-target="#lfb"><i class="blue"></i></button> Logs filter<a class="cfg"
|
||||
onclick="cfgm();"><img src="../files/settings.svg"></a></h2>
|
||||
<div class="box collapse clearfix" id="lfb">
|
||||
<h3><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse"
|
||||
data-target="#f_me"><i></i></button> Mechanical errors<div class="fall"><input
|
||||
type="checkbox" id="f_me_p"> all must pass</div>
|
||||
</h3>
|
||||
<div class="collapse" id="f_me">
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_0" value="0"><label class="form-check-label" for="fe_0">Pan error</label></div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_1" value="1"><label class="form-check-label" for="fe_1">Tilt error</label></div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_2" value="2"><label class="form-check-label" for="fe_2">Focus error</label></div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_3" value="3"><label class="form-check-label" for="fe_3">Zoom error</label></div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_4" value="4"><label class="form-check-label" for="fe_4">BD. Rotation
|
||||
error</label></div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_5" value="5"><label class="form-check-label" for="fe_5">BD. 1 error</label></div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_6" value="6"><label class="form-check-label" for="fe_6">BD. 2 error</label></div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_7" value="7"><label class="form-check-label" for="fe_7">BD. 3 error</label></div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_8" value="8"><label class="form-check-label" for="fe_8">BD. 4 error</label></div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_9" value="9"><label class="form-check-label" for="fe_9">Scrim error</label></div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_10" value="10"><label class="form-check-label" for="fe_10">Scrim Rot.
|
||||
error</label></div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_11" value="11"><label class="form-check-label" for="fe_11">Frost 1 error</label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_12" value="12"><label class="form-check-label" for="fe_12">Frost 2 error</label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_13" value="13"><label class="form-check-label" for="fe_13">Leds error</label>
|
||||
</div>
|
||||
</div>
|
||||
<h3><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse"
|
||||
data-target="#f_se"><i></i></button> System errors<div class="fall"><input type="checkbox"
|
||||
id="f_se_p"> all must pass</div>
|
||||
</h3>
|
||||
<div class="collapse" id="f_se">
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_14" value="0"><label class="form-check-label" for="fe_14">Fans failure</label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_15" value="2"><label class="form-check-label" for="fe_15">Powerdown mode</label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_16" value="6"><label class="form-check-label" for="fe_16">Temperature sensor
|
||||
error</label></div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_17" value="8"><label class="form-check-label" for="fe_17">Eeprom error</label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_18" value="9"><label class="form-check-label" for="fe_18">Recharge the
|
||||
battery</label></div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_19" value="10"><label class="form-check-label" for="fe_19">Battery faulty.
|
||||
replace it</label></div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_20" value="11"><label class="form-check-label" for="fe_20">Pan/tilt EMS cal.
|
||||
error</label></div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_21" value="12"><label class="form-check-label" for="fe_21">Pan/tilt EMS
|
||||
error</label></div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_22" value="13"><label class="form-check-label" for="fe_22">Internal error
|
||||
1</label></div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_23" value="14"><label class="form-check-label" for="fe_23">Internal error
|
||||
2</label></div>
|
||||
</div>
|
||||
<h3><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse"
|
||||
data-target="#f_sst"><i></i></button> Statuses<div class="fall"><input type="checkbox"
|
||||
id="f_sst_p"> all must pass</div>
|
||||
</h3>
|
||||
<div class="collapse" id="f_sst">
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_24" value="0"><label class="form-check-label" for="fe_24">Power on</label></div>
|
||||
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
|
||||
id="fe_25" value="3"><label class="form-check-label" for="fe_25">Power off</label></div>
|
||||
</div>
|
||||
<h3><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse"
|
||||
data-target="#f_te"><i></i></button> Temperatures<div class="fall"><input type="checkbox"
|
||||
id="f_te_p"> all must pass</div>
|
||||
</h3>
|
||||
<div class="collapse" id="f_te">
|
||||
<div class="form-row">
|
||||
<div class="form-group col-auto"><label class="col-form-label" id="tl0" for="fts0">LEDs
|
||||
board 1</label></div>
|
||||
<div class="form-group col-auto"><select class="form-control" id="fts0">
|
||||
<option value="0">-</option>
|
||||
<option value="1"><=</option>
|
||||
<option value="2">>=</option>
|
||||
</select></div>
|
||||
<div class="form-group col-auto"><input type="text" class="form-control" size="5" id="ftv0">
|
||||
</div>
|
||||
<div class="form-group col-auto"><label class="col-form-label" for="ftv0">°<span
|
||||
class="tu" id="tu_v">C</span></label></div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-auto"><label class="col-form-label" id="tl1"
|
||||
for="fts1">Ambient</label></div>
|
||||
<div class="form-group col-auto"><select class="form-control" id="fts1">
|
||||
<option value="0">-</option>
|
||||
<option value="1"><=</option>
|
||||
<option value="2">>=</option>
|
||||
</select></div>
|
||||
<div class="form-group col-auto"><input type="text" class="form-control" size="5" id="ftv1">
|
||||
</div>
|
||||
<div class="form-group col-auto"><label class="col-form-label" for="ftv1">°<span
|
||||
class="tu" id="tu_v">C</span></label></div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-auto"><label class="col-form-label" id="tl2"
|
||||
for="fts2">Base</label></div>
|
||||
<div class="form-group col-auto"><select class="form-control" id="fts2">
|
||||
<option value="0">-</option>
|
||||
<option value="1"><=</option>
|
||||
<option value="2">>=</option>
|
||||
</select></div>
|
||||
<div class="form-group col-auto"><input type="text" class="form-control" size="5" id="ftv2">
|
||||
</div>
|
||||
<div class="form-group col-auto"><label class="col-form-label" for="ftv2">°<span
|
||||
class="tu" id="tu_v">C</span></label></div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-auto"><label class="col-form-label" id="tl3" for="fts3">LEDs
|
||||
board 2</label></div>
|
||||
<div class="form-group col-auto"><select class="form-control" id="fts3">
|
||||
<option value="0">-</option>
|
||||
<option value="1"><=</option>
|
||||
<option value="2">>=</option>
|
||||
</select></div>
|
||||
<div class="form-group col-auto"><input type="text" class="form-control" size="5" id="ftv3">
|
||||
</div>
|
||||
<div class="form-group col-auto"><label class="col-form-label" for="ftv3">°<span
|
||||
class="tu" id="tu_v">C</span></label></div>
|
||||
</div>
|
||||
</div>
|
||||
<h3><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse"
|
||||
data-target="#f_dt"><i></i></button> Start date/time</h3>
|
||||
<div class="collapse" id="f_dt">
|
||||
<div class="form-row">
|
||||
<div class="form-group col-auto"><label for="fsd" class="col-form-label">Date</label></div>
|
||||
<div class="form-group col-auto"><input type="date" class="form-control" id="fsd" step="1">
|
||||
</div>
|
||||
<div class="form-group col-auto"><label for="fst" class="col-form-label">Time</label></div>
|
||||
<div class="form-group col-auto"><input type="time" class="form-control" id="fst" step="1">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h3><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse"
|
||||
data-target="#f_cfg"><i></i></button> Sorting,filter pass</h3>
|
||||
<div class="collapse" id="f_cfg">
|
||||
<div class="form-row">
|
||||
<div class="form-group col-auto"><label class="col-form-label" for="fso">Sorting</label>
|
||||
</div>
|
||||
<div class="form-group col-auto"><select class="form-control" id="fso">
|
||||
<option value="0">descending</option>
|
||||
<option value="1">ascending</option>
|
||||
</select></div>
|
||||
<div class="form-group col-auto"><label class="col-form-label" for="fpas">Filter
|
||||
pass</label></div>
|
||||
<div class="form-group col-auto"><select class="form-control" id="fpas">
|
||||
<option value="0">single groups</option>
|
||||
<option value="1">all groups</option>
|
||||
</select></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ferr"></div>
|
||||
<div class="float-right"><button type="button" class="btn btn-primary mr06" id="fap">Apply
|
||||
filter</button><button type="button" class="btn btn-primary" id="fcl">Clear filter</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" id="logs">
|
||||
<div class="col-md-6 box-c log">
|
||||
<h2>Log 13.05.2022 11:07:53</h2>
|
||||
<div class="box">
|
||||
<div class="lse">
|
||||
<h3>Statuses</h3>Power Off
|
||||
</div>
|
||||
<div>
|
||||
<h3>Temperatures</h3>
|
||||
<ul class="group">
|
||||
<li>LEDs board 1</li>
|
||||
<li class="">Ambient</li>
|
||||
<li>Base</li>
|
||||
<li>LEDs board 2</li>
|
||||
</ul>
|
||||
<ul class="group vals">
|
||||
<li class="">31°C</li>
|
||||
<li class="">25°C</li>
|
||||
<li class="">27°C</li>
|
||||
<li class="">32°C</li>
|
||||
</ul>
|
||||
<h3>Display orientation</h3>Side Bottom
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 box-c log">
|
||||
<h2>Log 13.05.2022 11:08:41</h2>
|
||||
<div class="box">
|
||||
<div class="lse">
|
||||
<h3>Statuses</h3>Power On
|
||||
</div>
|
||||
<div>
|
||||
<h3>Temperatures</h3>
|
||||
<ul class="group">
|
||||
<li class="">LEDs board 1</li>
|
||||
<li class="">Ambient</li>
|
||||
<li>Base</li>
|
||||
<li class="">LEDs board 2</li>
|
||||
</ul>
|
||||
<ul class="group vals">
|
||||
<li class="">27°C</li>
|
||||
<li class="">31°C</li>
|
||||
<li class="">25°C</li>
|
||||
<li class="">28°C</li>
|
||||
</ul>
|
||||
<h3>Display orientation</h3>Side Bottom
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 box-c log">
|
||||
<h2>Log 13.05.2022 11:08:46</h2>
|
||||
<div class="box">
|
||||
<div>
|
||||
<h3>Temperatures</h3>
|
||||
<ul class="group">
|
||||
<li class="">LEDs board 1</li>
|
||||
<li class="">Ambient</li>
|
||||
<li>Base</li>
|
||||
<li class="">LEDs board 2</li>
|
||||
</ul>
|
||||
<ul class="group vals">
|
||||
<li class="">31°C</li>
|
||||
<li class="">35°C</li>
|
||||
<li class="">26°C</li>
|
||||
<li class="">24°C</li>
|
||||
</ul>
|
||||
<h3>Display orientation</h3>Side Bottom
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 box-c log">
|
||||
<h2>Log 13.05.2022 11:04:49</h2>
|
||||
<div class="box">
|
||||
<div>
|
||||
<h3>Temperatures</h3>
|
||||
<ul class="group">
|
||||
<li class="">LEDs board 1</li>
|
||||
<li class="">Ambient</li>
|
||||
<li>Base</li>
|
||||
<li class="">LEDs board 2</li>
|
||||
</ul>
|
||||
<ul class="group vals">
|
||||
<li class="">29°C</li>
|
||||
<li class="">22°C</li>
|
||||
<li class="">22°C</li>
|
||||
<li class="">35°C</li>
|
||||
</ul>
|
||||
<h3>Display orientation</h3>Side Bottom
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center" id="nxtl"><button class="btn btn-primary nlb"><strong>+</strong></button></div>
|
||||
</div>
|
||||
<div id="cfg-modal" class="modal fade" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header"><img src="../files/settings.svg">
|
||||
<h5 class="modal-title" id="m-t"></h5><button type="button" class="close" data-dismiss="modal"
|
||||
aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
</div>
|
||||
<div class="modal-body" id="m-b"></div>
|
||||
<div class="modal-footer" id="m-f"><button type="button" class="btn btn-primary sb">Save</button></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
var lfn = 'data';
|
||||
|
||||
// CREATES MODAL FOR LOG TOOLS
|
||||
function cfgm() {
|
||||
$('#m-t').html('Logs tools');
|
||||
$('#m-f').empty();
|
||||
$('.sb').unbind();
|
||||
var tl = c_btn('Download log file', 0, ' dlog');
|
||||
tl += c_btn('Start DMX sniff', 0, ' ddmx');
|
||||
$('#m-b').html(tl);
|
||||
$('#cfg-modal').modal();
|
||||
$('.dlog').bind('click', function () {
|
||||
close_modal()
|
||||
});
|
||||
$('.ddmx').bind('click', function () {
|
||||
close_modal()
|
||||
})
|
||||
}
|
||||
|
||||
function lfix(l) {
|
||||
return l.charAt(0).toUpperCase() + l.slice(1).toLowerCase().replace('ems', 'EMS')
|
||||
}
|
||||
|
||||
function c_chb(id, t, v, ch) {
|
||||
var html =
|
||||
'<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input" id="' + id +
|
||||
'" value="' + v + '"' + ch + '>';
|
||||
html += '<label class="form-check-label" for="' + id + '">' + t + '</label></div>';
|
||||
return html
|
||||
}
|
||||
|
||||
function c_tit(id, t, e, c, p) {
|
||||
var html =
|
||||
'<h3><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse" data-target="#' + id +
|
||||
'"><i></i></button>';
|
||||
html += ' ' + t;
|
||||
if (p) html += '<div class="fall"><input type="checkbox" id="' + id + '_p"> all must pass</div>';
|
||||
html += '</h3>';
|
||||
html += '<div class="collapse' + c + '" id="' + id + '">';
|
||||
if (e) html += '</div>';
|
||||
return html
|
||||
}
|
||||
|
||||
function c_ftmp(i, t) {
|
||||
var html = '';
|
||||
html += '<div class="form-row">';
|
||||
html += '<div class="form-group col-auto"><label class="col-form-label" id="tl' + i + '" for="fts' + i +
|
||||
'">' + t + '</label></div>';
|
||||
html += '<div class="form-group col-auto"><select class="form-control" id="fts' + i + '">';
|
||||
html += '<option value="0">-</option><option value="1"><=</option><option value="2">>=</option>';
|
||||
html += '</select></div>';
|
||||
html += '<div class="form-group col-auto"><input type="text" class="form-control" size="5" id="ftv' + i +
|
||||
'"></div>';
|
||||
html += '<div class="form-group col-auto"><label class="col-form-label" for="ftv' + i +
|
||||
'">°<span class="tu" id="tu_v"></span></label></div>';
|
||||
html += '</div>';
|
||||
return html
|
||||
}
|
||||
|
||||
function c_dt(n, t, e, c, it) {
|
||||
var html = '<div class="form-group' + c + '">';
|
||||
html += '<label for="' + n + '" class="col-form-label">' + t + '</label>';
|
||||
html += '</div><div class="form-group' + c + '">';
|
||||
html += '<input type="' + it + '" class="form-control" id="' + n + '" step="1">';
|
||||
html += e.length > 0 ? '<div class="invalid-feedback">' + e + '</div>' : '';
|
||||
html += '</div>';
|
||||
return html
|
||||
}
|
||||
|
||||
function c_sil(id, t, o) {
|
||||
var html = '<div class="form-group col-auto"><label class="col-form-label" for="' + id + '">' + t +
|
||||
'</label></div>';
|
||||
html += '<div class="form-group col-auto"><select class="form-control" id="' + id + '">';
|
||||
for (i = 0; i < o.length; i++) {
|
||||
html += '<option value="' + i + '">' + o[i] + '</option>'
|
||||
}
|
||||
html += '</select></div>';
|
||||
return html
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
465
t1/personality.html
Normal file
465
t1/personality.html
Normal file
@@ -0,0 +1,465 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
|
||||
<link rel="stylesheet" href="../files/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="../files/layout.css">
|
||||
<script src="../files/jquery-3.3.1.min.js"></script>
|
||||
<script src="../files/popper.min.js"></script>
|
||||
<script src="../files/bootstrap.min.js"></script>
|
||||
<script src="base.js"></script>
|
||||
<title id="pt_v">Robin T1 Wash</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<nav class="navbar fixed-top navbar-expand-md navbar-dark bg-dark">
|
||||
<div class="container"><a class="navbar-brand" href="./index.html"><img
|
||||
src="../files/robe_logo_white.svg"></a><button class="navbar-toggler" type="button"
|
||||
data-toggle="collapse" data-target="#navbar"><span class="navbar-toggler-icon"></span></button>
|
||||
<div class="collapse navbar-collapse" id="navbar">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li class="nav-item"><a class="nav-link" href="./index.html">Status</a></li>
|
||||
<li class="nav-item active"><a class="nav-link" href="./personality.html">Personality</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="./logs.html">Logs</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="./discovery.html">Discovery</a>
|
||||
</li>
|
||||
<li class="nav-item"><a class="nav-link" id="scfg">Settings</a></li>
|
||||
<li class="nav-item"><a class="nav-link" id="idnt"><img class="rdmi" src="../files/identify.svg"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="fixed-top text-center device-label" id="pth">Robin T1 Wash</div>
|
||||
<div class="container in">
|
||||
<h1>Personality</h1>
|
||||
<div class="row" id="boxes">
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>DMX/RDM settings<a class="cfg" onclick="open_modal(0);"><img
|
||||
src="../files/settings.svg"></a></h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>DMX address</li>
|
||||
<li>DMX preset</li>
|
||||
<li>DMX input</li>
|
||||
<li>RDM label</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="dmxa_v">1</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="dmxp_v">Mode 3</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="dmxi_v">wired</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="rdmn_v">Robin T1 Wash</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>Ethernet settings<a class="cfg" onclick="open_modal(1);"><img
|
||||
src="../files/settings.svg"></a></h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>Ethernet mode</li>
|
||||
<li>Ethernet to DMX</li>
|
||||
<li>ArtNet universe</li>
|
||||
<li>MANet I/II universe</li>
|
||||
<li>MaNet session ID</li>
|
||||
<li>sACN universe</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="emod_v">disable</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="ee2d_v">off</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="eanu_v">0</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="emau_v">1</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="emas_v">1</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="esau_v">1</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>Pan/Tilt settings<a class="cfg" onclick="open_modal(2);"><img
|
||||
src="../files/settings.svg"></a></h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>Pan reverse</li>
|
||||
<li>Tilt reverse</li>
|
||||
<li>Pan/Tilt feedback</li>
|
||||
<li>Pan/Tilt mode</li>
|
||||
<li>Pan/Tilt EMS</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="pr_v">off</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="tr_v">off</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="ptf_v">on</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="ptm_v">speed</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="pte_v">on</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>Blackout settings<a class="cfg" onclick="open_modal(3);"><img
|
||||
src="../files/settings.svg"></a></h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>Blackout DMC</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="bldmc_v">off</div>
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Active blackout while</h3>
|
||||
<ul class="group">
|
||||
<li>Pan/Tilt moving</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="blptm_v">off</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>Screen settings<a class="cfg" onclick="open_modal(4);"><img
|
||||
src="../files/settings.svg"></a></h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>Display intensity</li>
|
||||
<li>Screensaver delay</li>
|
||||
<li>Touchscreen lock</li>
|
||||
<li>Display orientation</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="dint_v">10</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="dsd_v">5 min</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="dtl_v">off</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="dor_v">auto</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>Color settings<a class="cfg" onclick="open_modal(7);"><img
|
||||
src="../files/settings.svg"></a></h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>Colour calibration mode</li>
|
||||
<li>Colour mixing mode</li>
|
||||
<li>Chromatic white</li>
|
||||
<li>Thungsten effect simulation</li>
|
||||
<li>Dimmer curve</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="ccalm_v">on</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="cmixm_v">cmy</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="chrwh_v">off</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="thefs_v">off</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="cdimc_v">square law</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>Date & time settings<a class="cfg" onclick="open_modal(5);"><img
|
||||
src="../files/settings.svg"></a></h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>Date</li>
|
||||
<li>Time</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="dtd_v">13</div>.<div id="dtmo_v">05</div>.<div id="dty_v">2022</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="dth_v">11</div>:<div id="dtmi_v">09</div>:<div id="dts_v">21</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>Other settings<a class="cfg" onclick="open_modal(6);"><img
|
||||
src="../files/settings.svg"></a></h2>
|
||||
<div class="box">
|
||||
<ul class="group">
|
||||
<li>Microphone sensitivity</li>
|
||||
<li>Theatre mode</li>
|
||||
<li>Frequency (Hz)</li>
|
||||
<li>Fan mode</li>
|
||||
<li>Temperature unit</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="mics_v">10</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="them_v">off</div>
|
||||
<div id="themq" class="pl03 dn" style="display: none;">(<div id="fannl_v">0</div>%)</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="frqs_v">600.0000</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="fanm_v">auto</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="tmpu_v">°C</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="cfg-modal" class="modal fade" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header"><img src="../files/settings.svg">
|
||||
<h5 class="modal-title" id="m-t"></h5><button type="button" class="close" data-dismiss="modal"
|
||||
aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
</div>
|
||||
<div class="modal-body" id="m-b"></div>
|
||||
<div class="modal-footer" id="m-f"><button type="button" class="btn btn-primary sb">Save</button></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
var a_m = -1;
|
||||
var m_t = ['DMX/RDM settings', 'Ethernet settings', 'Pan/Tilt settings', 'Blackout settings', 'Screen settings',
|
||||
'Date & time settings', 'Other settings', 'Color settings', 'Lamp settings',
|
||||
];
|
||||
var addrs = ['set_dmx', 'eth_s', 'pt_s', 'bl_s', 'dis_s', 'ldt_s', 'oth_s', 'col_s', 'lamp_s', ];
|
||||
var params = [
|
||||
['dmxa', 'dmxp', 'dmxi', 'rdmn'],
|
||||
['emod', 'ee2d', 'eanu', 'emau', 'emas', 'esau'],
|
||||
['pr', 'tr', 'ptf', 'ptm', 'pte'],
|
||||
['bldmc', 'blptm', 'blprm', 'blgwm', 'bltim'],
|
||||
['dint', 'dsd', 'dtl', 'dor'],
|
||||
['dtd', 'dtmo', 'dty', 'dth', 'dtmi', 'dts'],
|
||||
['mics', 'fanm', 'tmpu', 'them', 'cpm', 'fannl', 'fsmo', 'btns', 'freq', 'freqa'],
|
||||
['ccri', 'cdimc', 'hpwrm', 'ccalm', 'cmixm', 'chrwh', 'thefs', 'whip83z'],
|
||||
['lonof', 'lpwr', 'ligde', 'llise', 'lonpon', 'lofvd', 'londp', 'lofdm'],
|
||||
];
|
||||
var frq = 0;
|
||||
|
||||
function open_modal(i) {
|
||||
a_m = i;
|
||||
if (a_m < m_t.length) {
|
||||
$('#m-t').html(m_t[a_m])
|
||||
}
|
||||
$('.sb').unbind();
|
||||
$('#m-f').empty();
|
||||
$('#m-f').append('<button type="button" class="btn btn-primary sb">Save</button>');
|
||||
var off_on_l = ['off', 'on'];
|
||||
var h = '';
|
||||
if (a_m == 0) {
|
||||
h += c_txt('dmxa', 'DMX address', 'Please put DMX address from 1 to 512');
|
||||
h += c_opt('dmxp', 'DMX preset', [3], 'Mode ', 0, 1, '');
|
||||
h += c_opt('dmxi', 'DMX input', ['wired', 'wireless', 'wireless XLR out'], '', 0, 1,
|
||||
'Can not set wireless input now!');
|
||||
h += c_txt('rdmn', 'RDM label', 'Please insert label,max 32 characters')
|
||||
} else if (a_m == 1) {
|
||||
h += c_rad('emod', 'Ethernet mode', ['disable', 'ArtNet', 'gMA1', 'gMA2', 'sACN'], '', '');
|
||||
h += c_rad('ee2d', 'Ethernet to DMX', off_on_l, '', '');
|
||||
h += c_txt('eanu', 'ArtNet universe', 'Please put ArtNet universe from 0 to 255');
|
||||
h += c_txt('emau', 'MANet I/II universe',
|
||||
'Please put MANet I/II universe from 1 to 256 (64 for MANet I)');
|
||||
h += c_txt('emas', 'MANet session ID', 'Please put MANet session ID from 1 to 32');
|
||||
h += c_txt('esau', 'sACN universe', 'Please put sACN universe from 1 to 32000')
|
||||
} else if (a_m == 2) {
|
||||
h += '<div class="row">';
|
||||
h += c_rad('pr', 'Pan reverse', off_on_l, '', ' col-6');
|
||||
h += c_rad('tr', 'Tilt reverse', off_on_l, '', ' col-6');
|
||||
h += c_rad('ptf', 'Pan/Tilt feedback', off_on_l, '', ' col-6');
|
||||
h += c_rad('ptm', 'Pan/Tilt Mode', ['speed', 'time'], '', ' col-6');
|
||||
h += c_rad('pte', 'Pan/Titl EMS', off_on_l, '', ' col-6');
|
||||
h += '</div>'
|
||||
} else if (a_m == 3) {
|
||||
h += c_rad('bldmc', 'Blackout DMC', off_on_l, '', '');
|
||||
h += '<h3>Active blackout while</h3>';
|
||||
h += c_rad('blptm', 'Pan/Tilt moving', off_on_l, '', '')
|
||||
} else if (a_m == 4) {
|
||||
h += c_opt('dint', 'Display intensity', [10], '', 0, 1, '');
|
||||
var dsd_dtl_l = ['off', '1 min', '2 min', '3 min', '4 min', '5 min', '6 min', '7 min', '8 min', '9 min',
|
||||
'10 min'
|
||||
];
|
||||
h += c_opt('dsd', 'Screensaver delay', dsd_dtl_l, '', 0, 0, '');
|
||||
h += c_opt('dtl', 'Touchscreen lock', dsd_dtl_l, '', 0, 0, '');
|
||||
h += c_rad('dor', 'Display orientation', ['normal', 'inverted', 'auto'], '')
|
||||
} else if (a_m == 5) {
|
||||
h += '<div class="row">';
|
||||
h += c_txt('dtd', 'Day', '', ' col-4');
|
||||
h += c_txt('dtmo', 'Month', '', ' col-4');
|
||||
h += c_txt('dty', 'Year', '', ' col-4');
|
||||
h += c_txt('dth', 'Hour', '', ' col-4');
|
||||
h += c_txt('dtmi', 'Minute', '', ' col-4');
|
||||
h += c_txt('dts', 'Second', '', ' col-4');
|
||||
h += '</div>';
|
||||
h += '<button class="btn btn-primary btn-block uldt">Use local date & time</button>'
|
||||
} else if (a_m == 6) {
|
||||
h += c_opt('mics', 'Microphone sensitivity', [20], '', 0, 1, '');
|
||||
h += c_rad('them', 'Theatre mode', ['off', 'quiet'], '', '');
|
||||
h += '<div class="form-group" id="fannl_fg">';
|
||||
h += '<label for="fannl" class="col-form-label">Fan noise level</label>';
|
||||
h += '<div class="row">';
|
||||
h +=
|
||||
'<div class="col-9 col-sm-10"><input type="range" min="0" max="100" class="form-control" id="fannl"></div>';
|
||||
h += '<div class="col-3 col-sm-2 mt06 text-right">100%</div>';
|
||||
h += '</div>';
|
||||
h += '</div>';
|
||||
h += c_rad('frqs', 'Frequency setup (Hz)', ['300', '600', '1200', '2400'], '', '');
|
||||
h += '<div class="form-group">';
|
||||
h += '<label for="frqa" class="col-form-label">Frequency Adjust</label>';
|
||||
h += '<div class="row">';
|
||||
h +=
|
||||
'<div class="col-7 col-sm-8"><input type="range" min="0" max="1663" class="form-control" id="frqa"></div>';
|
||||
h += '<div class="col-5 col-sm-4 mt06 text-right" id="frq_bv"></div>';
|
||||
h += '</div>';
|
||||
h += '</div>';
|
||||
h += c_rad('fanm', 'Fan mode', ['auto', 'high'], '', '');
|
||||
h += c_rad('tmpu', 'Temperature unit', ['°C', '°F'], '', '')
|
||||
} else if (a_m == 7) {
|
||||
h += '<div class="row">';
|
||||
h += c_rad('ccalm', 'Colour calibration mode', off_on_l, '', ' col-6');
|
||||
h += c_rad('cmixm', 'Colour mixing mode', ['rgb', 'cmy'], '', ' col-6');
|
||||
h += c_rad('chrwh', 'Chromatic white', off_on_l, '', ' col-12');
|
||||
h += c_rad('thefs', 'Thungsten effect simulation', ['off', '750 W', '1000 W', '1200 W', '2000 W',
|
||||
'2500 W'
|
||||
], '', ' col-12');
|
||||
h += c_rad('cdimc', 'Dimmer curve', ['linear', 'square law'], '', ' col-6')
|
||||
} else if (a_m == 8) {
|
||||
h += c_rad('lonof', 'Lamp status', off_on_l, '', '');
|
||||
h += '<div class="form-group" id="ligde_fg">';
|
||||
h += '<label for="ligde" class="col-form-label">Lamp ignition delay</label>';
|
||||
h += '<div class="row">';
|
||||
h +=
|
||||
'<div class="col-9 col-sm-10"><input type="range" min="0" max="90" class="form-control" id="ligde"></div>';
|
||||
h += '<div class="col-3 col-sm-2 mt06 text-right"></div>';
|
||||
h += '</div>';
|
||||
h += '</div>';
|
||||
h += '<div class="row">';
|
||||
h += c_rad('llise', 'Lamp light sensor', off_on_l, '', ' col-6');
|
||||
h += c_rad('lonpon', 'Lamp on power on', off_on_l, '', ' col-6');
|
||||
h += c_rad('lofvd', 'Lamp off via DMX', off_on_l, '', ' col-6');
|
||||
h += c_rad('londp', 'Lamp on if DMX present', off_on_l, '', ' col-6');
|
||||
h += c_rad('lofdm', 'Lamp off if DMX missing', off_on_l, '', ' col-6');
|
||||
h += '</div>'
|
||||
}
|
||||
$('#m-b').html(h);
|
||||
$('#m-f').show();
|
||||
copy_form_values(1);
|
||||
if (a_m == 8) {
|
||||
if ($('#ligde_v').html() == 'off') {
|
||||
$('#ligde').val(0)
|
||||
}
|
||||
}
|
||||
$('#cfg-modal').modal();
|
||||
$('.sb').bind('click', function () {
|
||||
loader(1);
|
||||
var p_add = '';
|
||||
if (a_m == 6) {
|
||||
p_add = '&frq=' + frq
|
||||
}
|
||||
do_ajax(addrs[a_m], serialize_parameters(params[a_m]) + p_add)
|
||||
});
|
||||
if (a_m == 5) {
|
||||
$('.uldt').bind('click', function () {
|
||||
var date = new Date();
|
||||
$('#dtd').val(date.getDate());
|
||||
$('#dtmo').val(date.getMonth() + 1);
|
||||
$('#dty').val(date.getFullYear());
|
||||
$('#dth').val(('0' + date.getHours()).slice(-2));
|
||||
$('#dtmi').val(('0' + date.getMinutes()).slice(-2));
|
||||
$('#dts').val(('0' + date.getSeconds()).slice(-2))
|
||||
})
|
||||
} else if (a_m == 6) {
|
||||
$('#fannl').on('input change', function () {
|
||||
$(this).parent().next().html($(this).val() + '%')
|
||||
});
|
||||
$('#fannl').change();
|
||||
$('input[name=them]').on('change', function () {
|
||||
if ($('input[name=them]:checked').val() == 1) $('#fannl_fg').show();
|
||||
else $('#fannl_fg').hide()
|
||||
});
|
||||
$('input[name=them]').change();
|
||||
$('input[name=frqs]').eq(frq >> 12).attr('checked', 'checked');
|
||||
$('#frqa').val(frq & 0xfff);
|
||||
$('input[name=frqs]').on('change', function () {
|
||||
frq = $('input[name=frqs]:checked').val() << 12;
|
||||
frq |= 0x340;
|
||||
$('#frqa').val(0x340);
|
||||
$('#frq_bv').html(frq_s(frq) + ' Hz')
|
||||
});
|
||||
$('#frqa').on('input change', function () {
|
||||
frq &= 0xf000;
|
||||
frq |= $('#frqa').val();
|
||||
$('#frq_bv').html(frq_s(frq) + ' Hz')
|
||||
});
|
||||
$('#frqa').change()
|
||||
} else if (a_m == 8) {
|
||||
$('#ligde').on('input change', function () {
|
||||
var o = $(this).parent().next();
|
||||
if ($(this).val() == 0) o.html('off');
|
||||
else o.html($(this).val() + 's')
|
||||
});
|
||||
$('#ligde').change()
|
||||
}
|
||||
}
|
||||
|
||||
function frq_s(frq) {
|
||||
var f = 360000000000;
|
||||
var k = (0x700) - (frq & 0xfff);
|
||||
var arr = 465 + ((k >> 8) & 0x0f);
|
||||
var x = k & 0xff;
|
||||
f = f * (1 << (frq >> 12)) / (arr * (256 - x) + (arr + 1) * (x));
|
||||
return Math.floor(f / 10000) + '.' + ('0000' + Math.floor(f % 10000)).slice(-4)
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user