AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Lazarus (IDE) Programm stürzt ab und sperrt Comport (USB-RS232)
Thema durchsuchen
Ansicht
Themen-Optionen

Programm stürzt ab und sperrt Comport (USB-RS232)

Ein Thema von Maja Jessica · begonnen am 17. Mai 2016 · letzter Beitrag vom 6. Dez 2016
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.054 Beiträge
 
Delphi 12 Athens
 
#1

AW: Programm stürzt ab und sperrt Comport (USB-RS232)

  Alt 18. Mai 2016, 03:01
Versuche einmal im Gerätemanager den seriellen Port zu ändern, z.B. auf COM7. Den sollte dann ja niemand kennen.

Wurde das Gerät automatisch erkannt oder musstest du manuell Treiber installieren? Wenn es ein Original ist, sollte es unter Windows 10 einfach so ohne Treiber funktionieren.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
989 Beiträge
 
Delphi 6 Professional
 
#2

AW: Programm stürzt ab und sperrt Comport (USB-RS232)

  Alt 18. Mai 2016, 04:25
Hmm...

Mal Vorweg eine Frage:

Wie greifst Du auf den ComPort zu?

Über den Windows-Weg mit 'CreateFile(...)' oder direkt irgendwie auf den Treiber?

Welche Comport-Componente verwendest Du?
  Mit Zitat antworten Zitat
Maja Jessica

Registriert seit: 16. Apr 2005
Ort: Dortmund
95 Beiträge
 
Delphi 4 Standard
 
#3

AW: Programm stürzt ab und sperrt Comport (USB-RS232)

  Alt 18. Mai 2016, 08:54
Treiber wurde nicht direkt installiert, habe aber ein Install für 64bit gefunden.
Diesen Installiert, klappte dann auch zwei Tage ohne Probleme. Bis zu diesem Absturz.
Im Gerätemanager auf andere Comport umgelegt -> kein Erfolg.
Komplett deinstalliert inkl. Treiber, Neustart, wieder installiert, Neustart -> Das gleiche: gesperrt.
Benutze dieses SdpoSerial1RxData aus 5dpo / SdpoSerial (sourceforge)

Jetzt geb ich es auf, warte auf den DHL-Mann der mir den Win10/64 empfohlenen Stick bringt.

Aber vielen Dank an alle für eure Hilfe
Ich glaub' ich bin zu alt für sowas ....
  Mit Zitat antworten Zitat
Benutzerbild von bytecook
bytecook

Registriert seit: 6. Aug 2010
Ort: Dornbirn
151 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Programm stürzt ab und sperrt Comport (USB-RS232)

  Alt 18. Mai 2016, 12:37
Treiber wurde nicht direkt installiert, habe aber ein Install für 64bit gefunden.
Diesen Installiert, klappte dann auch zwei Tage ohne Probleme. Bis zu diesem Absturz.
Im Gerätemanager auf andere Comport umgelegt -> kein Erfolg.
Komplett deinstalliert inkl. Treiber, Neustart, wieder installiert, Neustart -> Das gleiche: gesperrt.
Benutze dieses SdpoSerial1RxData aus 5dpo / SdpoSerial (sourceforge)

Jetzt geb ich es auf, warte auf den DHL-Mann der mir den Win10/64 empfohlenen Stick bringt.

Aber vielen Dank an alle für eure Hilfe
Bist du sicher, dass das Programm beim Exit nicht irgendwo noch im Taskmanager sichtbar ist? Auch mal unter Prozesse nachsehen,
wenn die Mainform schon aufgelöst ist, das Proggy aber nicht vollständig zu ist, kommt das mal schon vor...

Bzw, beende die Connection mal vorher schon, in dem du den Port manuell schließt, danach erst das Programm...

Lg,

Peter
Peter
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.784 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Programm stürzt ab und sperrt Comport (USB-RS232)

  Alt 18. Mai 2016, 12:40
.. was mir nicht in den Kopf will, ist dass nach einem reboot der Port immer noch blockiert ist.

Startet das Tool denn beim Neustart automatisch?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Programm stürzt ab und sperrt Comport (USB-RS232)

  Alt 18. Mai 2016, 13:23
Ich hätte jetzt gefragt, ob es sich um Windows 8.1 handelt.
Da gibt es auch so einen "Bug".

Mit einem anderen Treiber ging es besser und nach dem Upgrade aus Windows 10 ging es endlich richtig.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Maja Jessica

Registriert seit: 16. Apr 2005
Ort: Dortmund
95 Beiträge
 
Delphi 4 Standard
 
#7

AW: Programm stürzt ab und sperrt Comport (USB-RS232)

  Alt 18. Mai 2016, 14:26
An Task's, die noch irgendwo herumgeistern, habe ich nichts gefunden.
Das Schliessen des Comports erfolgt unter Form.OnClose.
Habe alles reduziert auf ein kleines Testprogramm. (Ich weiss, da sind Sachen drin "die man so nicht macht")
Und ja, der Comport ist selbst nach einem Neustart blockiert.

So langsam bin ich der Ansicht, das dieses alles nicht mit Lazarus zu tun hat.
War wohl nur zufällig passiert als ich das mit Lazarus erstellte Programm ausserhalb der IDE gestartet hatte. (Off-Topic verschieb?)

Also:
- Heute morgen backup von C neu eingespielt, Comport ok.
- Lazarus IDE -> Programm kompiliert und gestartet, ok.
- Programm ausserhalb IDE gestartet, auch gut.
- Mehrfach wiederholt, alles ok.
Dann aber (ja, mach man auch nicht):
wärend Programm (exe.file) läuft den USB/RS232 abgezogen.
Keine Fehlermeldung, aber natürlich auch keine Kommunikation.
USB/RS232 wieder gesteckt, seit dem kann ich mit nichts mehr auf den Comport zugreifen.
HTERM schreibt: "Com6 is blocked by another application"
Der Gerätemanager zeigt "alles gut" an, finde auch wieder nichts im Hintergrund.

Also gehe ich davon aus, das bei dem ersten gau auch zufällig ein Wackeliger in der Hardware war.
Nur das darauf Windows sich mit einem erzwungenen Neustart meldete.
Jetzt nicht.
Würde jetzt gerne einen Neustart tätigen, um zu sehen on Comport immer noch geblockt ist,
leider läuft gerade ein Backup (60%), welches noch etwa eine Stunde dauert.

Bin mal gespannt ...

Code:
unit unitspannung;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ComCtrls, SdpoSerial;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Memo1: TMemo;
    ProgressBar1: TProgressBar;
    SdpoSerial1: TSdpoSerial;
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure SdpoSerial1RxData(Sender: TObject);
    procedure anzeige(s: string);
  private
    { private declarations }
  public
    { public declarations }
    eingang : string;
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure Tform1.anzeige(s: string);
var i : integer;
    ftemp : real;
begin
  for i:=1 to length(s) do if s[i]='.' then s[i]:=',';
  Label1.Caption := Copy(s,3,6);
  ftemp := StrToFloat(label1.caption);
  ProgressBar1.Position := Round(ftemp);
  label1.Caption := Format('%2.2f',[(12/1023)* ftemp])+'V';
end;

procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
  SdpoSerial1.Active:=false;
  SdpoSerial1.Close;
end;

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

procedure TForm1.Button1Click(Sender: TObject);
begin
  SdpoSerial1.Active:=true;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  SdpoSerial1.Device := 'COM6';
end;

procedure TForm1.SdpoSerial1RxData(Sender: TObject);
begin
  eingang := eingang + SdpoSerial1.ReadData;
  if length(eingang) >= 52 then
  begin
    anzeige(eingang);
    Memo1.Lines.Add(eingang);
    eingang := '';
  end;
end;


end.
Auch wenn es vermutlich grausam ist, am Programm liegt es nicht.
Ich glaub' ich bin zu alt für sowas ....
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: Programm stürzt ab und sperrt Comport (USB-RS232)

  Alt 18. Mai 2016, 14:33
Nur als Anreiz..

Eine Formatierung wäre nicht schlecht.
Und leere proceduren sind unnötig.
Da hier in FormCreate nichts geschieht kannst du diese auch direkt löschen.

Oder aber du packst das
SdpoSerial1.Device := 'COM6';
nach FormCreate

und löschst FormShow

gruss

Geändert von EWeiss (18. Mai 2016 um 14:36 Uhr)
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#9

AW: Programm stürzt ab und sperrt Comport (USB-RS232)

  Alt 18. Mai 2016, 14:37
The trick is to open the Command Prompt as administrator and start the Device Manager from the same command prompt.

1. Right-click “Command Prompt” in Accessories and choose “Run as Administrator”

2. Enter set devmgr_show_nonpresent_devices=1

3. Enter start devmgmt.msc

4. In the box that opens, select Show hidden devices in the ‘view’ menu.

Now if you expand the section on COM ports, all the COM ports that have ever been created will be displayed, the non present ones being in grey. You can uninstall away anything that you don’t want
(right click, select uninstall).
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:07 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