int16_t parse_cmd_date(char *cmd, char *output, uint16_t len) { clock_datetime_t date; clock_current_localtime(&date); return generate_time_string(&date, output, len); }
int16_t parse_cmd_date(char *cmd, char *output, uint16_t len) { char *weekdays = "Sun\0Mon\0Tue\0Wed\0Thu\0Fri\0Sat"; struct clock_datetime_t date; clock_current_localtime(&date); return ECMD_FINAL(snprintf_P(output, len, PSTR("%.2d:%.2d:%.2d %.2d.%.2d.%.2d %s"), date.hour, date.min, date.sec, date.day, date.month, date.year % 100, weekdays + date.dow * 4)); }
int16_t parse_cmd_date(char *cmd, char *output, uint16_t len) { struct clock_datetime_t date; clock_current_localtime(&date); return ECMD_FINAL(snprintf_P(output, len, PSTR("%s %02d.%02d.%04d %02d:%02d:%02d"), weekdays[date.dow], date.day, date.month, date.year + 1900, date.hour, date.min, date.sec, date.day)); }
/* If enabled in menuconfig, this function is periodically called change "timer(100,app_sample_periodic)" if needed Wird ca alle 200ms aufgerufen */ int16_t rainmaster_periodic(void) { // Uhrzeit aktualisieren clock_current_localtime(&date); // Eingänge und Sensore abfragen rainmaster_check_inputs(); // GUI Anzeige abarbeiten (Pointer auf Anzeigefunktion im Menu) display_func(); return ECMD_FINAL_OK; }
/* * see fat_config.h for documentation */ void get_datetime(uint16_t * year, uint8_t * month, uint8_t * day, uint8_t * hour, uint8_t * min, uint8_t * sec) { clock_datetime_t date; clock_current_localtime(&date); *day = date.day; *month = date.month; *year = date.year + 1900; *hour = date.hour; *min = date.min; *sec = date.sec; }
void bulbdial_clock(uint8_t delay){ struct clock_datetime_t date; clock_current_localtime(&date); clear(); set(0x0001 << (date.sec/5)); PIN_SET(BULBDIAL_MINUTES); for (uint8_t i = delay; i; i--) _delay_ms(1); PIN_CLEAR(BULBDIAL_MINUTES); clear(); set(0x0001 << (date.min/5)); PIN_SET(BULBDIAL_HOURS); for (uint8_t i = delay; i; i--) _delay_ms(1); PIN_CLEAR(BULBDIAL_HOURS); }
/* If enabled in menuconfig, this function is periodically called change "timer(100,app_sample_periodic)" if needed */ int16_t app_sample_periodic(void) { APPSAMPLEDEBUG ("periodic\n"); // enter your code here clock_datetime_t date; clock_current_localtime(&date); hd44780_goto(3, 0); char tmp_buf [20]; sprintf (tmp_buf,"%02d.%02d.%04d %02d:%02d:%02d", date.day, date.month, date.year + 1900, date.hour, date.min, date.sec); fputs (tmp_buf, &lcd); return ECMD_FINAL_OK; }
/* * lome6 periodical timer function for display and one wire convert command * * if onewire is supported start onewire temperature convert * if lcd is supported display various information */ void lome6_timer(void) { #ifdef LOME6_ONEWIRE_SUPPORT // read 1w temperatures iTemperaturePSU = lome6_get_temperature(&romcodePSU); iTemperatureAIR = lome6_get_temperature(&romcodeAIR); iTemperatureRAM = lome6_get_temperature(&romcodeRAM); #endif // LOME6_ONEWIRE_SUPPORT #ifdef LOME6_LCD_SUPPORT wclear(ttyWindow); if (iLCDPage == 0) { // display uptime and date+time uint32_t working_hours = (clock_get_time() - clock_get_startup()) / 60; struct clock_datetime_t datetime; clock_current_localtime(&datetime); wprintw_P(ttyWindow, PSTR("%02d:%02d %02d.%02d.%04d"), datetime.hour, datetime.min, datetime.day, datetime.month, (datetime.year + 1900)); wclrtoeol(ttyWindow); wmove(ttyWindow, 1, 0); wprintw_P(ttyWindow, PSTR("Uptime: %02lu:%02d"), working_hours / 60, working_hours % 60); wclrtoeol(ttyWindow); #ifndef LOME6_ONEWIRE_SUPPORT if (!PIN_HIGH(POWER_STATE)) iLCDPage = 4; else iLCDPage = 0; #else iLCDPage++; #endif #ifdef LOME6_ONEWIRE_SUPPORT } else if (iLCDPage == 1) { // display onewire temperature sensor data wprintw_P(ttyWindow, PSTR("Temperature")); wclrtoeol(ttyWindow); wmove(ttyWindow, 1, 0); wprintw_P(ttyWindow, PSTR("AIR: %02d.%d"), iTemperatureAIR / 10, iTemperatureAIR % 10); wclrtoeol(ttyWindow); iLCDPage++; } else if (iLCDPage == 2) { // display onewire temperature sensor data wprintw_P(ttyWindow, PSTR("Temperature:")); wclrtoeol(ttyWindow); wmove(ttyWindow, 1, 0); wprintw_P(ttyWindow, PSTR("RAM: %02d.%d"), iTemperatureRAM / 10, iTemperatureRAM % 10); wclrtoeol(ttyWindow); iLCDPage++; } else if (iLCDPage == 3) { // display onewire temperature sensor data wprintw_P(ttyWindow, PSTR("Temperature")); wclrtoeol(ttyWindow); wmove(ttyWindow, 1, 0); wprintw_P(ttyWindow, PSTR("PSU: %02d.%d"), iTemperaturePSU / 10, iTemperaturePSU % 10); wclrtoeol(ttyWindow); iLCDPage++; #endif //LOME6_ONEWIRE_SUPPORT } else if (iLCDPage == 4) { // display temperature data wprintw_P(ttyWindow, PSTR("Temperature")); wclrtoeol(ttyWindow); wmove(ttyWindow, 1, 0); wprintw_P(ttyWindow, PSTR("CPU: %02d.%d"), iTemperatureCPU / 10, iTemperatureCPU % 10); wclrtoeol(ttyWindow); iLCDPage++; } else if (iLCDPage == 5) { // display temperature data wprintw_P(ttyWindow, PSTR("Temperature")); wclrtoeol(ttyWindow); wmove(ttyWindow, 1, 0); wprintw_P(ttyWindow, PSTR("SB: %02d.%d"), iTemperatureSB / 10, iTemperatureSB % 10); wclrtoeol(ttyWindow); iLCDPage = 0; } // start a new convert in next round ow_temp_start_convert_nowait(NULL); #endif // LOME6_LCD_SUPPORT }