AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Welche Sprache und wie in Delphi implementieren?

Welche Sprache und wie in Delphi implementieren?

Ein Thema von tkone · begonnen am 26. Aug 2010 · letzter Beitrag vom 30. Aug 2010
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#1

AW: Welche Sprache und wie in Delphi implementieren?

  Alt 26. Aug 2010, 13:32
OK, und wenn die Standardparameter des gewünschten COM-Ports seitens Windows schon auf 9600,N,8,1 stehen, dann reicht auch ein AssignFile(f, 'COM1')
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#2

AW: Welche Sprache und wie in Delphi implementieren?

  Alt 26. Aug 2010, 13:41
OK, und wenn die Standardparameter des gewünschten COM-Ports seitens Windows schon auf 9600,N,8,1 stehen, dann reicht auch ein AssignFile(f, 'COM1')
Aber nur wenn im Protokoll ausschließlich ASCII/ANSI-Zeichen und keine Steuerzeichen auftreten, was bei "drei Bytes: Geräteadresse, Gruppenadresse, Datenbyte" eventuell nicht der Fall ist. Und wahrscheinlich gibt's auch Probleme wenn gleichzeitig gelesen und geschrieben werden soll.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#3

AW: Welche Sprache und wie in Delphi implementieren?

  Alt 26. Aug 2010, 13:54
Nee.

PS: Die sogenannten RS232-Komponenten nutzen oftmals auch nur den Weg über CreateFile (welches im AssignFile gekapselt ist).
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#4

AW: Welche Sprache und wie in Delphi implementieren?

  Alt 26. Aug 2010, 14:40
Nee.

PS: Die sogenannten RS232-Komponenten nutzen oftmals auch nur den Weg über CreateFile (welches im AssignFile gekapselt ist).
Ach ja?
Welchen Typ soll denn f haben? Und wie liest und schreibst Du gleichzeitig? Und vor allem: wie setzt und liest Du Steuerleitungen (DTR, RTS etc), wie behandelst Du CTS/DSR?
  Mit Zitat antworten Zitat
Robotiker
(Gast)

n/a Beiträge
 
#5

AW: Welche Sprache und wie in Delphi implementieren?

  Alt 26. Aug 2010, 15:01
Die sogenannten RS232-Komponenten nutzen oftmals auch nur den Weg über CreateFile
Natürlich. Man braucht ja den von CreateFile zurückgegebenen Handle in allen anderen APIs die etwas mit der seriellen Schnittstelle tun.

http://www.delphipraxis.net/126702-k...erialport.html
  Mit Zitat antworten Zitat
tkone

Registriert seit: 2. Okt 2009
Ort: Sachsen
63 Beiträge
 
Delphi 7 Professional
 
#6

AW: Welche Sprache und wie in Delphi implementieren?

  Alt 27. Aug 2010, 07:48
Erstmal vielen dank für die zahlreichen antworten.
werd mich gleich mal dransetzen und schauen, was ich feines zusammenbasteln kann
  Mit Zitat antworten Zitat
tkone

Registriert seit: 2. Okt 2009
Ort: Sachsen
63 Beiträge
 
Delphi 7 Professional
 
#7

AW: Welche Sprache und wie in Delphi implementieren?

  Alt 30. Aug 2010, 18:41
so ich hab mal etwas zeit zu basteln
hab mich zunächst an der DLL versucht, da ich nicht so viel zum orginalprogramm verändern möchte.
die vb deklarationen sahen so aus
Code:
Attribute VB_Name = "Module1"
Declare Function OPENCOM Lib "RSCOM" (ByVal OpenString$) As Integer
Declare Sub TIMEOUTS Lib "RSCOM" (ByVal b%)
Declare Sub BUFFERSIZE Lib "RSCOM" (ByVal b%)
Declare Sub CLOSECOM Lib "RSCOM" ()
Declare Sub SENDBYTE Lib "RSCOM" (ByVal Dat%)
Declare Function READBYTE Lib "RSCOM" () As Integer
Declare Sub SENDSTRING Lib "RSCOM" (ByVal Dat$)
Declare Function READSTRING Lib "RSCOM" () As String
Declare Sub CLEARBUFFER Lib "RSCOM" ()
Declare Function INBUFFER Lib "RSCOM" () As Integer
Declare Function OUTBUFFER Lib "RSCOM" () As Integer
Declare Sub DTR Lib "RSCOM" (ByVal b%)
Declare Sub RTS Lib "RSCOM" (ByVal b%)
Declare Sub TXD Lib "RSCOM" (ByVal b%)
Declare Function CTS Lib "RSCOM" () As Integer
Declare Function DSR Lib "RSCOM" () As Integer
Declare Function RI Lib "RSCOM" () As Integer
Declare Function DCD Lib "RSCOM" () As Integer
Declare Function INPUTS Lib "RSCOM" () As Integer
Declare Sub TIMEINIT Lib "RSCOM" ()
Declare Function TIMEREAD Lib "RSCOM" () As Double
Declare Sub DELAY Lib "RSCOM" (ByVal ms As Double)
Declare Sub REALTIME Lib "RSCOM" ()
Declare Sub NORMALTIME Lib "RSCOM" ()

Declare Function ShellExecuteA Lib "shell32.dll" ( _
    ByVal hwnd As Long, ByVal lpOperation As String, _
    ByVal lpFile As String, ByVal lpParameters As String, _
    ByVal lpDirectory As String, ByVal nShowCmd As Long _
  ) As Long
bisher sieht meine unit so aus
Delphi-Quellcode:
unit Controller;

interface

{$L 'RSCOM.dll'}
procedure OPENCOM (OpenString:string); stdcall; external 'RSCOM.dll';
procedure TIMEOUTS (b:integer); stdcall; external 'RSCOM.dll';
procedure BUFFERSIZE (b:integer); stdcall; external 'RSCOM.dll';
procedure CLOSECOM (); stdcall; external 'RSCOM.dll';
procedure SENDBYTE (Dat:string); stdcall; external 'RSCOM.dll';
function READBYTE (): Integer; stdcall; external 'RSCOM.dll';
procedure SENDSTRING (Dat:string); stdcall; external 'RSCOM.dll';
function READSTRING (): String; stdcall; external 'RSCOM.dll';
procedure CLEARBUFFER (); stdcall; external 'RSCOM.dll';
function INBUFFER (): Integer; stdcall; external 'RSCOM.dll';
function OUTBUFFER (): Integer; stdcall; external 'RSCOM.dll';
procedure DTR (b:integer); stdcall; external 'RSCOM.dll';
procedure RTS (b:integer); stdcall; external 'RSCOM.dll';
procedure TXD (b:integer); stdcall; external 'RSCOM.dll';
function CTS (): Integer; stdcall; external 'RSCOM.dll';
function DSR (): Integer; stdcall; external 'RSCOM.dll';
function RI (): Integer; stdcall; external 'RSCOM.dll';
function DCD (): Integer; stdcall; external 'RSCOM.dll';
function INPUTS (): Integer; stdcall; external 'RSCOM.dll';
procedure TIMEINIT (); stdcall; external 'RSCOM.dll';
function TIMEREAD (): Double; stdcall; external 'RSCOM.dll';
procedure DELAY (ms: Double); stdcall; external 'RSCOM.dll';
procedure REALTIME (); stdcall; external 'RSCOM.dll';
procedure NORMALTIME (); stdcall; external 'RSCOM.dll';

function ShellExecuteA (hwnd: Longint; lpOperation: String; lpFile: String;
         lpParameters: String; lpDirectory: String; nShowCmd: Longint): Longint;
         stdcall; external 'shell32.dll';

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
function INBUFFER (): Integer; stdcall;
end;

end.
jetzt mekert mein delphi natürlich herum, dass noch eine deklaration erwartet wird ( vor uses)
hat jemand eine ahnung, wie ich das handhaben kann?
  Mit Zitat antworten Zitat
Robotiker
(Gast)

n/a Beiträge
 
#8

AW: Welche Sprache und wie in Delphi implementieren?

  Alt 26. Aug 2010, 14:40
OK, und wenn die Standardparameter des gewünschten COM-Ports seitens Windows schon auf 9600,N,8,1 stehen, dann reicht auch ein AssignFile(f, 'COM1')
Nach meiner Erfahrung werden diese Parameter nur beim Start von Windows so in der Hardware eingestellt.

Wenn danach ein Programm die Schnittstelleneinstellungen verstellt hat, bleiben sie so stehen, wie das Programm sie hinterlassen hat.

Bin nicht sicher, ob das allgemein so ist, konnte es aber schon auf diversen PCs reproduzieren. Deswegen sollte man besser immer alle Schnittstelleneinstellungen zuweisen, entweder über BuildCommDCB oder einen selbst erstellten DCB.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:35 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