Jump to content

[C/C++] Zeitsteuerung


Guest Broken_Mind

Recommended Posts

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  :)

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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...