AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Daten einlesen im fünfMinuten Takt

Ein Thema von gine · begonnen am 14. Dez 2004 · letzter Beitrag vom 14. Dez 2004
 
gine

Registriert seit: 10. Okt 2004
Ort: mannheim&bei kölle
10 Beiträge
 
#1

Daten einlesen im fünfMinuten Takt

  Alt 14. Dez 2004, 15:17
Hallo nächste Frage:

Habe nur noch ein Problem:
Das einlesen der Daten im fübf Minuten Takt funktioniert nicht...hapert am Timer2...hat jemand noch mal Hile?

Vielen vielen Dank auch


Delphi-Quellcode:
//Autor Regine Breuer
//programmiert in Delphi 6 unter WIN98

//Das Programm dient dem Einlesen von Wetterdaten des
//Wettersensors DFT 1MV der Firma Reinhardt
//Die Kommunikation erfolgt über die serielle Schnittstelle mit Hilfe
//des AsyncPro von Turbopower
//Standarseinstellungen: 19200Baud, 8Datenbits,0 Paritätsbit,1 Stopbit
//Zuerst muss der entsprechende Comport gewählt, anschließend verbunden
//werden
//Nach dem Verbinden erfolgt das automatische Setzen der Wettersensoruhr
//mittels Befehl: !uSSMMSSTTMMJJ
//danach wird der Sensor mittels !S4 stumm geschaltet
// Es werden nun in fünfminütigem Takt Daten eingelesen; hierzu wird
//jedes mal der Befehl ?u verwendet (einen Datensatz senden)
//12.12.04

//TIMER FUNKTIONIERT NICHT

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OoMisc, AdPort, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    ApdComPort1: TApdComPort;
    Button1: TButton;
    Button2: TButton;
    RadioGroup1: TRadioGroup;

    Timer1: TTimer;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Memo1: TMemo;
    Timer2: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure ApdComPort1TriggerAvail(CP: TObject; Count: Word);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Timer2Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }

  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1.Clear;
end;

 //Verbinden und Uhrzeit setzen nach Verbindung
procedure TForm1.Button1Click(Sender: TObject);
var s: string;
    zeit: string;
    datum: string;
    stumm: string;

begin
ApdComPort1.Open :=true;


// Sendebefehl für Uhrzeit einlesen generieren
// Umwandlung '2004' in '04'
// Doppelpunkte und Punkte rausnehmen,
// da so für Sensorbefehl vorgesehen !uSSMMSSTTMMJJ

datum:=formatdatetime('dd.mm.yy', StrToDate(DateToStr(Now)));
s:= TimeToStr(Now) + datum;
s:=StringReplace(TimeToStr(Now) + datum,':','',[rfReplaceAll]);
s:=StringReplace(s,'.','',[rfReplaceAll]);

zeit := '!u'+ s +#$0d;
if ApdComPort1.OutBuffFree >= Length(zeit) then //prüfen, ob im Output Buffer
                                                       //genügend Platz vorhanden
    ApdComPort1.PutString(zeit); //Befehlsstring senden
    sleep(100);
//Sensor stummschalten mittels !s4 Befehl
    stumm:= '!s4' +#$0d;
    if ApdComPort1.OutBuffFree >= Length(stumm) then //prüfen, ob im Output Buffer
    ApdComPort1.PutString(stumm);
    

Timer2.Enabled:= true;

end;

//Trennen
procedure TForm1.Button2Click(Sender: TObject);
begin
ApdComPort1.Open :=False;
end;

//Com Port wählen
procedure TForm1.RadioGroup1Click(Sender: TObject); //Com Port wählen (1 oder2)
begin
        case RadioGroup1.ItemIndex of
        0: ApdComPort1.ComNumber := 1;
        1: ApdComPort1.ComNumber := 2;
        end;
end;

//Datum/Uhrzeit in Group box
procedure TForm1.Timer1Timer(Sender: TObject); //GroupBox mit Datum und Uhrzeit
begin //Timer um Detum und Uhrezit zu aktualisieren
Label2.Caption := TimeToStr(Now);
Label1.Caption := DateToStr(Now);
end;

//Sensor in Normalbetrieb schalten per Button Click
procedure TForm1.Button4Click(Sender: TObject);
var normalbetrieb: string;
begin
        normalbetrieb:= '!s0' +#$0d;
        if ApdComPort1.OutBuffFree >= Length(normalbetrieb) then //prüfen, ob im Output Buffer
        ApdComPort1.PutString(normalbetrieb);

end;

//Sensor stumm schalten per Button Click
procedure TForm1.Button5Click(Sender: TObject);
var stumm: string;
begin
        stumm:= '!s4' +#$0d;
        if ApdComPort1.OutBuffFree >= Length(stumm) then //prüfen, ob im Output Buffer
        ApdComPort1.PutString(stumm);

end;

//Befehl per Button Click, um einen Datensatz abzurufen
procedure TForm1.Button6Click(Sender: TObject);
var datensatz: string;
begin
        datensatz:= '?u' +#$0d;
        if ApdComPort1.OutBuffFree >= Length(datensatz) then //prüfen, ob im Output Buffer
        ApdComPort1.PutString(datensatz);

end;

procedure TForm1.Timer2Timer(Sender: TObject);
var datensatz: string;
begin
  datensatz:= '?u' +#$0d;
  if ApdComPort1.OutBuffFree >= Length(datensatz) then //prüfen, ob im Output Buffer
  ApdComPort1.PutString(datensatz);
end;

procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);

var I : Word;
    C: char;
    daten : string ;
    f: TextFile;
begin
  daten := '';
 AssignFile (f, 'C:\Wetterdaten.txt');
 if not FileExists('C:\Wetterdaten.txt') then
        begin
            ReWrite(f);
        end else
        begin
        Append(f);
        end;
  for I := 1 to Count do
    begin
        C := ApdComPort1.GetChar;
        daten := daten + C;
       sleep(15);
    end;
         // Daten in Memo schreiben
  Memo1.SelText:= daten;
  Write(f,daten);
  CloseFile(f);
end;

//Formular schließen
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Timer2.Enabled:=false;
ApdComPort1.Open:=false;
end;

end.
[edit=Luckie] Mfg, Luckie[/edit]
Et kütt wie et kütt. Es is wie et is. Un et hätt noch imme jot jejange!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz