AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Eigene Ereignisse auslösen

Ein Thema von akurka · begonnen am 25. Mai 2014 · letzter Beitrag vom 1. Jun 2014
Antwort Antwort
Benutzerbild von akurka
akurka

Registriert seit: 30. Dez 2008
Ort: Schweiz, 8636 Wald ZH
81 Beiträge
 
Delphi 7 Personal
 
#1

Eigene Ereignisse auslösen

  Alt 25. Mai 2014, 15:38
Hallo
Folgende Situation :
//----------------------------------
T_CNCStatus = packed record
Kopf :byte;
ZBETR :byte;
ZREFE :byte;
FLAG :byte;
//
//usw. total 16 Byte
SMAXH :byte;
end; //record
//--------------------------------
var Status :T_Status;{Status-Satz}
//----------------------------------------
Wie kann ich ein Ereigniss erzeugen wenn sich der Wert des Bytes im
Status.ZBETR ändert ?
Die var Status wurde beschrieben durch Daten die von rs232 kommen.
mfg Anton
Anton Kurka
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.651 Beiträge
 
Delphi 12 Athens
 
#2

AW: Eigene Ereignisse auslösen

  Alt 25. Mai 2014, 15:58
Kommt der Packed record als Array of Byte aus der RS232 und wird dann in record abgelegt? Oder wird jeder einzelne Wert von "Irgendwem" beschrieben?
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von akurka
akurka

Registriert seit: 30. Dez 2008
Ort: Schweiz, 8636 Wald ZH
81 Beiträge
 
Delphi 7 Personal
 
#3

AW: Eigene Ereignisse auslösen

  Alt 25. Mai 2014, 17:06
Hallo Zeras
Ja, der Record wird ausschliesslich durch RS232 abgefüllt . Allerdings
kann es passieren (in Mehrheit der Fälle), dass die Daten exakt die gleichen
sind. Der ZBETR = Betriebswahl ändert nicht so schnell, ich soll aber nur bei einer Aenderung ein Erreignis (OnChange ) haben.
Gruss Anton
Anton Kurka
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.651 Beiträge
 
Delphi 12 Athens
 
#4

AW: Eigene Ereignisse auslösen

  Alt 25. Mai 2014, 17:17
Wenn die Daten über die RS232 reinkommen, musst du diese ja bewerten.
Beispiel: Wenn 16 Zeichen im Puffer sind, dass du dann was machst. Wenn weniger Zeichen da sind, dann noch warten, bis 16 Zeichen im Puffer sind. Erst dann die Bewertung machen. Nebenbei solltest du noch einen Timeout nutzen, damit, wenn einmal zu wenig Zeichen kommen, diese dann verworfen werden und neu angefragt werden.
Ich weiß zwar nicht, welche RS232 Unit du hast, aber bei den meisten kann man abfragen, wieviel Zeichen im Puffer sind.
Wenn dann diese 16 Zeichen ausgewertet sind, kannst du dich auf dein Byte konzentrieren, welches du prüfen willst.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von akurka
akurka

Registriert seit: 30. Dez 2008
Ort: Schweiz, 8636 Wald ZH
81 Beiträge
 
Delphi 7 Personal
 
#5

AW: Eigene Ereignisse auslösen

  Alt 25. Mai 2014, 17:45
Hallo Zeras
Ja, dass ist im bisherigem (pascal)Programm so, aber das ist nicht umbedingt
OOP like(resp Delphi like). Ich soll vielleicht erwähnen das der Status eine Globale var ist. Ausserdem befinde ich mich in x_te Menü(x_te Form) und die Componente für Async32(auch Ereignis gesteuert) läuft völlig autonom. Ich möchte nicht wieder in das alte Schema von Polling hinein kommen.
Ich möchte nur feststellen können, ob sich die Betriebswahl geändert hat, und falls es so war, wird in das y_te Menue(y_te Form) gewechselt.
Uebrigens läuft die Komponennte Async32(rs232) auf dem Form1 (also Haupt programm).
mfg Anton
Anton Kurka
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.651 Beiträge
 
Delphi 12 Athens
 
#6

AW: Eigene Ereignisse auslösen

  Alt 25. Mai 2014, 18:11
Wie liest du denn die Daten von Async aus?
Dann kannst du dich doch nur in die Empfangsroutine mit reinhängen und dann prüfen. Von allein wird da kein Ereignis kommen.
Vielleicht hilft ein wenig Code von dir weiter.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  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 00:18 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