AW: Realisierung Programm wurde gewisse Zeit nicht bedient ?
a) GetTickCount gibt die Werte in Millisekunden zurück, somit sind 5 Minuten eigentlich $000493E0. Wäre es in Sekunden, würde es weit über 100 Jahre reichen (siehe Unix-Timestamp).
b) Aber bleiben wir mal beim Seundentakt: $012C - $FFFFF8F7 = $0835 = 2101 Sekunden = 35 Minuten - und das ist doch richtig, oder habe ich da was falsch verstanden? :stupid: |
AW: Realisierung Programm wurde gewisse Zeit nicht bedient ?
LASTINPUTINFO = $FFFF8AD0 (30s vor Überlauf)
GetTickCount = $00007530 (30s nach Überlauf) $00007530 - $FFFF8AD0 = $0000EA60 (60s) Man muß nur beim Rechnen aufpassen, daß man natürlich unsigned (Cardinal) rechnet, damit der Überlauf korrekt behandelt wird. :stupid: Wobei es hier zufällig signed auch mal paßt. 30 - -30 = 60 [add] @Deep-Sea: nee, hast'e nicht :D |
AW: Realisierung Programm wurde gewisse Zeit nicht bedient ?
Zitat:
Zitat:
|
AW: Realisierung Programm wurde gewisse Zeit nicht bedient ?
Bei aller Begeisterung und Beteiligung von euch.
Die Frgae die ich mir stelle ist, wird die Waage über einen Rechner gesteuert und gibt sie über einer Schnittstelle die Daten, oder ist das eine Kassenwaage oder oder oder...? Im ersteren muss man ja nur die Schnittstelle abfragen(wenn es erlaubt wird) ob da was passiert, wenn nicht dann Standby senden(aber Vorsicht Daten). Also bleibt doch wohl erstmal die Frage, was es genau ist und wie das ganze Arbeitet, bevor man sich an sowas ranwagt :!: Und dann kann man sehen ob man den Rechner abfragt die Schnittstelle oder sogar die Software. Gruss alfold |
AW: Realisierung Programm wurde gewisse Zeit nicht bedient ?
Guten Morgen,
die Waage ist dumm, es gibt ein ser. Kommando "gehe in Standby", die Kollegen vergessen immer wieder die Waage über deren Bedienpult in diesen Modus zu schalten, deswegen sollte dies über den PC automatisiert werden. Wird mit dem Program solange nicht gearbeitet, so schalte Waage in Stand by-Modus. Auf dem Rechner laufen noch Office-Programme, die in der Zwischenzeit von den Kollegen benutzt werden. Gruss |
AW: Realisierung Programm wurde gewisse Zeit nicht bedient ?
Delphi-Quellcode:
Gibts außer dem Timer noch etwas auszusetzen?
unit Unit1;
interface uses Windows, SysUtils, Classes, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Messages, AppEvnts; type TForm1 = class(TForm) tmr1: TTimer; aplctnvnts1: TApplicationEvents; procedure FormCreate(Sender: TObject); procedure tmr1Timer(Sender: TObject); procedure aplctnvnts1Message(var Msg: tagMSG; var Handled: Boolean); private FLastUserInput: Cardinal; FUserIsAfk: Boolean; function GetTimeSinceLastTick: Cardinal; end; var Form1: TForm1; implementation {$R *.dfm} const UserIsAfkIn = 5000; // ms procedure TForm1.aplctnvnts1Message(var Msg: tagMSG; var Handled: Boolean); begin case Msg.Message of WM_KEYFIRST..WM_KEYLAST, WM_MOUSEFIRST..WM_MOUSELAST: if Msg.Message <> WM_MOUSEMOVE then FLastUserInput := GetTickCount; end; end; procedure TForm1.FormCreate(Sender: TObject); begin FLastUserInput := GetTickCount; FUserIsAfk := false; Caption := 'state green'; end; function TForm1.GetTimeSinceLastTick: Cardinal; begin if GetTickCount < FLastUserInput then Result := (High(Cardinal) - FLastUserInput) + GetTickCount else Result := GetTickCount - FLastUserInput; end; procedure TForm1.tmr1Timer(Sender: TObject); begin if FUserIsAfk then begin if GetTimeSinceLastTick < UserIsAfkIn then begin Caption := 'User is back'; FUserIsAfk := false; end; end else begin if GetTimeSinceLastTick >= UserIsAfkIn then begin Caption := '!!! Zomg! User stopped workin and idles around !!!'; FUserIsAfk := true; end; end; end; end. |
AW: Realisierung Programm wurde gewisse Zeit nicht bedient ?
Zitat:
Zitat:
Delphi-Quellcode:
Darum ja auch die Frage von mir ob die Waage eine Schnittstelle hatt, welche?
case Msg.Message of
WM_KEYFIRST..WM_KEYLAST, WM_MOUSEFIRST..WM_MOUSELAST: if Msg.Message <> WM_MOUSEMOVE then FLastUserInput := GetTickCount; end; Denn er muss ja den Befehl zur Waage schicken! Nächste Frage ist, ob die Waage den 'Befehl Standby' von aussen überhaupt erkennt? Nicht das es nur ne Hardware Angelegenheit ist! Dann hatt sich das Thema Software eh erledigt! Wenn ja, dann fragt man nicht die Software ab (ob damit jemand arbeitet), sondern die Schnittstelle, ob da was passiert! Solltest Du @RalfE erst mal Prüfen! Gruss alfold |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz