Page 2 of 2 FirstFirst 1 2
Results 16 to 18 of 18

Thread: Thread in een service

  1. #16
    Quote Originally Posted by cpri View Post
    No wel een vraag over de opmerking dat de call direct moet terugkeren
    Met 'direct' bedoel ik een redelijk tijd. Dus dat mag wel 1 of 2 seconden zijn maar geen minuut of meer.
    Want als je de service wilt stoppen dan moet die loop wel in een redelijke tijd kunnen reageren.
    (en met langer dan 30 of 60 seconden kan het zijn dat Windows denkt dat je programma hangt)

    Maar je kunt dus gewoon nog steeds met een aparte class werken THWP1, die met THWP1.Read de waardes uitleest, zoals ik liet zien in mijn voorbeeld.
    Alleen zou ik die geen TThread maken en dus niet starten met THWP1.Start, maar gewoon direct THWP1.Read e.d. doen.

    In je aparte applicatie om te testen kun je de ServiceExecute nabootsen met een eigen routine procedure TestServiceExecute waarin je hetzelfde doet.

    Delphi Code:
    1. procedure TestServiceExecute;
    2. var
    3.   startTime64, endTime64, frequency64: Int64;
    4.   elapsedSeconds: single;
    5. begin
    6.   QueryPerformanceFrequency(frequency64);
    7.   QueryPerformanceCounter(startTime64);
    8.   HWP1.Create( ?? );
    9.   while not Terminated do
    10.   begin
    11.     QueryPerformanceCounter(endTime64);
    12.     elapsedSeconds := (endTime64 - startTime64) / frequency64;
    13.     if elapsedSeconds >= 60 then
    14.     begin
    15.       HWP1.ReadData; // MOET direct terugkeren
    16.       HWP1.Save2DB;
    17.       QueryPerformanceCounter(startTime64);
    18.     end;
    19.     // ServiceThread.ProcessRequests(false);   // De ProcessRequest hebben we hier niet nodig
    20.     Sleep(100);
    21.   end;
    22.   HWP1.Free;
    23. end;

    PS. Begrijp ik hier dat je een P1 meter device uit aan het lezen bent? Waarom dan 1x per uur.
    (Je leest het in jouw voorbeeld overigens wel weer in 60 seconden uit)
    Ik lees hier per 15 seconden uit (zodat ik de power direct kan zien van mijn P1 en zonnepanelen).

    En doe je dit eigenlijk op een PC of server? Deze aan laten staan om een P1 uit te lezen is dan ook redelijk duur.
    Een PC trekt zo 100W en dat is 876kW op jaarbasis. Wel zo even €350 per jaar.
    Als je voor zoiets nu een raspberry pi (of ander boordje) pakt dan is het maar 5W (43kW = €17 op jaarbasis)

    (Toen ik thuis ging werken heb ik mijn grote Dell server ook gelijk de deur uit gedaan. Die trok 170W )

  2. #17
    Klopt gaat idd om de Homewizard P1 meter.
    In de app heb ik de realtime data zichtbaar (ververst iedere 15 seconden)
    Echter mijn gas wordt maar 1x per uur geupdate (oude slimme meter)
    Daarnaast is het voor mij vooral relevant om te weken of maanden met elkaar te vergelijken (dus januari 2023 vs januari 2022)

    Aangezien ik al een server heb draaien (intel NUC) is dit een logische plek hiervoor.
    Ga nog wel even een testje doen om te zien wat het verbuik daarvan is

    In mijn voorbeeld stond idd de tijd nog wat korter anders wordt het debuggen zo traag ;-)

    De thread is er nu uit.

  3. #18
    Quote Originally Posted by cpri View Post
    Echter mijn gas wordt maar 1x per uur geupdate (oude slimme meter)
    Ah, ok, dan is het inderdaad logisch dat je het 1x per uur uitleest.

    Quote Originally Posted by cpri View Post
    Aangezien ik al een server heb draaien (intel NUC) is dit een logische plek hiervoor.
    Een NUC zou wel iets zuiniger kunnen zijn. Maar altijd wel handig om dat even te controleren.

    Je kunt toch wat verassingen tegenkomen, als je al je apparaten in huis na gaat meten, wat die aan energie verbruiken

Page 2 of 2 FirstFirst 1 2

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •