Add files via upload

master
Wojciech Kaczmarski 2019-10-16 21:05:50 +02:00 committed by GitHub
parent 25d9fc12a5
commit 29cdd55085
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 2619 additions and 0 deletions

178
rpi/pi/fans/fan.py 100644
View File

@ -0,0 +1,178 @@
import RPi.GPIO as GPIO
import time
from w1thermsensor import W1ThermSensor
#import smbus
from smbus2 import SMBus
#Consts
T_SENSOR_1="000009a5e43c"
T_SENSOR_2="000009a60a09"
PCF_CTRL = 0x21
PCF_DATA = 0x20
#CTRL
OE_1 = 0
OE_2 = 1
OE_3 = 2
CLK_EN= 3
CLR = 4
LATCH = 5
FAN_R = 6
FAN_L = 7
#----------------------------------------------------------------------------
def GetRPM(fan):
if fan == 0:
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(0<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(0<<CLK_EN)|(1<<FAN_L)
i2c.write_byte(PCF_CTRL, val)
time.sleep(1)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)|(0<<FAN_L)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)|(1<<LATCH)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)|(0<<LATCH)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
val=(0<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
r_1=i2c.read_byte(PCF_DATA)
time.sleep(0.001)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
val=(1<<OE_1)|(0<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
r_2=i2c.read_byte(PCF_DATA)
time.sleep(0.001)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
val=(1<<OE_1)|(1<<OE_2)|(0<<OE_3)|(1<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
r_3=i2c.read_byte(PCF_DATA)
time.sleep(0.001)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
else:
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(0<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(0<<CLK_EN)|(1<<FAN_R)
i2c.write_byte(PCF_CTRL, val)
time.sleep(1)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)|(0<<FAN_R)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)|(1<<LATCH)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)|(0<<LATCH)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
val=(0<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
r_1=i2c.read_byte(PCF_DATA)
time.sleep(0.001)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
val=(1<<OE_1)|(0<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
r_2=i2c.read_byte(PCF_DATA)
time.sleep(0.001)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
val=(1<<OE_1)|(1<<OE_2)|(0<<OE_3)|(1<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
r_3=i2c.read_byte(PCF_DATA)
time.sleep(0.001)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
time.sleep(0.001)
return (r_1|(r_2<<8)|(r_3<<16))*15
#----------------------------------------------------------------------------
i2c = SMBus(1)
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(12, GPIO.OUT)
GPIO.setup(18, GPIO.OUT)
fan_L = GPIO.PWM(12, 500)
fan_R = GPIO.PWM(18, 500)
fan_L.start(20)
fan_R.start(20)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(0<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
val=(1<<OE_1)|(1<<OE_2)|(1<<OE_3)|(1<<CLR)|(1<<CLK_EN)
i2c.write_byte(PCF_CTRL, val)
while True:
sensor = W1ThermSensor(W1ThermSensor.THERM_SENSOR_DS18B20, T_SENSOR_1)
temp_1 = sensor.get_temperature()
sensor = W1ThermSensor(W1ThermSensor.THERM_SENSOR_DS18B20, T_SENSOR_2)
temp_2 = sensor.get_temperature()
left_fan=GetRPM(0)
right_fan=GetRPM(1)
#overwrite
with open('/var/www/html/vals.txt', 'r') as file:
data = file.readlines()
data[0] = str(temp_1) + '\n'
data[1] = str(temp_2) + '\n'
data[2] = '20\n'
data[3] = '20\n'
data[6] = str(left_fan) + '\n'
data[7] = str(right_fan) + '\n'
with open('/var/www/html/vals.txt', 'w') as file:
file.writelines(data)
#print("L=%dRPM, R=%dRPM" % (GetRPM(0), GetRPM(1)))
#fan_L.ChangeDutyCycle(75)
#fan_R.ChangeDutyCycle(75)
#print("T_1=%.2f T_2=%.2f" % (temp_1, temp_2))
#time.sleep(1)

8
rpi/pi/init.sh 100644
View File

@ -0,0 +1,8 @@
#setting UART baudrate at startup
sudo stty -F /dev/ttyS0 raw 115200
#start reading temperatures
./t_read/t_read.sh
#
echo "Done"

67
rpi/pi/tty/main.c 100644
View File

@ -0,0 +1,67 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <unistd.h>
#include <string.h>
#include <time.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
FILE *fp;
uint8_t c=0;
uint8_t cnt=0;
uint8_t rx_buff[100];
//UDP
struct sockaddr_in servaddr, cliaddr;
int main(int argc, char *argv[])
{
int sockfd = socket(AF_INET, SOCK_DGRAM, 0);
memset(&servaddr, 0, sizeof(servaddr));
memset(&cliaddr, 0, sizeof(cliaddr));
memset(rx_buff, 0, 100);
servaddr.sin_family = AF_INET; //IPv4
servaddr.sin_addr.s_addr = inet_addr(argv[1]);//INADDR_ANY;
servaddr.sin_port = htons(atoi(argv[2]));
bind(sockfd, (const struct sockaddr*)&servaddr, sizeof(servaddr));
fp = fopen("/dev/ttyS0", "rb"); //sudo stty -F /dev/ttyS0 115200 raw
while(1)
{
if(fread(&rx_buff[cnt], 1, 94, fp)==94)
{
if(rx_buff[0]=='A')
//cnt++;
//if(cnt==94)
{
//uint32_t id_from=(rx_buff[20]<<16) | (rx_buff[21]<<8) | rx_buff[22];
//uint32_t id_to=(rx_buff[23]<<16) | (rx_buff[24]<<8) | rx_buff[25];
//uint16_t frame_num=((rx_buff[1]&0x0F)<<8) | rx_buff[2];
//printf("%d->%d\n", id_from, id_to);
//if(!(frame_num%10))
//printf("%d\n", frame_num);
sendto(sockfd, &rx_buff[35+1], 16, MSG_CONFIRM, (const struct sockaddr *) &servaddr, sizeof(servaddr));
//usleep(40000);
//sendto(sockfd, "\n", 2,
// MSG_CONFIRM, (const struct sockaddr *) &servaddr,
// sizeof(servaddr));
//memset(rx_buff, 0, 100);
//cnt=0;
}
}
//fp = fopen("/dev/ttyS0", "wb");
//fwrite(argv[1], 1, strlen(argv[1]), fp);
//fclose(fp);
//sleep(1);
}
return 0;
}

View File

@ -0,0 +1,108 @@
a
{
color: #0000FF;
text-decoration: underline;
}
a:visited
{
color: #800080;
}
a:active
{
color: #FF0000;
}
a:hover
{
color: #0000FF;
text-decoration: underline;
}
input:focus, textarea:focus, select:focus
{
outline: none;
}
.visibility-hidden
{
visibility: hidden;
}
h1, .h1
{
font-family: Arial;
font-weight: bold;
font-size: 32px;
text-decoration: none;
color: #000000;
background-color: transparent;
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
display: inline;
}
h2, .h2
{
font-family: Arial;
font-weight: bold;
font-size: 27px;
text-decoration: none;
color: #000000;
background-color: transparent;
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
display: inline;
}
h3, .h3
{
font-family: Arial;
font-weight: bold;
font-size: 24px;
text-decoration: none;
color: #000000;
background-color: transparent;
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
display: inline;
}
h4, .h4
{
font-family: Arial;
font-weight: bold;
font-size: 21px;
font-style: italic;
text-decoration: none;
color: #000000;
background-color: transparent;
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
display: inline;
}
h5, .h5
{
font-family: Arial;
font-weight: bold;
font-size: 19px;
text-decoration: none;
color: #000000;
background-color: transparent;
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
display: inline;
}
h6, .h6
{
font-family: Arial;
font-weight: bold;
font-size: 16px;
text-decoration: none;
color: #000000;
background-color: transparent;
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
display: inline;
}
.CustomStyle
{
font-family: "Courier New";
font-weight: bold;
font-size: 16px;
text-decoration: none;
color: #2E74B5;
background-color: transparent;
}

438
rpi/www/diag.css 100644
View File

@ -0,0 +1,438 @@
div#container
{
width: 970px;
position: relative;
margin: 0 auto 0 auto;
text-align: left;
}
body
{
background-color: #FFFFFF;
color: #000000;
font-family: Arial;
font-weight: normal;
font-size: 13px;
line-height: 1.1875;
margin: 0;
text-align: center;
}
#PageHeader
{
background-color: #212121;
background-image: none;
box-sizing: border-box;
}
#wb_Text9
{
background-color: transparent;
background-image: none;
border: 0px solid #000000;
padding: 0;
margin: 0;
text-align: center;
}
#wb_Text9 div
{
text-align: center;
}
#wb_Text1
{
background-color: transparent;
background-image: none;
border: 0px solid #000000;
padding: 0;
margin: 0;
text-align: center;
}
#wb_Text1
{
color: #000000;
font-family: Arial;
font-weight: normal;
font-size: 24px;
line-height: 27.5px;
}
#wb_Text1 p, #wb_Text1 ul
{
margin: 0;
padding: 0;
}
#wb_Text2
{
background-color: transparent;
background-image: none;
border: 0px solid #000000;
padding: 0;
margin: 0;
text-align: center;
}
#wb_Text2
{
color: #000000;
font-family: Arial;
font-weight: normal;
font-size: 24px;
line-height: 27.5px;
}
#wb_Text2 p, #wb_Text2 ul
{
margin: 0;
padding: 0;
}
#wb_Text3
{
background-color: transparent;
background-image: none;
border: 0px solid #000000;
padding: 0;
margin: 0;
text-align: center;
}
#wb_Text3
{
color: #000000;
font-family: Arial;
font-weight: normal;
font-size: 24px;
line-height: 27.5px;
}
#wb_Text3 p, #wb_Text3 ul
{
margin: 0;
padding: 0;
}
#wb_Text5
{
background-color: transparent;
background-image: none;
border: 0px solid #000000;
padding: 0;
margin: 0;
text-align: center;
}
#wb_Text5
{
color: #000000;
font-family: Arial;
font-weight: normal;
font-size: 24px;
line-height: 27.5px;
}
#wb_Text5 p, #wb_Text5 ul
{
margin: 0;
padding: 0;
}
#wb_CssMenu1
{
border: 0px solid #C0C0C0;
background-color: transparent;
margin: 0;
text-align: right;
}
#wb_CssMenu1 ul
{
list-style-type: none;
margin: 0;
padding: 0;
position: relative;
display: inline-block;
}
#wb_CssMenu1 li
{
float: left;
margin: 0;
padding: 0px 0px 0px 0px;
}
#wb_CssMenu1 a
{
display: block;
float: left;
color: #DCDCDC;
border: 0px solid #CCCCCC;
background-color: transparent;
background-image: none;
font-family: Arial;
font-weight: bold;
font-size: 13px;
font-style: normal;
text-decoration: none;
height: 40px;
line-height: 40px;
padding: 0px 5px 0px 18px;
vertical-align: middle;
text-align: center;
}
#wb_CssMenu1 li:hover a, #wb_CssMenu1 a:hover, #wb_CssMenu1 .active
{
color: #F05F40;
background-color: transparent;
background-image: none;
border: 0px solid #222222;
}
#wb_CssMenu1 li.firstmain
{
padding-left: 0px;
}
#wb_CssMenu1 li.lastmain
{
padding-right: 0px;
}
#wb_CssMenu1 br
{
clear: both;
font-size: 1px;
height: 0;
line-height: 0;
}
#wb_CssMenu2
{
border: 0px solid #C0C0C0;
background-color: transparent;
margin: 0;
text-align: left;
}
#wb_CssMenu2 ul
{
list-style-type: none;
margin: 0;
padding: 0;
position: relative;
display: inline-block;
}
#wb_CssMenu2 li
{
float: left;
margin: 0;
padding: 6px 4px 6px 0px;
}
#wb_CssMenu2 a
{
display: block;
float: left;
color: #DCDCDC;
border: 0px solid #CCCCCC;
background-color: transparent;
background-image: none;
font-family: Arial;
font-weight: bold;
font-size: 13px;
font-style: normal;
text-decoration: none;
height: 28px;
line-height: 28px;
padding: 0px 5px 0px 5px;
vertical-align: middle;
text-align: center;
}
#wb_CssMenu2 li:hover a, #wb_CssMenu2 a:hover
{
color: #F05F40;
background-color: transparent;
background-image: none;
border: 0px solid #2E6DA4;
}
#wb_CssMenu2 li.firstmain
{
padding-left: 6px;
}
#wb_CssMenu2 li.lastmain
{
padding-right: 6px;
}
#wb_CssMenu2 br
{
clear: both;
font-size: 1px;
height: 0;
line-height: 0;
}
#wb_Text4
{
background-color: transparent;
background-image: none;
border: 0px solid #000000;
padding: 0;
margin: 0;
text-align: center;
}
#wb_Text4
{
color: #000000;
font-family: Arial;
font-weight: normal;
font-size: 24px;
line-height: 27.5px;
}
#wb_Text4 p, #wb_Text4 ul
{
margin: 0;
padding: 0;
}
#wb_Text6
{
background-color: transparent;
background-image: none;
border: 0px solid #000000;
padding: 0;
margin: 0;
text-align: center;
}
#wb_Text6
{
color: #000000;
font-family: Arial;
font-weight: normal;
font-size: 24px;
line-height: 27.5px;
}
#wb_Text6 p, #wb_Text6 ul
{
margin: 0;
padding: 0;
}
#wb_Text7
{
background-color: transparent;
background-image: none;
border: 0px solid #000000;
padding: 0;
margin: 0;
text-align: center;
}
#wb_Text7
{
color: #000000;
font-family: Arial;
font-weight: normal;
font-size: 24px;
line-height: 27.5px;
}
#wb_Text7 p, #wb_Text7 ul
{
margin: 0;
padding: 0;
}
#wb_Text10
{
background-color: transparent;
background-image: none;
border: 0px solid #000000;
padding: 0;
margin: 0;
text-align: center;
}
#wb_Text10
{
color: #000000;
font-family: Arial;
font-weight: normal;
font-size: 24px;
line-height: 27.5px;
}
#wb_Text10 p, #wb_Text10 ul
{
margin: 0;
padding: 0;
}
#wb_Text8
{
background-color: transparent;
background-image: none;
border: 0px solid #000000;
padding: 0;
margin: 0;
text-align: center;
}
#wb_Text8
{
color: #000000;
font-family: Arial;
font-weight: normal;
font-size: 24px;
line-height: 27.5px;
}
#wb_Text8 p, #wb_Text8 ul
{
margin: 0;
padding: 0;
}
#wb_Footer
{
clear: both;
position: fixed;
left: 0;
bottom: 0;
z-index: 7777;
table-layout: fixed;
display: table;
text-align: center;
width: 100%;
background-color: #000000;
background-image: none;
border: 0px solid #CCCCCC;
box-sizing: border-box;
margin: 0;
}
#Footer
{
box-sizing: border-box;
padding: 15px 15px 15px 15px;
margin-right: auto;
margin-left: auto;
}
#Footer > .row
{
margin-right: -15px;
margin-left: -15px;
}
#Footer > .row > .col-1
{
box-sizing: border-box;
font-size: 0px;
min-height: 1px;
padding-right: 15px;
padding-left: 15px;
position: relative;
}
#Footer
{
width: 970px;
}
#Footer > .row > .col-1
{
float: left;
}
#Footer > .row > .col-1
{
background-color: transparent;
background-image: none;
border: 0px solid #FFFFFF;
width: 100%;
text-align: center;
}
#Footer:before,
#Footer:after,
#Footer .row:before,
#Footer .row:after
{
display: table;
content: " ";
}
#Footer:after,
#Footer .row:after
{
clear: both;
}
@media (max-width: 480px)
{
#Footer
{
width: 100%;
}
#Footer > .row > .col-1
{
float: none;
width: 100%;
}
}

331
rpi/www/diag.html 100644
View File

@ -0,0 +1,331 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>M17 Diagnostics</title>
<meta name="generator" content="WYSIWYG Web Builder 15 Trial Version - http://www.wysiwygwebbuilder.com">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="Untitled1.css" rel="stylesheet">
<link href="diag.css" rel="stylesheet">
<script src="jquery-3.4.1.min.js"></script>
<script src="scrollspy.min.js"></script>
<script src="gauge.min.js"></script>
<script>
function changeVal()
{
document.gauges[0].value=30;
document.gauges[1].value=52;
document.gauges[2].value=20;
document.gauges[3].value=20;
}
function LoadFile()
{
var val=0.0;
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "vals.txt", false);
xmlhttp.send();
if (xmlhttp.status==200) {
var content = xmlhttp.responseText;
lines = content.split("\n");
for(i = 0; i < lines.length; i++){
val=parseFloat(lines[i]);
document.gauges[i].value=val;
}
}
}
function LoadLog()
{
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "log.txt", false);
xmlhttp.send();
if (xmlhttp.status==200) {
var content = xmlhttp.responseText;
lines = content.split("\n");
//for(i = 0; i < lines.length; i++){
//lines[i]
document.getElementById("TextArea1").value=lines;
//}
}
}
</script>
</head>
<body data-spy="scroll" onload="setInterval(LoadFile, 1000);">
<div id="container">
<a href="http://www.wysiwygwebbuilder.com" target="_blank"><img src="images/builtwithwwb15.png" alt="WYSIWYG Web Builder" style="position:absolute;left:441px;top:967px;margin: 0;border-width:0;z-index:250"></a>
<div id="Html1" style="position:absolute;left:131px;top:102px;width:200px;height:200px;z-index:4">
<canvas data-type="radial-gauge"
data-width="200"
data-height="200"
data-units="deg. C"
data-min-value="-50"
data-max-value="120"
data-major-ticks="-50,-40,-30,-20,-10,0,10,20,30,40,50,60,70,80,90,100,110,120"
data-minor-ticks="2"
data-stroke-ticks="true"
data-highlights='[
{"from": 70, "to": 120, "color": "rgba(200, 50, 50, .75)"}
]'
data-color-plate="#fff"
data-border-shadow-width="0"
data-borders="false"
data-needle-type="arrow"
data-needle-width="2"
data-needle-circle-size="7"
data-needle-circle-outer="true"
data-needle-circle-inner="false"
data-animation-duration="500"
data-animation-rule="linear"
></canvas></div>
<div id="Html2" style="position:absolute;left:381px;top:102px;width:200px;height:200px;z-index:5">
<canvas data-type="radial-gauge"
data-width="200"
data-height="200"
data-units="deg. C"
data-min-value="-50"
data-max-value="120"
data-major-ticks="-50,-40,-30,-20,-10,0,10,20,30,40,50,60,70,80,90,100,110,120"
data-minor-ticks="2"
data-stroke-ticks="true"
data-highlights='[
{"from": 70, "to": 120, "color": "rgba(200, 50, 50, .75)"}
]'
data-color-plate="#fff"
data-border-shadow-width="0"
data-borders="false"
data-needle-type="arrow"
data-needle-width="2"
data-needle-circle-size="7"
data-needle-circle-outer="true"
data-needle-circle-inner="false"
data-animation-duration="500"
data-animation-rule="linear"
></canvas></div>
<div id="wb_Text1" style="position:absolute;left:81px;top:287px;width:300px;height:27px;text-align:center;z-index:6;">
<p style="color:#000000;"><span style="font-size:24px;line-height:27.5px;color:#000000;">Case</span></p></div>
<div id="wb_Text2" style="position:absolute;left:331px;top:287px;width:300px;height:27px;text-align:center;z-index:7;">
<p style="font-size:24px;line-height:27.5px;color:#000000;"><span style="color:#000000;">PA</span></p></div>
<div id="Html3" style="position:absolute;left:131px;top:341px;width:200px;height:200px;z-index:8">
<canvas data-type="radial-gauge"
data-width="200"
data-height="200"
data-units="%RPM"
data-min-value="0"
data-max-value="100"
data-major-ticks="0,10,20,30,40,50,60,70,80,90,100"
data-minor-ticks="2"
data-stroke-ticks="true"
data-highlights='[
{"from": 90, "to": 100, "color": "rgba(200, 200, 0, .75)"}
]'
data-color-plate="#fff"
data-border-shadow-width="0"
data-borders="false"
data-needle-type="arrow"
data-needle-width="2"
data-needle-circle-size="7"
data-needle-circle-outer="true"
data-needle-circle-inner="false"
data-animation-duration="500"
data-animation-rule="linear"
></canvas></div>
<div id="wb_Text3" style="position:absolute;left:81px;top:526px;width:300px;height:27px;text-align:center;z-index:9;">
<p style="color:#000000;"><span style="font-size:24px;line-height:27.5px;color:#000000;">Left fan SP</span></p></div>
<div id="Html4" style="position:absolute;left:381px;top:341px;width:200px;height:200px;z-index:10">
<canvas data-type="radial-gauge"
data-width="200"
data-height="200"
data-units="%RPM"
data-min-value="0"
data-max-value="100"
data-major-ticks="0,10,20,30,40,50,60,70,80,90,100"
data-minor-ticks="2"
data-stroke-ticks="true"
data-highlights='[
{"from": 90, "to": 100, "color": "rgba(200, 200, 0, .75)"}
]'
data-color-plate="#fff"
data-border-shadow-width="0"
data-borders="false"
data-needle-type="arrow"
data-needle-width="2"
data-needle-circle-size="7"
data-needle-circle-outer="true"
data-needle-circle-inner="false"
data-animation-duration="500"
data-animation-rule="linear"
></canvas></div>
<div id="wb_Text5" style="position:absolute;left:331px;top:526px;width:300px;height:27px;text-align:center;z-index:11;">
<p style="color:#000000;"><span style="font-size:24px;line-height:27.5px;color:#000000;">Right fan SP</span></p></div>
<div id="Html5" style="position:absolute;left:631px;top:102px;width:200px;height:200px;z-index:12">
<canvas data-type="radial-gauge"
data-width="200"
data-height="200"
data-units="V"
data-min-value="0"
data-max-value="16"
data-major-ticks="0,2,4,6,8,10,12,14,16"
data-minor-ticks="2"
data-stroke-ticks="true"
data-highlights='[
{"from": 0, "to": 12.0, "color": "rgba(200, 0, 0, .75)"},
{"from": 12.0, "to": 12.4, "color": "rgba(200, 200, 0, .75)"},
{"from": 12.4, "to": 13.8, "color": "rgba(0, 200, 0, .75)"},
{"from": 13.8, "to": 14.8, "color": "rgba(200, 200, 50, .75)"},
{"from": 14.8, "to": 16, "color": "rgba(200, 0, 0, .75)"}
]'
data-color-plate="#fff"
data-border-shadow-width="0"
data-borders="false"
data-needle-type="arrow"
data-needle-width="2"
data-needle-circle-size="7"
data-needle-circle-outer="true"
data-needle-circle-inner="false"
data-animation-duration="500"
data-animation-rule="linear"
></canvas></div>
<div id="wb_Text4" style="position:absolute;left:581px;top:287px;width:300px;height:27px;text-align:center;z-index:13;">
<p style="font-size:24px;line-height:27.5px;color:#000000;"><span style="color:#000000;">Battery</span></p></div>
<div id="Html6" style="position:absolute;left:631px;top:341px;width:200px;height:200px;z-index:14">
<canvas data-type="radial-gauge"
data-width="200"
data-height="200"
data-units="V"
data-min-value="0"
data-max-value="16"
data-major-ticks="0,2,4,6,8,10,12,14,16"
data-minor-ticks="2"
data-stroke-ticks="true"
data-highlights='[
{"from": 14, "to": 14.8, "color": "rgba(0, 150, 0, .75)"}
]'
data-color-plate="#fff"
data-border-shadow-width="0"
data-borders="false"
data-needle-type="arrow"
data-needle-width="2"
data-needle-circle-size="7"
data-needle-circle-outer="true"
data-needle-circle-inner="false"
data-animation-duration="500"
data-animation-rule="linear"
></canvas></div>
<div id="wb_Text6" style="position:absolute;left:581px;top:526px;width:300px;height:27px;text-align:center;z-index:15;">
<p style="color:#000000;"><span style="font-size:24px;line-height:27.5px;color:#000000;">PSU</span></p></div>
<div id="Html7" style="position:absolute;left:131px;top:580px;width:200px;height:200px;z-index:16">
<canvas data-type="radial-gauge"
data-width="200"
data-height="200"
data-units="RPM"
data-min-value="0"
data-max-value="2000"
data-major-ticks="0,250,500,750,1000,1250,1500,1750,2000"
data-minor-ticks="5"
data-stroke-ticks="true"
data-highlights='[
{"from": 1750, "to": 2000, "color": "rgba(200, 200, 0, .75)"}
]'
data-color-plate="#fff"
data-border-shadow-width="0"
data-borders="false"
data-needle-type="arrow"
data-needle-width="2"
data-needle-circle-size="7"
data-needle-circle-outer="true"
data-needle-circle-inner="false"
data-animation-duration="500"
data-animation-rule="linear"
></canvas></div>
<div id="wb_Text7" style="position:absolute;left:81px;top:765px;width:300px;height:27px;text-align:center;z-index:17;">
<p style="color:#000000;"><span style="font-size:24px;line-height:27.5px;color:#000000;">Left fan RPM</span></p></div>
<div id="Html9" style="position:absolute;left:381px;top:580px;width:200px;height:200px;z-index:18">
<canvas data-type="radial-gauge"
data-width="200"
data-height="200"
data-units="RPM"
data-min-value="0"
data-max-value="2000"
data-major-ticks="0,250,500,750,1000,1250,1500,1750,2000"
data-minor-ticks="5"
data-stroke-ticks="true"
data-highlights='[
{"from": 1750, "to": 2000, "color": "rgba(200, 200, 0, .75)"}
]'
data-color-plate="#fff"
data-border-shadow-width="0"
data-borders="false"
data-needle-type="arrow"
data-needle-width="2"
data-needle-circle-size="7"
data-needle-circle-outer="true"
data-needle-circle-inner="false"
data-animation-duration="500"
data-animation-rule="linear"
></canvas></div>
<div id="wb_Text10" style="position:absolute;left:331px;top:765px;width:300px;height:27px;text-align:center;z-index:19;">
<p style="color:#000000;"><span style="font-size:24px;line-height:27.5px;color:#000000;">Right fan RPM</span></p></div>
<div id="Html8" style="position:absolute;left:639px;top:580px;width:200px;height:200px;z-index:20">
<canvas data-type="radial-gauge"
data-width="200"
data-height="200"
data-units="A"
data-min-value="-25"
data-max-value="25"
data-major-ticks="-25,-20,-15,-10,-5,0,5,10,15,20,25"
data-minor-ticks="5"
data-stroke-ticks="true"
data-highlights='[
{"from": -25, "to": -20, "color": "rgba(200, 0, 0, .75)"},
{"from": 20, "to": 25, "color": "rgba(200, 0, 0, .75)"}
]'
data-color-plate="#fff"
data-border-shadow-width="0"
data-borders="false"
data-needle-type="arrow"
data-needle-width="2"
data-needle-circle-size="7"
data-needle-circle-outer="true"
data-needle-circle-inner="false"
data-animation-duration="500"
data-animation-rule="linear"
></canvas></div>
<div id="wb_Text8" style="position:absolute;left:589px;top:765px;width:300px;height:27px;text-align:center;z-index:21;">
<p style="color:#000000;"><span style="font-size:24px;line-height:27.5px;color:#000000;">Battery</span></p></div>
</div>
<div id="PageHeader" style="position:fixed;overflow:hidden;text-align:center;left:0;top:0;right:0;height:50px;z-index:7777;">
<div id="PageHeader_Container" style="width:970px;position:relative;margin-left:auto;margin-right:auto;text-align:left;">
<div id="wb_CssMenu1" style="position:absolute;left:548px;top:5px;width:366px;height:40px;z-index:0;">
<ul role="menubar">
<li class="firstmain"><a role="menuitem" href="./diag.html" target="_self">Diagnostics</a>
</li>
<li><a role="menuitem" href="./settings.html" target="_self">Settings</a>
</li>
<li><a role="menuitem" href="./log.html" target="_self">Log</a>
</li>
<li><a role="menuitem" href="./info.html" target="_self">Info</a>
</li>
</ul>
</div>
<div id="wb_CssMenu2" style="position:absolute;left:8px;top:5px;width:237px;height:41px;z-index:1;">
<ul role="menubar">
<li class="firstmain"><a role="menuitem" href="./index.html" target="_self">M17&nbsp;Repeater&nbsp;Management&nbsp;Page</a>
</li>
</ul>
</div>
</div>
</div>
<div id="wb_Footer">
<div id="Footer">
<div class="row">
<div class="col-1">
<div id="wb_Text9">
<span style="color:#000000;font-family:Arial;font-size:13px;"><br></span><span style="color:#FFFFFF;font-family:Arial;font-size:13px;">Repeater Management Page by SP5WWP</span><span style="color:#000000;font-family:Arial;font-size:13px;"><br></span>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

27
rpi/www/gauge.min.js vendored 100644

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

262
rpi/www/index.css 100644
View File

@ -0,0 +1,262 @@
div#container
{
width: 970px;
position: relative;
margin: 0 auto 0 auto;
text-align: left;
}
body
{
background-color: #FFFFFF;
color: #000000;
font-family: Arial;
font-weight: normal;
font-size: 13px;
line-height: 1.1875;
margin: 0;
text-align: center;
}
#PageHeader
{
background-color: #212121;
background-image: none;
box-sizing: border-box;
}
#wb_CssMenu1
{
border: 0px solid #C0C0C0;
background-color: transparent;
margin: 0;
text-align: right;
}
#wb_CssMenu1 ul
{
list-style-type: none;
margin: 0;
padding: 0;
position: relative;
display: inline-block;
}
#wb_CssMenu1 li
{
float: left;
margin: 0;
padding: 0px 0px 0px 0px;
}
#wb_CssMenu1 a
{
display: block;
float: left;
color: #DCDCDC;
border: 0px solid #CCCCCC;
background-color: transparent;
background-image: none;
font-family: Arial;
font-weight: bold;
font-size: 13px;
font-style: normal;
text-decoration: none;
height: 40px;
line-height: 40px;
padding: 0px 5px 0px 18px;
vertical-align: middle;
text-align: center;
}
#wb_CssMenu1 li:hover a, #wb_CssMenu1 a:hover, #wb_CssMenu1 .active
{
color: #F05F40;
background-color: transparent;
background-image: none;
border: 0px solid #222222;
}
#wb_CssMenu1 li.firstmain
{
padding-left: 0px;
}
#wb_CssMenu1 li.lastmain
{
padding-right: 0px;
}
#wb_CssMenu1 br
{
clear: both;
font-size: 1px;
height: 0;
line-height: 0;
}
#wb_CssMenu2
{
border: 0px solid #C0C0C0;
background-color: transparent;
margin: 0;
text-align: left;
}
#wb_CssMenu2 ul
{
list-style-type: none;
margin: 0;
padding: 0;
position: relative;
display: inline-block;
}
#wb_CssMenu2 li
{
float: left;
margin: 0;
padding: 6px 4px 6px 0px;
}
#wb_CssMenu2 a
{
display: block;
float: left;
color: #DCDCDC;
border: 0px solid #CCCCCC;
background-color: transparent;
background-image: none;
font-family: Arial;
font-weight: bold;
font-size: 13px;
font-style: normal;
text-decoration: none;
height: 28px;
line-height: 28px;
padding: 0px 5px 0px 5px;
vertical-align: middle;
text-align: center;
}
#wb_CssMenu2 li:hover a, #wb_CssMenu2 a:hover
{
color: #F05F40;
background-color: transparent;
background-image: none;
border: 0px solid #2E6DA4;
}
#wb_CssMenu2 li.firstmain
{
padding-left: 6px;
}
#wb_CssMenu2 li.lastmain
{
padding-right: 6px;
}
#wb_CssMenu2 br
{
clear: both;
font-size: 1px;
height: 0;
line-height: 0;
}
#wb_Text1
{
background-color: transparent;
background-image: none;
border: 0px solid #000000;
padding: 0;
margin: 0;
text-align: center;
}
#wb_Text1
{
color: #000000;
font-family: Arial;
font-weight: normal;
font-size: 24px;
line-height: 27.5px;
}
#wb_Text1 p, #wb_Text1 ul
{
margin: 0;
padding: 0;
}
#wb_Text9
{
background-color: transparent;
background-image: none;
border: 0px solid #000000;
padding: 0;
margin: 0;
text-align: center;
}
#wb_Text9 div
{
text-align: center;
}
#wb_Footer
{
clear: both;
position: fixed;
left: 0;
bottom: 0;
z-index: 7777;
table-layout: fixed;
display: table;
text-align: center;
width: 100%;
background-color: #000000;
background-image: none;
border: 0px solid #CCCCCC;
box-sizing: border-box;
margin: 0;
}
#Footer
{
box-sizing: border-box;
padding: 15px 15px 15px 15px;
margin-right: auto;
margin-left: auto;
}
#Footer > .row
{
margin-right: -15px;
margin-left: -15px;
}
#Footer > .row > .col-1
{
box-sizing: border-box;
font-size: 0px;
min-height: 1px;
padding-right: 15px;
padding-left: 15px;
position: relative;
}
#Footer
{
width: 970px;
}
#Footer > .row > .col-1
{
float: left;
}
#Footer > .row > .col-1
{
background-color: transparent;
background-image: none;
border: 0px solid #FFFFFF;
width: 100%;
text-align: center;
}
#Footer:before,
#Footer:after,
#Footer .row:before,
#Footer .row:after
{
display: table;
content: " ";
}
#Footer:after,
#Footer .row:after
{
clear: both;
}
@media (max-width: 480px)
{
#Footer
{
width: 100%;
}
#Footer > .row > .col-1
{
float: none;
width: 100%;
}
}

95
rpi/www/index.html 100644
View File

@ -0,0 +1,95 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>M17 RMP</title>
<meta name="generator" content="WYSIWYG Web Builder 15 Trial Version - http://www.wysiwygwebbuilder.com">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="Untitled1.css" rel="stylesheet">
<link href="index.css" rel="stylesheet">
<script src="jquery-3.4.1.min.js"></script>
<script src="scrollspy.min.js"></script>
<script src="gauge.min.js"></script>
<script>
function changeVal()
{
document.gauges[0].value=30;
document.gauges[1].value=52;
document.gauges[2].value=20;
document.gauges[3].value=20;
}
function LoadFile()
{
var val=0.0;
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "vals.txt", false);
xmlhttp.send();
if (xmlhttp.status==200) {
var content = xmlhttp.responseText;
lines = content.split("\n");
for(i = 0; i < lines.length; i++){
val=parseFloat(lines[i]);
document.gauges[i].value=val;
}
}
}
function LoadLog()
{
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "log.txt", false);
xmlhttp.send();
if (xmlhttp.status==200) {
var content = xmlhttp.responseText;
lines = content.split("\n");
//for(i = 0; i < lines.length; i++){
//lines[i]
document.getElementById("TextArea1").value=lines;
//}
}
}
</script>
</head>
<body data-spy="scroll">
<div id="container">
<a href="http://www.wysiwygwebbuilder.com" target="_blank"><img src="images/builtwithwwb15.png" alt="WYSIWYG Web Builder" style="position:absolute;left:441px;top:967px;margin: 0;border-width:0;z-index:250"></a>
<div id="wb_Text1" style="position:absolute;left:212px;top:169px;width:546px;height:54px;text-align:center;z-index:4;">
<p style="font-size:24px;line-height:27.5px;color:#000000;"><span style="color:#000000;">Welcome to the management page!</span></p>
<p style="font-size:24px;line-height:27.5px;color:#000000;"><span style="color:#000000;">Use the menu above to navigate.</span></p></div>
</div>
<div id="PageHeader" style="position:fixed;overflow:hidden;text-align:center;left:0;top:0;right:0;height:50px;z-index:7777;">
<div id="PageHeader_Container" style="width:970px;position:relative;margin-left:auto;margin-right:auto;text-align:left;">
<div id="wb_CssMenu1" style="position:absolute;left:548px;top:5px;width:366px;height:40px;z-index:0;">
<ul role="menubar">
<li class="firstmain"><a role="menuitem" href="./diag.html" target="_self">Diagnostics</a>
</li>
<li><a role="menuitem" href="./settings.html" target="_self">Settings</a>
</li>
<li><a role="menuitem" href="./log.html" target="_self">Log</a>
</li>
<li><a role="menuitem" href="./info.html" target="_self">Info</a>
</li>
</ul>
</div>
<div id="wb_CssMenu2" style="position:absolute;left:8px;top:5px;width:237px;height:41px;z-index:1;">
<ul role="menubar">
<li class="firstmain"><a role="menuitem" href="./index.html" target="_self">M17&nbsp;Repeater&nbsp;Management&nbsp;Page</a>
</li>
</ul>
</div>
</div>
</div>
<div id="wb_Footer">
<div id="Footer">
<div class="row">
<div class="col-1">
<div id="wb_Text9">
<span style="color:#000000;font-family:Arial;font-size:13px;"><br></span><span style="color:#FFFFFF;font-family:Arial;font-size:13px;">Repeater Management Page by SP5WWP</span><span style="color:#000000;font-family:Arial;font-size:13px;"><br></span>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

255
rpi/www/info.css 100644
View File

@ -0,0 +1,255 @@
body
{
background-color: #FFFFFF;
color: #000000;
font-family: Arial;
font-weight: normal;
font-size: 13px;
line-height: 1.1875;
margin: 0;
padding: 0;
}
#PageHeader
{
background-color: #212121;
background-image: none;
box-sizing: border-box;
}
#wb_CssMenu1
{
border: 0px solid #C0C0C0;
background-color: transparent;
margin: 0;
text-align: right;
}
#wb_CssMenu1 ul
{
list-style-type: none;
margin: 0;
padding: 0;
position: relative;
display: inline-block;
}
#wb_CssMenu1 li
{
float: left;
margin: 0;
padding: 0px 0px 0px 0px;
}
#wb_CssMenu1 a
{
display: block;
float: left;
color: #DCDCDC;
border: 0px solid #CCCCCC;
background-color: transparent;
background-image: none;
font-family: Arial;
font-weight: bold;
font-size: 13px;
font-style: normal;
text-decoration: none;
height: 40px;
line-height: 40px;
padding: 0px 5px 0px 18px;
vertical-align: middle;
text-align: center;
}
#wb_CssMenu1 li:hover a, #wb_CssMenu1 a:hover, #wb_CssMenu1 .active
{
color: #F05F40;
background-color: transparent;
background-image: none;
border: 0px solid #222222;
}
#wb_CssMenu1 li.firstmain
{
padding-left: 0px;
}
#wb_CssMenu1 li.lastmain
{
padding-right: 0px;
}
#wb_CssMenu1 br
{
clear: both;
font-size: 1px;
height: 0;
line-height: 0;
}
#wb_CssMenu2
{
border: 0px solid #C0C0C0;
background-color: transparent;
margin: 0;
text-align: left;
}
#wb_CssMenu2 ul
{
list-style-type: none;
margin: 0;
padding: 0;
position: relative;
display: inline-block;
}
#wb_CssMenu2 li
{
float: left;
margin: 0;
padding: 6px 4px 6px 0px;
}
#wb_CssMenu2 a
{
display: block;
float: left;
color: #DCDCDC;
border: 0px solid #CCCCCC;
background-color: transparent;
background-image: none;
font-family: Arial;
font-weight: bold;
font-size: 13px;
font-style: normal;
text-decoration: none;
height: 28px;
line-height: 28px;
padding: 0px 5px 0px 5px;
vertical-align: middle;
text-align: center;
}
#wb_CssMenu2 li:hover a, #wb_CssMenu2 a:hover
{
color: #F05F40;
background-color: transparent;
background-image: none;
border: 0px solid #2E6DA4;
}
#wb_CssMenu2 li.firstmain
{
padding-left: 6px;
}
#wb_CssMenu2 li.lastmain
{
padding-right: 6px;
}
#wb_CssMenu2 br
{
clear: both;
font-size: 1px;
height: 0;
line-height: 0;
}
#wb_Text9
{
background-color: transparent;
background-image: none;
border: 0px solid #000000;
padding: 0;
margin: 0;
text-align: center;
}
#wb_Text9 div
{
text-align: center;
}
#wb_Text1
{
background-color: transparent;
background-image: none;
border: 0px solid #000000;
padding: 0;
margin: 0;
text-align: center;
}
#wb_Text1
{
color: #000000;
font-family: Arial;
font-weight: normal;
font-size: 13px;
line-height: 16px;
}
#wb_Text1 p, #wb_Text1 ul
{
margin: 0;
padding: 0;
}
#wb_Footer
{
clear: both;
position: fixed;
left: 0;
bottom: 0;
z-index: 7777;
table-layout: fixed;
display: table;
text-align: center;
width: 100%;
background-color: #000000;
background-image: none;
border: 0px solid #CCCCCC;
box-sizing: border-box;
margin: 0;
}
#Footer
{
box-sizing: border-box;
padding: 15px 15px 15px 15px;
margin-right: auto;
margin-left: auto;
}
#Footer > .row
{
margin-right: -15px;
margin-left: -15px;
}
#Footer > .row > .col-1
{
box-sizing: border-box;
font-size: 0px;
min-height: 1px;
padding-right: 15px;
padding-left: 15px;
position: relative;
}
#Footer
{
width: 970px;
}
#Footer > .row > .col-1
{
float: left;
}
#Footer > .row > .col-1
{
background-color: transparent;
background-image: none;
border: 0px solid #FFFFFF;
width: 100%;
text-align: center;
}
#Footer:before,
#Footer:after,
#Footer .row:before,
#Footer .row:after
{
display: table;
content: " ";
}
#Footer:after,
#Footer .row:after
{
clear: both;
}
@media (max-width: 480px)
{
#Footer
{
width: 100%;
}
#Footer > .row > .col-1
{
float: none;
width: 100%;
}
}

92
rpi/www/info.html 100644
View File

@ -0,0 +1,92 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Info</title>
<meta name="generator" content="WYSIWYG Web Builder 15 Trial Version - http://www.wysiwygwebbuilder.com">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="Untitled1.css" rel="stylesheet">
<link href="info.css" rel="stylesheet">
<script src="jquery-3.4.1.min.js"></script>
<script src="scrollspy.min.js"></script>
<script src="gauge.min.js"></script>
<script>
function changeVal()
{
document.gauges[0].value=30;
document.gauges[1].value=52;
document.gauges[2].value=20;
document.gauges[3].value=20;
}
function LoadFile()
{
var val=0.0;
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "vals.txt", false);
xmlhttp.send();
if (xmlhttp.status==200) {
var content = xmlhttp.responseText;
lines = content.split("\n");
for(i = 0; i < lines.length; i++){
val=parseFloat(lines[i]);
document.gauges[i].value=val;
}
}
}
function LoadLog()
{
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "log.txt", false);
xmlhttp.send();
if (xmlhttp.status==200) {
var content = xmlhttp.responseText;
lines = content.split("\n");
//for(i = 0; i < lines.length; i++){
//lines[i]
document.getElementById("TextArea1").value=lines;
//}
}
}
</script>
</head>
<body data-spy="scroll">
<div id="PageHeader" style="position:fixed;overflow:hidden;text-align:center;left:0;top:0;right:0;height:50px;z-index:7;">
<div id="PageHeader_Container" style="width:970px;position:relative;margin-left:auto;margin-right:auto;text-align:left;">
<div id="wb_CssMenu1" style="position:absolute;left:548px;top:5px;width:366px;height:40px;z-index:0;">
<ul role="menubar">
<li class="firstmain"><a role="menuitem" href="./diag.html" target="_self">Diagnostics</a>
</li>
<li><a role="menuitem" href="./settings.html" target="_self">Settings</a>
</li>
<li><a role="menuitem" href="./log.html" target="_self">Log</a>
</li>
<li><a role="menuitem" href="./info.html" target="_self">Info</a>
</li>
</ul>
</div>
<div id="wb_CssMenu2" style="position:absolute;left:8px;top:5px;width:237px;height:41px;z-index:1;">
<ul role="menubar">
<li class="firstmain"><a role="menuitem" href="./index.html" target="_self">M17&nbsp;Repeater&nbsp;Management&nbsp;Page</a>
</li>
</ul>
</div>
</div>
</div>
<a href="http://www.wysiwygwebbuilder.com" target="_blank"><img src="images/builtwithwwb15.png" alt="WYSIWYG Web Builder" style="position:absolute;left:441px;top:967px;margin: 0;border-width:0;z-index:250"></a>
<div id="wb_Text1" style="position:absolute;left:212px;top:213px;width:546px;height:15px;text-align:center;z-index:5;">
<p style="color:#000000;"><span style="color:#000000;">Firmware version: 27092019</span></p></div>
<div id="wb_Footer">
<div id="Footer">
<div class="row">
<div class="col-1">
<div id="wb_Text9">
<span style="color:#000000;font-family:Arial;font-size:13px;"><br></span><span style="color:#FFFFFF;font-family:Arial;font-size:13px;">Repeater Management Page by SP5WWP</span><span style="color:#000000;font-family:Arial;font-size:13px;"><br></span>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

2
rpi/www/jquery-3.4.1.min.js vendored 100644

File diff suppressed because one or more lines are too long

286
rpi/www/log.css 100644
View File

@ -0,0 +1,286 @@
body
{
background-color: #FFFFFF;
color: #000000;
font-family: Arial;
font-weight: normal;
font-size: 13px;
line-height: 1.1875;
margin: 0;
padding: 0;
}
#PageHeader
{
background-color: #212121;
background-image: none;
box-sizing: border-box;
}
#wb_CssMenu1
{
border: 0px solid #C0C0C0;
background-color: transparent;
margin: 0;
text-align: right;
}
#wb_CssMenu1 ul
{
list-style-type: none;
margin: 0;
padding: 0;
position: relative;
display: inline-block;
}
#wb_CssMenu1 li
{
float: left;
margin: 0;
padding: 0px 0px 0px 0px;
}
#wb_CssMenu1 a
{
display: block;
float: left;
color: #DCDCDC;
border: 0px solid #CCCCCC;
background-color: transparent;
background-image: none;
font-family: Arial;
font-weight: bold;
font-size: 13px;
font-style: normal;
text-decoration: none;
height: 40px;
line-height: 40px;
padding: 0px 5px 0px 18px;
vertical-align: middle;
text-align: center;
}
#wb_CssMenu1 li:hover a, #wb_CssMenu1 a:hover, #wb_CssMenu1 .active
{
color: #F05F40;
background-color: transparent;
background-image: none;
border: 0px solid #222222;
}
#wb_CssMenu1 li.firstmain
{
padding-left: 0px;
}
#wb_CssMenu1 li.lastmain
{
padding-right: 0px;
}
#wb_CssMenu1 br
{
clear: both;
font-size: 1px;
height: 0;
line-height: 0;
}
#wb_CssMenu2
{
border: 0px solid #C0C0C0;
background-color: transparent;
margin: 0;
text-align: left;
}
#wb_CssMenu2 ul
{
list-style-type: none;
margin: 0;
padding: 0;
position: relative;
display: inline-block;
}
#wb_CssMenu2 li
{
float: left;
margin: 0;
padding: 6px 4px 6px 0px;
}
#wb_CssMenu2 a
{
display: block;
float: left;
color: #DCDCDC;
border: 0px solid #CCCCCC;
background-color: transparent;
background-image: none;
font-family: Arial;
font-weight: bold;
font-size: 13px;
font-style: normal;
text-decoration: none;
height: 28px;
line-height: 28px;
padding: 0px 5px 0px 5px;
vertical-align: middle;
text-align: center;
}
#wb_CssMenu2 li:hover a, #wb_CssMenu2 a:hover
{
color: #F05F40;
background-color: transparent;
background-image: none;
border: 0px solid #2E6DA4;
}
#wb_CssMenu2 li.firstmain
{
padding-left: 6px;
}
#wb_CssMenu2 li.lastmain
{
padding-right: 6px;
}
#wb_CssMenu2 br
{
clear: both;
font-size: 1px;
height: 0;
line-height: 0;
}
#wb_Text9
{
background-color: transparent;
background-image: none;
border: 0px solid #000000;
padding: 0;
margin: 0;
text-align: center;
}
#wb_Text9 div
{
text-align: center;
}
#FlexContainer1
{
display: -webkit-flex;
display: flex;
position: relative;
height: 787px;
padding: 10px 10px 10px 10px;
-webkit-flex-direction: column;
flex-direction: column;
-webkit-flex-wrap: nowrap;
flex-wrap: nowrap;
-webkit-justify-content: space-around;
justify-content: space-around;
-webkit-align-items: center;
align-items: center;
-webkit-align-content: space-between;
align-content: space-between;
margin: 0;
background-color: transparent;
background-image: none;
border: 0px solid #CCCCCC;
box-sizing: border-box;
font-size: 0px;
}
#TextArea1
{
border: 1px solid #CCCCCC;
border-radius: 4px;
background-color: #FFFFFF;
background-image: none;
color :#000000;
font-family: Arial;
font-weight: normal;
font-size: 13px;
box-sizing: border-box;
padding: 4px 4px 4px 4px;
margin: 0;
-webkit-flex-grow: 0;
flex-grow: 0;
-webkit-flex-shrink: 0;
flex-shrink: 0;
-webkit-align-self: center;
align-self: center;
text-align: left;
overflow: auto;
resize: none;
}
#TextArea1:focus
{
border-color: #66AFE9;
box-shadow: inset 0px 1px 1px rgba(0,0,0,0.075), 0px 0px 8px rgba(102,175,233,0.60);
outline: 0;
}
#wb_Footer
{
clear: both;
position: fixed;
left: 0;
bottom: 0;
z-index: 7777;
table-layout: fixed;
display: table;
text-align: center;
width: 100%;
background-color: #000000;
background-image: none;
border: 0px solid #CCCCCC;
box-sizing: border-box;
margin: 0;
}
#Footer
{
box-sizing: border-box;
padding: 15px 15px 15px 15px;
margin-right: auto;
margin-left: auto;
}
#Footer > .row
{
margin-right: -15px;
margin-left: -15px;
}
#Footer > .row > .col-1
{
box-sizing: border-box;
font-size: 0px;
min-height: 1px;
padding-right: 15px;
padding-left: 15px;
position: relative;
}
#Footer
{
width: 970px;
}
#Footer > .row > .col-1
{
float: left;
}
#Footer > .row > .col-1
{
background-color: transparent;
background-image: none;
border: 0px solid #FFFFFF;
width: 100%;
text-align: center;
}
#Footer:before,
#Footer:after,
#Footer .row:before,
#Footer .row:after
{
display: table;
content: " ";
}
#Footer:after,
#Footer .row:after
{
clear: both;
}
@media (max-width: 480px)
{
#Footer
{
width: 100%;
}
#Footer > .row > .col-1
{
float: none;
width: 100%;
}
}

93
rpi/www/log.html 100644
View File

@ -0,0 +1,93 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Log</title>
<meta name="generator" content="WYSIWYG Web Builder 15 Trial Version - http://www.wysiwygwebbuilder.com">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="Untitled1.css" rel="stylesheet">
<link href="log.css" rel="stylesheet">
<script src="jquery-3.4.1.min.js"></script>
<script src="scrollspy.min.js"></script>
<script src="gauge.min.js"></script>
<script>
function changeVal()
{
document.gauges[0].value=30;
document.gauges[1].value=52;
document.gauges[2].value=20;
document.gauges[3].value=20;
}
function LoadFile()
{
var val=0.0;
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "vals.txt", false);
xmlhttp.send();
if (xmlhttp.status==200) {
var content = xmlhttp.responseText;
lines = content.split("\n");
for(i = 0; i < lines.length; i++){
val=parseFloat(lines[i]);
document.gauges[i].value=val;
}
}
}
function LoadLog()
{
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "log.txt", false);
xmlhttp.send();
if (xmlhttp.status==200) {
var content = xmlhttp.responseText;
lines = content.split("\n");
//for(i = 0; i < lines.length; i++){
//lines[i]
document.getElementById("TextArea1").value=lines;
//}
}
}
</script>
</head>
<body data-spy="scroll" onload="setInterval(LoadLog, 200);">
<div id="PageHeader" style="position:fixed;overflow:hidden;text-align:center;left:0;top:0;right:0;height:50px;z-index:8;">
<div id="PageHeader_Container" style="width:970px;position:relative;margin-left:auto;margin-right:auto;text-align:left;">
<div id="wb_CssMenu1" style="position:absolute;left:548px;top:5px;width:366px;height:40px;z-index:0;">
<ul role="menubar">
<li class="firstmain"><a role="menuitem" href="./diag.html" target="_self">Diagnostics</a>
</li>
<li><a role="menuitem" href="./settings.html" target="_self">Settings</a>
</li>
<li><a role="menuitem" href="./log.html" target="_self">Log</a>
</li>
<li><a role="menuitem" href="./info.html" target="_self">Info</a>
</li>
</ul>
</div>
<div id="wb_CssMenu2" style="position:absolute;left:8px;top:5px;width:237px;height:41px;z-index:1;">
<ul role="menubar">
<li class="firstmain"><a role="menuitem" href="./index.html" target="_self">M17&nbsp;Repeater&nbsp;Management&nbsp;Page</a>
</li>
</ul>
</div>
</div>
</div>
<a href="http://www.wysiwygwebbuilder.com" target="_blank"><img src="images/builtwithwwb15.png" alt="WYSIWYG Web Builder" style="position:absolute;left:441px;top:967px;margin: 0;border-width:0;z-index:250"></a>
<div id="FlexContainer1">
<textarea name="TextArea1" id="TextArea1" style="display:block;width:872px;height:589px;z-index:2;" rows="40" cols="105" spellcheck="false"></textarea>
</div>
<div id="wb_Footer">
<div id="Footer">
<div class="row">
<div class="col-1">
<div id="wb_Text9">
<span style="color:#000000;font-family:Arial;font-size:13px;"><br></span><span style="color:#FFFFFF;font-family:Arial;font-size:13px;">Repeater Management Page by SP5WWP</span><span style="color:#000000;font-family:Arial;font-size:13px;"><br></span>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

12
rpi/www/scrollspy.min.js vendored 100644
View File

@ -0,0 +1,12 @@
/* ========================================================================
* Bootstrap: scrollspy.js v3.3.5
* http://getbootstrap.com/javascript/#scrollspy
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
+function(b){function c(a,h){this.$body=b(document.body);this.$scrollElement=b(a).is(document.body)?b(window):b(a);this.options=b.extend({},c.DEFAULTS,h);this.selector=(this.options.target||"")+" a";this.offsets=[];this.targets=[];this.activeTarget=null;this.scrollHeight=0;this.$scrollElement.on("scroll.wb.scrollspy",b.proxy(this.process,this));this.refresh();this.process()}function l(a){return this.each(function(){var h=b(this),g=h.data("wb.scrollspy"),f="object"==typeof a&&a;g||h.data("wb.scrollspy",
g=new c(this,f));if("string"==typeof a)g[a]()})}c.VERSION="3.3.5";c.DEFAULTS={offset:10};c.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)};c.prototype.refresh=function(){var a=this,c="offset",g=0;this.offsets=[];this.targets=[];this.scrollHeight=this.getScrollHeight();b.isWindow(this.$scrollElement[0])||(c="position",g=this.$scrollElement.scrollTop());this.$body.find(this.selector).map(function(){var a=
b(this),a=a.data("target")||a.attr("href"),d=/^#./.test(a)&&b(a);return d&&d.length&&d.is(":visible")&&[[d[c]().top+g,a]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){a.offsets.push(this[0]);a.targets.push(this[1])})};c.prototype.process=function(){var a=this.$scrollElement.scrollTop()+this.options.offset,b=this.getScrollHeight(),c=this.options.offset+b-this.$scrollElement.height(),f=this.offsets,d=this.targets,k=this.activeTarget,e;this.scrollHeight!=b&&this.refresh();if(a>=c)return k!=
(e=d[d.length-1])&&this.activate(e);if(k&&a<f[0])return this.activeTarget=null,this.clear();for(e=f.length;e--;)k!=d[e]&&a>=f[e]&&(void 0===f[e+1]||a<f[e+1])&&this.activate(d[e])};c.prototype.activate=function(a){this.activeTarget=a;this.clear();b(this.selector+'[data-target="'+a+'"],'+this.selector+'[href="'+a+'"]').addClass("active").trigger("activate.wb.scrollspy")};c.prototype.clear=function(){b(this.selector).removeClass("active")};var m=b.fn.scrollspy;b.fn.scrollspy=l;b.fn.scrollspy.Constructor=
c;b.fn.scrollspy.noConflict=function(){b.fn.scrollspy=m;return this};b(window).on("load.wb.scrollspy.data-api",function(){b('[data-spy="scroll"]').each(function(){var a=b(this);l.call(a,a.data())})})}(jQuery);

View File

@ -0,0 +1,262 @@
div#container
{
width: 970px;
position: relative;
margin: 0 auto 0 auto;
text-align: left;
}
body
{
background-color: #FFFFFF;
color: #000000;
font-family: Arial;
font-weight: normal;
font-size: 13px;
line-height: 1.1875;
margin: 0;
text-align: center;
}
#PageHeader
{
background-color: #212121;
background-image: none;
box-sizing: border-box;
}
#wb_Text1
{
background-color: transparent;
background-image: none;
border: 0px solid #000000;
padding: 0;
margin: 0;
text-align: center;
}
#wb_Text1
{
color: #000000;
font-family: Arial;
font-weight: normal;
font-size: 13px;
line-height: 16px;
}
#wb_Text1 p, #wb_Text1 ul
{
margin: 0;
padding: 0;
}
#wb_CssMenu1
{
border: 0px solid #C0C0C0;
background-color: transparent;
margin: 0;
text-align: right;
}
#wb_CssMenu1 ul
{
list-style-type: none;
margin: 0;
padding: 0;
position: relative;
display: inline-block;
}
#wb_CssMenu1 li
{
float: left;
margin: 0;
padding: 0px 0px 0px 0px;
}
#wb_CssMenu1 a
{
display: block;
float: left;
color: #DCDCDC;
border: 0px solid #CCCCCC;
background-color: transparent;
background-image: none;
font-family: Arial;
font-weight: bold;
font-size: 13px;
font-style: normal;
text-decoration: none;
height: 40px;
line-height: 40px;
padding: 0px 5px 0px 18px;
vertical-align: middle;
text-align: center;
}
#wb_CssMenu1 li:hover a, #wb_CssMenu1 a:hover, #wb_CssMenu1 .active
{
color: #F05F40;
background-color: transparent;
background-image: none;
border: 0px solid #222222;
}
#wb_CssMenu1 li.firstmain
{
padding-left: 0px;
}
#wb_CssMenu1 li.lastmain
{
padding-right: 0px;
}
#wb_CssMenu1 br
{
clear: both;
font-size: 1px;
height: 0;
line-height: 0;
}
#wb_CssMenu2
{
border: 0px solid #C0C0C0;
background-color: transparent;
margin: 0;
text-align: left;
}
#wb_CssMenu2 ul
{
list-style-type: none;
margin: 0;
padding: 0;
position: relative;
display: inline-block;
}
#wb_CssMenu2 li
{
float: left;
margin: 0;
padding: 6px 4px 6px 0px;
}
#wb_CssMenu2 a
{
display: block;
float: left;
color: #DCDCDC;
border: 0px solid #CCCCCC;
background-color: transparent;
background-image: none;
font-family: Arial;
font-weight: bold;
font-size: 13px;
font-style: normal;
text-decoration: none;
height: 28px;
line-height: 28px;
padding: 0px 5px 0px 5px;
vertical-align: middle;
text-align: center;
}
#wb_CssMenu2 li:hover a, #wb_CssMenu2 a:hover
{
color: #F05F40;
background-color: transparent;
background-image: none;
border: 0px solid #2E6DA4;
}
#wb_CssMenu2 li.firstmain
{
padding-left: 6px;
}
#wb_CssMenu2 li.lastmain
{
padding-right: 6px;
}
#wb_CssMenu2 br
{
clear: both;
font-size: 1px;
height: 0;
line-height: 0;
}
#wb_Text9
{
background-color: transparent;
background-image: none;
border: 0px solid #000000;
padding: 0;
margin: 0;
text-align: center;
}
#wb_Text9 div
{
text-align: center;
}
#wb_Footer
{
clear: both;
position: fixed;
left: 0;
bottom: 0;
z-index: 7777;
table-layout: fixed;
display: table;
text-align: center;
width: 100%;
background-color: #000000;
background-image: none;
border: 0px solid #CCCCCC;
box-sizing: border-box;
margin: 0;
}
#Footer
{
box-sizing: border-box;
padding: 15px 15px 15px 15px;
margin-right: auto;
margin-left: auto;
}
#Footer > .row
{
margin-right: -15px;
margin-left: -15px;
}
#Footer > .row > .col-1
{
box-sizing: border-box;
font-size: 0px;
min-height: 1px;
padding-right: 15px;
padding-left: 15px;
position: relative;
}
#Footer
{
width: 970px;
}
#Footer > .row > .col-1
{
float: left;
}
#Footer > .row > .col-1
{
background-color: transparent;
background-image: none;
border: 0px solid #FFFFFF;
width: 100%;
text-align: center;
}
#Footer:before,
#Footer:after,
#Footer .row:before,
#Footer .row:after
{
display: table;
content: " ";
}
#Footer:after,
#Footer .row:after
{
clear: both;
}
@media (max-width: 480px)
{
#Footer
{
width: 100%;
}
#Footer > .row > .col-1
{
float: none;
width: 100%;
}
}

View File

@ -0,0 +1,94 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>M17 Config</title>
<meta name="generator" content="WYSIWYG Web Builder 15 Trial Version - http://www.wysiwygwebbuilder.com">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="Untitled1.css" rel="stylesheet">
<link href="settings.css" rel="stylesheet">
<script src="jquery-3.4.1.min.js"></script>
<script src="scrollspy.min.js"></script>
<script src="gauge.min.js"></script>
<script>
function changeVal()
{
document.gauges[0].value=30;
document.gauges[1].value=52;
document.gauges[2].value=20;
document.gauges[3].value=20;
}
function LoadFile()
{
var val=0.0;
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "vals.txt", false);
xmlhttp.send();
if (xmlhttp.status==200) {
var content = xmlhttp.responseText;
lines = content.split("\n");
for(i = 0; i < lines.length; i++){
val=parseFloat(lines[i]);
document.gauges[i].value=val;
}
}
}
function LoadLog()
{
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "log.txt", false);
xmlhttp.send();
if (xmlhttp.status==200) {
var content = xmlhttp.responseText;
lines = content.split("\n");
//for(i = 0; i < lines.length; i++){
//lines[i]
document.getElementById("TextArea1").value=lines;
//}
}
}
</script>
</head>
<body data-spy="scroll">
<div id="container">
<a href="http://www.wysiwygwebbuilder.com" target="_blank"><img src="images/builtwithwwb15.png" alt="WYSIWYG Web Builder" style="position:absolute;left:441px;top:967px;margin: 0;border-width:0;z-index:250"></a>
<div id="wb_Text1" style="position:absolute;left:212px;top:169px;width:546px;height:15px;text-align:center;z-index:4;">
<p style="color:#000000;"><span style="color:#000000;">Pusto!</span></p></div>
</div>
<div id="PageHeader" style="position:fixed;overflow:hidden;text-align:center;left:0;top:0;right:0;height:50px;z-index:7777;">
<div id="PageHeader_Container" style="width:970px;position:relative;margin-left:auto;margin-right:auto;text-align:left;">
<div id="wb_CssMenu1" style="position:absolute;left:548px;top:5px;width:366px;height:40px;z-index:0;">
<ul role="menubar">
<li class="firstmain"><a role="menuitem" href="./diag.html" target="_self">Diagnostics</a>
</li>
<li><a role="menuitem" href="./settings.html" target="_self">Settings</a>
</li>
<li><a role="menuitem" href="./log.html" target="_self">Log</a>
</li>
<li><a role="menuitem" href="./info.html" target="_self">Info</a>
</li>
</ul>
</div>
<div id="wb_CssMenu2" style="position:absolute;left:8px;top:5px;width:237px;height:41px;z-index:1;">
<ul role="menubar">
<li class="firstmain"><a role="menuitem" href="./index.html" target="_self">M17&nbsp;Repeater&nbsp;Management&nbsp;Page</a>
</li>
</ul>
</div>
</div>
</div>
<div id="wb_Footer">
<div id="Footer">
<div class="row">
<div class="col-1">
<div id="wb_Text9">
<span style="color:#000000;font-family:Arial;font-size:13px;"><br></span><span style="color:#FFFFFF;font-family:Arial;font-size:13px;">Repeater Management Page by SP5WWP</span><span style="color:#000000;font-family:Arial;font-size:13px;"><br></span>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

9
rpi/www/vals.txt 100644
View File

@ -0,0 +1,9 @@
25.562
25.5
20
20
13.2
14.4
405
405
0