Jump to content

[C/C++] Zeitsteuerung


Recommended Posts

Posted

Hallo,

da ich leider immer wieder Probleme mit meinen Wochenschaltzeituhren habe die mein Aquarium steuern (verlieren das Programm, setzen sich zurück...), will ich das nun einfach mit meinem Pi und ein paar Funksteckdosen lösen. Mein Problem ist wie ich die Uhrzeit verarbeiten kann damit die Dose auch z.B. um 23:00 Uhr ausschält. Habe mich etwas schlau gemacht und leider entweder Infos gefunden die mich als Anfänger komplett überfordern oder wie ich die Uhrzeit anzeigen lassen kann (was mich schon sehr stolz macht  ;) ). Wie ich das RemoteBricklet dazu kriege zu senden habe ich soweit im Griff nur eben die Zeit nicht.

Habt ihr Vorschläge wie ich das Problem lösen könnte?

 

Grüße  :)

Posted

Hallo Broken_Mind,

 

ich habe jetzt nicht so den Plan von C++ bin aber direkt bei google.de über Antworten gestolpert.

Ich arbeite nur mit PHP und da kann man die Zeiten als Strings abgleichen.

Vielleicht geht das mit C++ auch?

Das könnte dir auch noch weiterhelfen.

 

Gruß,

Nemo

Posted

Du kannst gettimeofday/localtime_r um die aktuelle lokale Zeit als struct zu erhalten:

 

struct tm {
   int tm_sec;         /* seconds */
   int tm_min;         /* minutes */
   int tm_hour;        /* hours */
   int tm_mday;        /* day of the month */
   int tm_mon;         /* month */
   int tm_year;        /* year */
   int tm_wday;        /* day of the week */
   int tm_yday;        /* day in the year */
   int tm_isdst;       /* daylight saving time */
};

 

Hier ein Beispiel:

 

#include <stdio.h>
#include <sys/time.h>
#include <time.h>

int main(void) {
struct timeval tv;
time_t ts;
struct tm lt;

tv.tv_sec = 0;
tv.tv_usec = 0;

gettimeofday(&tv, NULL);

ts = tv.tv_sec;

localtime_r(&ts, &lt);

printf("year  %d\n", 1900 + lt.tm_year);
printf("month   %02d\n", lt.tm_mon);
printf("day     %d\n", lt.tm_mday);
printf("hour    %d\n", lt.tm_hour);
printf("min     %02d\n", lt.tm_min);
printf("sec     %02d\n", lt.tm_sec);

return 0;
}

 

Damit kannst du dann ein Programm bauen, das z.B. in einer Schleife jeweils eine Minute schläft per sleep(60) und sich dann wieder die aktuelle Zeit anschaut und wenn es 23:00 ist den Abschaltbefehl gibt.

Posted

Alles klar vielen Dank  :) Ich versuche mal mein Glück ansonsten melde ich mich wieder  :)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...