Projekt VFGT07A Haupt/Hundeshagen

Home

Ideen_Wuensche

Auswahl_Begruendung

Blockschaltbild_Schaltbild

Messungen

Begründung_Erklärung_ Abgleichanweisung

Digitalisierung

Layout

Bestell_Bestückungsliste

Software

Probleme

Software

Das Programm nimmt über die USB-Schnittstelle einen Wert auf. Dieser Wert wird dann einer Tabelle zugefügt, welche den Durchschnitt ermittelt. Dieser Durchschnittswert wird dann ausgegeben.

Das Problem der Bordmessung wurde behoben, indem alle 50 ms ein Wert gespeichert wird. Nachdem 20 Werte gespeichert wurden, also nach 1 Sekunde wird der Wert ausgegeben. Es herrscht also eine Verzögerung von 1 s.

Anleitung:

Das 1. Bild zeigt das Programm nach dem öffnen. Nun wird der Verbinden-Button gedrückt, damit sich das Bord mit dem Programm verbindet. Anschließend wird Online gewählt, damit die richtige Datenbank ausgewählt wird.

In Bild 2 zu sehen wurde das Programm verbunden(+) und Online wurde gewählt. Nun wird Auslesen gedrückt, damit die Daten gespeichert werden. Durch das Klicken auf Senden wird sich in die Datenbank eingeloggt. Die Felder müssen leer bleiben. Jetzt darf gemessen werden!

Im 3. Bild sieht man eine Zahl im vorher leeren Fenster. Dies ist der gemessene Wert. Um das Programm zu beenden wird einfach der Beenden-Button gedrückt. Falls hierbei Fehler auftreten sollte unter  dem Problemelink nachgesehen werden.

 

Hier zu sehen der Quellcode unserer

//---------------------------------------------------------------------------
//Hier wird die Verbindung zum Bord hergestellt
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int usb_device = OpenDevice(0);
if(usb_device == 0)
{
Label1->Caption="+";
} else
Label1->Caption="-";
for(int i=0; i < static_cast<int> (vVector.size()); i++)
{
vVector.at(i) = 127;
}
}
//---------------------------------------------------------------------------
//Programm wird geschlossen
void __fastcall TForm1::Button3Click(TObject *Sender)
{
CloseDevice();
Close();
}
//---------------------------------------------------------------------------
//Hier werden die Daten vom Bord zum PC gesendet

void __fastcall TForm1::Button4Click(TObject *Sender)
{
Timer1->Enabled = true;
}
//---------------------------------------------------------------------------
//Hier wird das Senden in die Datenbank gestartet
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Timer2->Enabled = true;
}
//---------------------------------------------------------------------------
//Hier werden die Daten vom Bord eingelesen
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
long data1, data2;
ReadAllAnalog(&data1, &data2);

float Wert = 0;
float Average = 0;
vVector.pop_back();
Wert = data1;

vVector.insert(vVector.begin(), Wert);

for(int i=0; i < static_cast<int> (vVector.size()); i++)
{
Average += vVector.at(i);
}
Average = Average / static_cast<int> (vVector.size());
Edit1->Text = Average;
GlobalWert = Average;
}
//---------------------------------------------------------------------------
//Hier werden die Daten in die Datenbank gesendet
void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
int Sendewert = GlobalWert;

Form1->Query1->SQL->Clear();
Form1->Query1->SQL->Add("INSERT INTO hahu (hh_date, hh_messwert) VALUES(NOW(),:Sendewert)");
Form1->Query1->ParamByName("Sendewert")->AsString=Sendewert;
Form1->Query1->ExecSQL();
}