AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi An com port gesendete daten lesen
Thema durchsuchen
Ansicht
Themen-Optionen

An com port gesendete daten lesen

Ein Thema von schweindi · begonnen am 3. Mär 2010 · letzter Beitrag vom 7. Mär 2010
 
schweindi

Registriert seit: 4. Feb 2010
60 Beiträge
 
#33

Re: An com port gesendete daten lesen

  Alt 6. Mär 2010, 19:53
super, also hier mal eine kurze (!!) beschreibung:
hab 2 edits:
1) gibt den comport an ('com6' in meinem Fall)
2) gibt den Befehl an, den man ans modem senden will (nur mal als test ob alles funktioniert)

Buttons:
1) 'Test Connection' -> code:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var StartIni : TIniFile;
begin
ComPort1.Port:=Edit1.Text;
//Ini File
StartIni:=TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI'));
try
StartIni.writeString('Com','Name',Edit1.Text);
finally
  StartIni.Free;
end;
ComPort1.Open;
end;
2) Disconnect (Testzweck) beinhaltet nur Comport1.Close;
3) Write -> sendet das was in Edit2.Text steht an den Port -> code:

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var Str: String;
begin
//write to port
Str := Edit2.Text;
//ComPort1.WriteStr(Str); // string type variable
ComPort1.Write(Str[1], Length(Str)); // no defined type
ComPort1.TransmitChar(#13);
ShowMessage('Write Data Successfull');
//answer
//read_answer; //das war mein Alternativversuch, wird nicht verwendet
//answer with datapacket
ComDataPacket1.StartString:=#10; //hier angegeben, da es per Optionsmenu als '#13' angegeben wird (alter fehler)
ComDataPacket1.StopString:=#13;
end;
so und jetzt noch die komponenten:
1) TComPort ('ComPort1'):

Delphi-Quellcode:
object ComPort1: TComPort
    BaudRate = br9600
    Port = 'COM6'
    Parity.Bits = prNone
    StopBits = sbOneStopBit
    DataBits = dbEight
    EventChar = #10
    Events = [evRxChar, evTxEmpty, evRxFlag, evRing, evBreak, evCTS, evDSR, evError, evRLSD, evRx80Full]
    Buffer.InputSize = 4096
    Buffer.OutputSize = 4096
    FlowControl.OutCTSFlow = True
    FlowControl.OutDSRFlow = False
    FlowControl.ControlDTR = dtrDisable
    FlowControl.ControlRTS = rtsHandshake
    FlowControl.XonXoffOut = False
    FlowControl.XonXoffIn = False
    Timeouts.ReadInterval = 20
    Timeouts.ReadTotalMultiplier = 100
    Timeouts.ReadTotalConstant = 10000
    Timeouts.WriteTotalMultiplier = 2
    Timeouts.WriteTotalConstant = 10000
    OnError = ComPort1Error
    Left = 8
    Top = 200
  end
2) TComDataPacket -> code:

Delphi-Quellcode:
  object ComDataPacket1: TComDataPacket
    ComPort = ComPort1
    OnPacket = ComDataPacket1Packet
    Left = 48
    Top = 200
  end
und zuletzt noch: OnPacket ->

Delphi-Quellcode:
procedure TForm1.ComDataPacket1Packet(Sender: TObject; const Str: String);
begin
ShowMessage('Packet RX: '+IntToStr(length(str)));
ShowMessage(str);
end;
so das wäre alles... hoffe es hilft dir weiter
  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 20:04 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