Jump to content

[C/C++] Zeitsteuerung


Recommended Posts

Geschrieben

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

Geschrieben

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

Geschrieben

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.

Join the conversation

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

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...