Hallo,
also ich komme irgendwie nicht weiter...
Also ich betreibe am COM1 Port einen Mikrocontroller der mir Werte sendet, sobald ich ihm ein schlichtes "h" schicke.
Daraufhin bekomme ich einen Messwert. Dieser Messwert sollte am Besten mit Datum und Uhrzeit in einer Datei abgespeichert werden. (oder noch besser in meine MySQL-Datenbank mit Zeitstempel eingetragen werden...)
Also die Kommunkation über CAT- und ECHO-Befehlen läuft 100%ig. Nur jetzt geht es eben darum ein Programm zu basteln, dass eben das h schickt und den Messwert wegspeichert.
Mein größtest Problem ist es, dass ich keine Entwicklungsumgebung auf dem Zielrechner installiert habe, ich also keinen C Quellcode kompilieren kann.
Was aber geht sind PERL-Skripte. Oder geht das auch irgendwie über die Linux-Boardmittel über ein BASH-Skript???
Bitte helft mir...
PS: Vielleicht kann mir jemand ein fertiges Programm für mein Debian-System schicken. (für /dev/ttyS0), dass die Werte aufzeichnet. Das Programm soll später über CRON angestoßen werden. Vielen Dank.
Mikrocontroller an COM1
- finupsen
- Beiträge: 1327
- Registriert: 21.04.2004 20:07:05
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
hallo
also du könntest ein bashscript für mysql benutzen
in etwa so ....:
also du könntest ein bashscript für mysql benutzen
in etwa so ....:
Code: Alles auswählen
#!/bin/bash
VALUE=`<wert-von-ttys>`
mysql -p<passwort> -u<benutzer> -e 'INSERT INTO ....$VALUE' <datenbank-name>
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.
... und Wasser ist naß.
Sooo das ganze nur in Perl...
Leider klappt es bei mir einfach nicht, das Device sowohl lesend als auch schreibend zu öffnen. So funktioniert es zwar, aber ich weiß nicht ob das auch so bleibt...
Code: Alles auswählen
#!/usr/bin/perl
$SIG{ALRM} = \&timeout;
$|=1;
open(IN, '<', '/dev/ttyS0') or die "Kann /dev/ttyS0 nicht öffnen!($!)\n";
open(OUT, '>', '/dev/ttyS0') or die "Kann /dev/ttyS0 nicht öffnen!($!)\n";
print OUT "h";
close(OUT);
while(1)
{
my $in = '';
alarm(1);
sysread(IN, $in, 1);
alarm(0);
print $in;
}
close(IN);
exit(0);
sub timeout()
{
alarm(0);
close(IN);
print "\n";
exit(0);
}