Compare commits
3 commits
8a4e851ec6
...
8f54104f5c
Author | SHA1 | Date | |
---|---|---|---|
8f54104f5c | |||
23195805be | |||
c4f3d29be0 |
5 changed files with 125 additions and 31 deletions
|
@ -1,6 +1,13 @@
|
|||
<?php
|
||||
|
||||
$f = fopen("/tmp/mapid.fifo", "w+");
|
||||
define("FIFO", "/tmp/mapid");
|
||||
|
||||
|
||||
if (!file_exists(FIFO))
|
||||
die("<!DOCTYPE html>\n<meta charset=\"UTF-8\">\n<h3 style=\"color:red;\">Error: FIFO file “" . FIFO . "” does not exist!</h3><p>Is <tt>fifo_bridge.py</tt> running?</p>");
|
||||
|
||||
|
||||
$f = fopen(FIFO, "w+");
|
||||
|
||||
switch ($_POST["cmd"]) {
|
||||
case "getty":
|
||||
|
|
|
@ -6,37 +6,43 @@ $Title = "MAPID-FIFO Web-UI";
|
|||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title></title>
|
||||
<title><?=$Title?></title>
|
||||
<link rel="stylesheet" type="text/css" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1><?=$Title?></h1>
|
||||
</header>
|
||||
<main>
|
||||
<form action="command.php" method="POST">
|
||||
<input type="hidden" name="cmd" value="getty">
|
||||
<button type="submit">Getty</button>
|
||||
</form>
|
||||
<hr>
|
||||
<form action="command.php" method="POST">
|
||||
<input type="hidden" name="cmd" value="cls">
|
||||
<button type="submit">Clear</button>
|
||||
</form>
|
||||
<hr>
|
||||
<form action="command.php" method="POST">
|
||||
<input type="hidden" name="cmd" value="line">
|
||||
<select name="line" height="1">
|
||||
<option value="1">1</option>
|
||||
<option value="2">2</option>
|
||||
</select>
|
||||
<button type="submit">Select line</button>
|
||||
</form>
|
||||
<hr>
|
||||
<form action="command.php" method="POST">
|
||||
<input type="hidden" name="cmd" value="echo">
|
||||
<input type="text" name="text">
|
||||
<button type="submit">Output</button>
|
||||
</form>
|
||||
<section>
|
||||
<form action="command.php" method="POST">
|
||||
<input type="hidden" name="cmd" value="getty">
|
||||
<button type="submit">Getty</button>
|
||||
</form>
|
||||
</section>
|
||||
<section>
|
||||
<form action="command.php" method="POST">
|
||||
<input type="hidden" name="cmd" value="cls">
|
||||
<button type="submit">Clear</button>
|
||||
</form>
|
||||
</section>
|
||||
<section>
|
||||
<form action="command.php" method="POST">
|
||||
<input type="hidden" name="cmd" value="line">
|
||||
<select name="line" height="1">
|
||||
<option value="1">1</option>
|
||||
<option value="2">2</option>
|
||||
</select>
|
||||
<button type="submit">Select line</button>
|
||||
</form>
|
||||
</section>
|
||||
<section>
|
||||
<form action="command.php" method="POST">
|
||||
<input type="hidden" name="cmd" value="echo">
|
||||
<input type="text" name="text" placeholder="Text">
|
||||
<button type="submit">Output</button>
|
||||
</form>
|
||||
</section>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
56
fifo-webui/style.css
Normal file
56
fifo-webui/style.css
Normal file
|
@ -0,0 +1,56 @@
|
|||
*, *:before, *:after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font: 2em "Source Serif Pro", serif;
|
||||
margin: 1em 0 2em;
|
||||
padding: .5em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 25em;
|
||||
max-width: 100%;
|
||||
padding: .5em;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
section {
|
||||
margin: 0 0 2em;
|
||||
}
|
||||
|
||||
input, select {
|
||||
border-radius: 6px;
|
||||
padding: 6px 14px;
|
||||
|
||||
/*background: #DFDEDF;*/
|
||||
background: #efefef;
|
||||
/*box-shadow: 0px 0.5px 1px rgba(0, 0, 0, 0.1), inset 0px 0.5px 0.5px rgba(255, 255, 255, 0.5), 0px 0px 0px 0.5px rgba(0, 0, 0, 0.12);*/
|
||||
color: #6E6D70;
|
||||
display: inline-block;
|
||||
margin-right: .5em;
|
||||
}
|
||||
|
||||
/* https://getcssscan.com/css-buttons-examples */
|
||||
button {
|
||||
/*display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;*/
|
||||
padding: 6px 14px;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Roboto', sans-serif;
|
||||
border-radius: 6px;
|
||||
border: none;
|
||||
|
||||
background: #6E6D70;
|
||||
box-shadow: 0px 0.5px 1px rgba(0, 0, 0, 0.1), inset 0px 0.5px 0.5px rgba(255, 255, 255, 0.5), 0px 0px 0px 0.5px rgba(0, 0, 0, 0.12);
|
||||
color: #DFDEDF;
|
||||
user-select: none;
|
||||
-webkit-user-select: none;
|
||||
touch-action: manipulation;
|
||||
}
|
||||
|
||||
button:focus {
|
||||
box-shadow: inset 0px 0.8px 0px -0.25px rgba(255, 255, 255, 0.2), 0px 0.5px 1px rgba(0, 0, 0, 0.1), 0px 0px 0px 3.5px rgba(58, 108, 217, 0.5);
|
||||
outline: 0;
|
||||
}
|
|
@ -4,9 +4,10 @@ import os
|
|||
import sys
|
||||
import time
|
||||
import mapid
|
||||
from serial.serialutil import SerialException
|
||||
|
||||
|
||||
FIFO = "/tmp/mapid.fifo"
|
||||
FIFO = "/tmp/mapid"
|
||||
|
||||
|
||||
def main():
|
||||
|
@ -19,10 +20,7 @@ def main():
|
|||
os.mkfifo(FIFO)
|
||||
time.sleep(0.2)
|
||||
print("Created FIFO " + FIFO, file=sys.stderr)
|
||||
# f = open(FIFO, "w")
|
||||
# f.write("\n")
|
||||
# f.close()
|
||||
# print("Created FIFO " + FIFO, file=sys.stderr)
|
||||
|
||||
f = open(FIFO, "r")
|
||||
print("Opened FIFO for reading", file=sys.stderr)
|
||||
m.cls()
|
||||
|
@ -39,6 +37,9 @@ def main():
|
|||
except KeyboardInterrupt:
|
||||
keep_going = False
|
||||
print()
|
||||
except SerialException:
|
||||
keep_going = False
|
||||
print("Caught a SerialException. Exiting now...", file=sys.stderr)
|
||||
|
||||
os.remove(FIFO)
|
||||
print("Removed FIFO.", file=sys.stderr)
|
||||
|
|
24
mapid.py
24
mapid.py
|
@ -1,3 +1,8 @@
|
|||
"""MAPID utility library.
|
||||
|
||||
This module contains an utility class to control MAPID/CP using pyserial.
|
||||
"""
|
||||
|
||||
import os
|
||||
import time
|
||||
import dotenv #
|
||||
|
@ -5,8 +10,15 @@ import serial
|
|||
|
||||
|
||||
DOTENV_LOADED = False
|
||||
"""bool: Is .env loaded?
|
||||
|
||||
Prevents loading .env multiple times for speed.
|
||||
"""
|
||||
|
||||
|
||||
def load_dotenv():
|
||||
"""Load .env file
|
||||
"""
|
||||
basedir = os.path.abspath(os.path.dirname(__file__))
|
||||
dotenv.load_dotenv(os.path.join(basedir, ".env"))
|
||||
global DOTENV_LOADED
|
||||
|
@ -14,6 +26,12 @@ def load_dotenv():
|
|||
|
||||
|
||||
def get_serial_dev():
|
||||
"""Get SERIAL_DEV setting from dotenv.
|
||||
|
||||
Returns:
|
||||
str: The device file.
|
||||
|
||||
"""
|
||||
global DOTENV_LOADED
|
||||
if not DOTENV_LOADED:
|
||||
load_dotenv()
|
||||
|
@ -21,6 +39,12 @@ def get_serial_dev():
|
|||
|
||||
|
||||
def get_serial_speed():
|
||||
"""Get SERIAL_SPEED setting from dotenv.
|
||||
|
||||
Returns:
|
||||
int: Serial speed in baud.
|
||||
|
||||
"""
|
||||
global DOTENV_LOADED
|
||||
if not DOTENV_LOADED:
|
||||
load_dotenv()
|
||||
|
|
Loading…
Reference in a new issue