Compare commits

...

3 commits

6 changed files with 77 additions and 23 deletions

3
.env
View file

@ -9,3 +9,6 @@ SERIAL_SPEED=9600
# FIFO filename
FIFO="/tmp/mapid"
# fifo_bridge.py PID file
FIFO_BRIDGE_PID_FILE="/tmp/mapid_fifo_bridge.pid"

View file

@ -72,3 +72,11 @@ PHP based Web interface for `fifo_bridge.py` supporting all commands of *MAPID/C
### `notification.sh`
Use the LED and display to show a notification, the purpose of the whole MAPID project.
## Links
- [My blog post about MAPID (German)](https://malte70.de/blog/mapid/)
- Arduino libraries
- [SerialCommand Advanced](https://github.com/shyd/Arduino-SerialCommand)
- [serLCD](http://playground.arduino.cc/Code/SerLCD)

View file

@ -9,7 +9,10 @@ if (!file_exists(FIFO))
$f = fopen(FIFO, "w+");
switch ($_POST["cmd"]) {
if (count($_POST) == 0)
$_POST = json_decode(file_get_contents('php://input'), true);
switch (@$_POST["cmd"]) {
case "getty":
fwrite($f, "GETTY");
break;
@ -36,6 +39,16 @@ switch ($_POST["cmd"]) {
fwrite($f, "ECHO ");
fwrite($f, $_POST["text"]);
break;
case "echo2":
fwrite($f, "CLS\n");
fwrite($f, "LINE 1\n");
fwrite($f, "ECHO ");
fwrite($f, $_POST["line1"]);
fwrite($f, "\n");
fwrite($f, "LINE 2\n");
fwrite($f, "ECHO ");
fwrite($f, $_POST["line2"]);
break;
}
fwrite($f, "\n");

View file

@ -15,18 +15,21 @@ $Title = "MAPID-FIFO Web-UI";
</header>
<main>
<section>
<h3>Welcome message</h3>
<form action="command.php" method="POST">
<input type="hidden" name="cmd" value="getty">
<button type="submit">Getty</button>
</form>
</section>
<section>
<h3>Clear screen</h3>
<form action="command.php" method="POST">
<input type="hidden" name="cmd" value="cls">
<button type="submit">Clear</button>
</form>
</section>
<section>
<h3>Control LED</h3>
<form action="command.php" method="POST">
<input type="hidden" name="cmd" value="on">
<button type="submit">LED On</button>
@ -37,6 +40,7 @@ $Title = "MAPID-FIFO Web-UI";
</form>
</section>
<section>
<h3>Control display</h3>
<form action="command.php" method="POST">
<input type="hidden" name="cmd" value="lcdon">
<button type="submit">Display On</button>
@ -47,6 +51,7 @@ $Title = "MAPID-FIFO Web-UI";
</form>
</section>
<section>
<h3>Line selection for output</h3>
<form action="command.php" method="POST">
<input type="hidden" name="cmd" value="line">
<select name="line" height="1">
@ -57,12 +62,22 @@ $Title = "MAPID-FIFO Web-UI";
</form>
</section>
<section>
<h3>Single line output</h3>
<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>
<section>
<h3>Multi line output</h3>
<form action="command.php" method="POST">
<input type="hidden" name="cmd" value="echo2">
<input type="text" name="line1" placeholder="Text line 1"><br>
<input type="text" name="line2" placeholder="Text line 2">
<button type="submit">Output</button>
</form>
</section>
</main>
<footer>
<p><a href="https://git.un-hack-bar.de/malte70/mapid">mapid Git-Repo</a></p>

View file

@ -29,35 +29,36 @@ 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;
/*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;
margin-bottom: .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;
/*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;
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;
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;
}
a:link, a:visited {

View file

@ -16,20 +16,32 @@ def main():
if len(sys.argv) == 2:
FIFO = sys.argv[1]
# Write PID
FIFO_BRIDGE_PID_FILE = os.environ.get("FIFO_BRIDGE_PID_FILE")
f = open(FIFO_BRIDGE_PID_FILE, "w")
f.write(os.getpid())
f.close()
del f
# Create MAPIDCP object to communicate with the Arduino
m = mapid.MAPIDCP()
# Create FIFO
os.mkfifo(FIFO)
time.sleep(0.2)
print("Created FIFO " + FIFO, file=sys.stderr)
f = open(FIFO, "r")
print("Opened FIFO for reading", file=sys.stderr)
# Show greeting on screen
m.cls()
m.line(1)
m.echo("fifo_bridge.py")
m.line(2)
m.echo(FIFO)
# Main loop: read commands from FIFO and execute it
keep_going = True
while keep_going:
try:
@ -42,7 +54,9 @@ def main():
keep_going = False
print("Caught a SerialException. Exiting now...", file=sys.stderr)
# Remove FIFO and PID files
os.remove(FIFO)
os.remove(FIFO_BRIDGE_PID_FILE)
print("Removed FIFO.", file=sys.stderr)