hi,
ich habe mir eine PI 3 zugelegt und diese mit meiner Dosieranlagen verbunden.
Die Dosieranlagen hat einen USB Ausgang. Ich kann nun mit minicom via ttyUSB0 einen Befehl an die Dosieranlagen senden (?ist) und erhalte dann die aktuellen Werte in Klartext ASCII. Nun bash dazu geschrieben der ausliest, in Datei speichert und mir die Datei an meinen Server übermittelt. Der wertet die Daten in einem PHP aus und schreibt die Daten in ein Protokoll mysql. Nun gut. Klappt. War net so schwer trotz meines ersten PI Kontakts und nicht so der Linux Fachmann.
Das soll schön alles im Hintergrund als Prozess oder via cron laufen.
Schön und gut. Das Problem ist nur: dieses MINICOM schreibt keine Datei wenn es im Hintergrund läuft. Nur wenn es als offenes Terminal-Script läuft. Auch starts mit nohub & etc... nix - sobald das nicht in einem "aktiven" Terminal Fenster läuft - issnet...
Nun suche ich eine rettende Idee - oder einen Programmiere der mir gegen Entgelt ein kleines Programm schreibt damit ich ohne minicom via ttyUSB0 den Befehl ?ist an die Dose schickt und dann die Daten auffängt.... kann ja net so schwer sein - wenn man weiß wie.
Bin für Anregungen und Codebeispiele sehr sehr dankbar! Aber auch für jemanden der sich der Sache annimmt und via Fernzugriff das ganze für mich rockt...
Hier mal mein Script im Detail damit Ihr wißt wie ich mir das zusammengebastelt habe (ich bin kein Fachmann... das habe ich mir zusammengesucht....)
Info: dieses minicom (mein Lieblingsprogramm ) reagiert nicht auf exit im Script. So habe ich mit einem crontab killall minicom alle 5 min. abgeschossen. Dann geht das bash script in den Loop und liest neu aus, schreibt neue Datei... dann kommt der crontab nach 5 min und killt minicom... usw. usw... aber NUR im offnen Terminal script. Ideen ???? Hilfe???
Wie kann ich serielle Kommunikation im Script selber basteln? 19200,8,n,1 ASCII no Hardwarehandshake
Lasse eure Gedanken laufen ... danke !
bash dosiauto.sh
#!/bin/bash
COUNTER=11
until [ $COUNTER -lt 10 ]; do
echo COUNTER $COUNTER
sed -i ':a;N;$!ba;s/\n/_/g' /home/pi/dosiinfo.txt
sed -i 's/ //g' /home/pi/dosiinfo.txt
sed -i 's/µ//g' /home/pi/dosiinfo.txt
DOSI=/home/pi/dosinummer.txt
DOSINR=`head -n 1 $DOSI`
FILE=/home/pi/dosiinfo.txt
VAR=`head -n 1 $FILE`
/usr/bin/wget -t 1 -O /dev/null www.xyz.de/hs/dosi.php?info=$VAR$DOSINR
minicom -S /home/pi/dosilese3.txt -C /home/pi/dosiinfo.txt
# Anmerkung. Hier im minicom bleibt das Programm dann nach dem Datenempfang hängen... schreibt aber die Datei - dann kommt mein
# crontab und KILLAL MINICOM - dann kommt der Loop zum Scriptanfang...
let COUNTER+=1
done
Alles anzeigen