Ejemplo n.º 1
0
static esp_err_t event_handler(void *ctx, system_event_t *event)
{
    httpd_handle_t *server = (httpd_handle_t *) ctx;

    switch(event->event_id) {
    case SYSTEM_EVENT_STA_START:
        ESP_LOGI(TAG, "SYSTEM_EVENT_STA_START");
        ESP_ERROR_CHECK(esp_wifi_connect());
        break;
    case SYSTEM_EVENT_STA_GOT_IP:
        ESP_LOGI(TAG, "SYSTEM_EVENT_STA_GOT_IP");
        ESP_LOGI(TAG, "Got IP: '%s'",
                ip4addr_ntoa(&event->event_info.got_ip.ip_info.ip));

        /* Start the web server */
        if (*server == NULL) {
            *server = start_webserver();
        }
        break;
    case SYSTEM_EVENT_STA_DISCONNECTED:
        ESP_LOGI(TAG, "SYSTEM_EVENT_STA_DISCONNECTED");
        ESP_ERROR_CHECK(esp_wifi_connect());

        /* Stop the web server */
        if (*server) {
            stop_webserver(*server);
            *server = NULL;
        }
        break;
    default:
        break;
    }
    return ESP_OK;
}
Ejemplo n.º 2
0
int main(int argc, char *argv[]) {
	pthread_t 		thread;

	/* init threads */
    g_thread_init (NULL);
    gdk_threads_init ();
    gdk_threads_enter ();

    gtk_init(&argc, &argv);

    initApp();

    appdata->program = HILDON_PROGRAM(hildon_program_get_instance());
    g_set_application_name("Webview");

    appdata->window = HILDON_WINDOW(hildon_window_new());
    hildon_program_add_window(appdata->program, appdata->window);


    create_menu(appdata->window);
    build_interface(appdata->window);

    /* Connect signal to X in the upper corner */
    g_signal_connect(G_OBJECT(appdata->window), "delete_event", G_CALLBACK(destroy), NULL);

	update_image();
	load_settings();

	gtk_widget_show_all(GTK_WIDGET(appdata->window));

	if(! start_camera(appdata->window))
	{
		g_warning("Unable to start camera\n");

		GtkWidget *failDialog = gtk_message_dialog_new(NULL,
	     		GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR,
	     		GTK_BUTTONS_OK,
	     		"Unable to start camera\n");
		gtk_dialog_run (GTK_DIALOG (failDialog));
		gtk_widget_destroy (failDialog);
	}

	if(! start_webserver())
	{
		GtkWidget *failDialog = gtk_message_dialog_new(NULL,
	     		GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR,
	     		GTK_BUTTONS_OK,
	     		"Unable to start web server.\nCheck server port is not already in use.\n");
		gtk_dialog_run (GTK_DIALOG (failDialog));
		gtk_widget_destroy (failDialog);
	}
	sleep(1);

	pthread_create(&thread, NULL, count_down_thread, NULL);

	gtk_main();

	gdk_threads_leave ();
	return( 0 );
}
Ejemplo n.º 3
0
static void
on_btnSave_clicked(GtkWidget *button, gpointer userdata) {


	gint server_port_int = g_ascii_strtod(gtk_entry_get_text(GTK_ENTRY(txtServerPort)), NULL);
	if( (server_port_int < 1024) || (server_port_int > 32766) )
	{
			GtkWidget *failDialog = gtk_message_dialog_new(NULL,
		     		GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR,
		     		GTK_BUTTONS_OK,
		     		"Bad server port value.\nServer port must be between 1024 and 32766.");
			gtk_dialog_run (GTK_DIALOG (failDialog));
			gtk_widget_destroy (failDialog);
			return;
	  }

	gint update_interval_int = g_ascii_strtod(gtk_entry_get_text(GTK_ENTRY(txtUpdateInterval)), NULL);
	if( (update_interval_int < 1) || (update_interval_int > 1000000) )
	{
		GtkWidget *failDialog = gtk_message_dialog_new(NULL,
	     		GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR,
	     		GTK_BUTTONS_OK,
	     		"Bad update interval entered. Please enter a value between 1 and 1000000\n");
		gtk_dialog_run (GTK_DIALOG (failDialog));
		gtk_widget_destroy (failDialog);
		return;
	}

	stop_webserver();
	save_settings();
	load_settings();
	start_webserver();
	gtk_widget_destroy(button);
}
Ejemplo n.º 4
0
int main(int argc, char **argv)
{
	int webfd;
	
	tnrld = new_tnrld(10002);

	connections = new_ilist(500);
	processes = new_ilist(500);

	loop = EV_DEFAULT;

	// Start tnrld on port 10002.
	webfd = start_webserver("10002");
	if (webfd < 0) {
		exit(1);
	}

	tnrld->listen_fd = webfd;
	tnrld->evloop = loop;

	// Signal handler to close cleanly.
	signal(SIGINT, int_handler);

	// Signal handler so child pipes end safely.
	signal(SIGPIPE, SIG_IGN);

	// Set up the main event loop.
	ev_io http_watcher;
	ev_io_init (&http_watcher, accept_cb, webfd, EV_READ);
	ev_io_start(loop, &http_watcher);
	ev_set_io_collect_interval (loop, 0.001);
	ev_loop(loop, 0);

	printf("Server shut down.\n");
	exit(0);
}