uint8_t page_path_stack_pop(void) { uint8_t page_id; if (page_stack_ptr == 0) { load_error_page(ERROR_PAGE_PAGE_STACK_UNDERFLOW); print_page(); return 255; } page_id = page_stack[--page_stack_ptr]; return page_id; }
gboolean cog_handle_web_view_load_failed (WebKitWebView *web_view, WebKitLoadEvent load_event, char *failing_uri, GError *error, void *userdata) { // If the resource is going to be shown by a plug-in (or a // media engine) just return FALSE and let WebKit handle it. if (g_error_matches (error, WEBKIT_PLUGIN_ERROR, WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD)) return FALSE; return load_error_page (web_view, failing_uri, "Page load error", error ? error->message : "No error message"); }
static void monitor_insert_reedkontakt_state(uint8_t gruppe, uint8_t state) { eds_block_p it = eds_find_next_block((eds_block_p)0, EDS_userpanel_reedkontakte_BLOCK_ID); if (!it) { load_error_page(ERROR_CONF_REEDKONTAKTE_MISSING); return; } userpanel_reedkontakte_t c; eeprom_read_block(&c, (it+2), sizeof(c)); // Ist ein EEPROM-Zugriff, daher langsamer! uint8_t i; for (i = 0; i < 24; i++) { if (gruppe == c.reed[i]) { //canix_syslog_P(SYSLOG_PRIO_DEBUG, PSTR("g%d %d"), i, state); monitor_reedkontakt_state[i] = state; } } }
/** * Fragt alle konfigurierten Reedkontakte nach ihrem Status und sammelt * die Ergebnisse in monitor_reedkontakt_state */ static void init_monitor_reedkontakt_request_states(void) { eds_block_p it = eds_find_next_block((eds_block_p)0, EDS_userpanel_reedkontakte_BLOCK_ID); if (!it) { load_error_page(ERROR_CONF_REEDKONTAKTE_MISSING); reedkontakt_configured = 0; return; } userpanel_reedkontakte_t c; eeprom_read_block(&c, (it+2), sizeof(c)); uint8_t i; // Ergebnis-Array initialisieren: for (i = 0; i < 24; i++) monitor_reedkontakt_state[i] = 255; // ueber alle Reedkontakte iterieren: for (i = 0; i < 24; i++) { if (c.reed[i] != 255) // ist es ein konfigurierter Reedkontakt? { // Nach Kontakt-Status fragen; die Ergebnisse kommen asynchron // ueber den CAN Handler rein canix_frame message; message.src = canix_selfaddr(); message.dst = HCAN_MULTICAST_CONTROL; message.proto = HCAN_PROTO_SFP; message.data[0] = HCAN_SRV_HES; message.data[1] = HCAN_HES_REEDKONTAKT_STATE_QUERY; message.data[2] = c.reed[i]; // die Reedkontakt-Gruppen-ID message.size = 3; canix_frame_send_with_prio(&message, HCAN_PRIO_LOW); canix_sleep_100th(10); // 100msec Pause } wdt_reset(); } }