forked from j3d1/fiatlux
		
	stash
This commit is contained in:
		
							parent
							
								
									8ffae0b66f
								
							
						
					
					
						commit
						3098c8f1ab
					
				
					 2 changed files with 54 additions and 50 deletions
				
			
		| 
						 | 
				
			
			@ -21,6 +21,7 @@
 | 
			
		|||
#include "lux.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define SNTP_SERVERS     "0.pool.ntp.org", "1.pool.ntp.org", \
 | 
			
		||||
                        "2.pool.ntp.org", "3.pool.ntp.org"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -252,7 +253,7 @@ void user_init(void) {
 | 
			
		|||
    sdk_wifi_set_opmode(wifi_mode);
 | 
			
		||||
 | 
			
		||||
    if(wifi_sta_enable) {
 | 
			
		||||
        printf("try STA Mode\n");
 | 
			
		||||
        printf("try STA Mode: %s %s\n", wifi_sta_ssid, wifi_sta_password);
 | 
			
		||||
        struct sdk_station_config config;
 | 
			
		||||
        strcpy((char *) config.ssid, wifi_sta_ssid);
 | 
			
		||||
        strcpy((char *) config.password, wifi_sta_password);
 | 
			
		||||
| 
						 | 
				
			
			@ -289,7 +290,7 @@ void user_init(void) {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    if(wifi_ap_enable) {
 | 
			
		||||
        printf("try AP Mode\n");
 | 
			
		||||
        printf("try AP Mode: %s %s\n", wifi_ap_ssid, wifi_ap_password);
 | 
			
		||||
        /* Read and validate paramenters. */
 | 
			
		||||
        int8_t wifi_ap_ssid_hidden = 0;
 | 
			
		||||
        sysparam_get_int8("wifi_ap_ssid_hidden", &wifi_ap_ssid_hidden);
 | 
			
		||||
| 
						 | 
				
			
			@ -402,12 +403,12 @@ void user_init(void) {
 | 
			
		|||
        /* turn off LED */
 | 
			
		||||
        //gpio_enable(LED_PIN, GPIO_OUTPUT);
 | 
			
		||||
        //gpio_write(LED_PIN, true);
 | 
			
		||||
        xTaskCreate(&lux_task, "lux_task", 256, NULL, 2, NULL);
 | 
			
		||||
        xTaskCreate(&lux_task, "lux_task", 256, NULL, 1, NULL);
 | 
			
		||||
 | 
			
		||||
        /* initialize tasks */
 | 
			
		||||
        xTaskCreate(&httpd_task, "&httpd_task", 2048, NULL, 2, NULL);
 | 
			
		||||
        xTaskCreate(&httpd_task, "httpd_task", 2048, NULL, 3, NULL);
 | 
			
		||||
 | 
			
		||||
        xTaskCreate(&sntp_task, "SNTP", 512, NULL, 1, NULL);
 | 
			
		||||
        xTaskCreate(&sntp_task, "SNTP", 512, NULL, 2, NULL);
 | 
			
		||||
    }
 | 
			
		||||
>>>>>>> 4b8d354 (basic webconf)
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,9 +11,12 @@
 | 
			
		|||
#include <string.h>
 | 
			
		||||
#include <FreeRTOS.h>
 | 
			
		||||
#include <task.h>
 | 
			
		||||
 | 
			
		||||
extern "C" {
 | 
			
		||||
#include <sysparam.h>
 | 
			
		||||
#include <lwipopts.h>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#include <espressif/esp_common.h>
 | 
			
		||||
 | 
			
		||||
#include <lwip/tcp.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -31,9 +34,10 @@ struct {
 | 
			
		|||
} has_changed;
 | 
			
		||||
 | 
			
		||||
void websocket_task(void *pvParameter) {
 | 
			
		||||
    struct tcp_pcb *pcb = (struct tcp_pcb *) pvParameter;
 | 
			
		||||
    auto *pcb = (struct tcp_pcb *) pvParameter;
 | 
			
		||||
 | 
			
		||||
    int connstarttime = xTaskGetTickCount();
 | 
			
		||||
    size_t connstarttime = xTaskGetTickCount();
 | 
			
		||||
    has_changed = {true, true, true};
 | 
			
		||||
 | 
			
		||||
    for (;;) {
 | 
			
		||||
        if(pcb == NULL || pcb->state != ESTABLISHED) {
 | 
			
		||||
| 
						 | 
				
			
			@ -43,8 +47,8 @@ void websocket_task(void *pvParameter) {
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
        //Global Info
 | 
			
		||||
        if(has_changed.global){
 | 
			
		||||
            struct timeval tv;
 | 
			
		||||
        if(has_changed.global) {
 | 
			
		||||
            timeval tv;
 | 
			
		||||
            gettimeofday(&tv, NULL);
 | 
			
		||||
            int uptime = xTaskGetTickCount() * portTICK_PERIOD_MS / 1000;
 | 
			
		||||
            int heap = (int) xPortGetFreeHeapSize();
 | 
			
		||||
| 
						 | 
				
			
			@ -57,14 +61,14 @@ void websocket_task(void *pvParameter) {
 | 
			
		|||
            /* Generate response in JSON format */
 | 
			
		||||
            char response[160];
 | 
			
		||||
            size_t len = snprintf(response, sizeof(response),
 | 
			
		||||
                               "{\"walltime\" : \"%d\","
 | 
			
		||||
                               "\"uptime\" : \"%d\","
 | 
			
		||||
                               " \"heap\" : \"%d\","
 | 
			
		||||
                               " \"chipid\" : \"%08x\","
 | 
			
		||||
                               " \"flashid\" : \"0x%08x\","
 | 
			
		||||
                               " \"flashsize\" : \"%u\","
 | 
			
		||||
                               " \"hostname\" : \"%s\""
 | 
			
		||||
                               "}", (int) tv.tv_sec, uptime, heap, chip_id, flash_id, flash_size, hostname);
 | 
			
		||||
                                  "{\"walltime\" : \"%d\","
 | 
			
		||||
                                  "\"uptime\" : \"%d\","
 | 
			
		||||
                                  " \"heap\" : \"%d\","
 | 
			
		||||
                                  " \"chipid\" : \"%08x\","
 | 
			
		||||
                                  " \"flashid\" : \"0x%08x\","
 | 
			
		||||
                                  " \"flashsize\" : \"%u\","
 | 
			
		||||
                                  " \"hostname\" : \"%s\""
 | 
			
		||||
                                  "}", (int) tv.tv_sec, uptime, heap, chip_id, flash_id, flash_size, hostname);
 | 
			
		||||
            free(hostname);
 | 
			
		||||
            if(len < sizeof(response)) {
 | 
			
		||||
                LOCK_TCPIP_CORE();
 | 
			
		||||
| 
						 | 
				
			
			@ -78,23 +82,23 @@ void websocket_task(void *pvParameter) {
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
        //Connection Info
 | 
			
		||||
        if(has_changed.connection){
 | 
			
		||||
            struct timeval tv;
 | 
			
		||||
        if(has_changed.connection) {
 | 
			
		||||
            timeval tv;
 | 
			
		||||
            gettimeofday(&tv, NULL);
 | 
			
		||||
            int connuptime = (xTaskGetTickCount() - connstarttime) * portTICK_PERIOD_MS / 1000;
 | 
			
		||||
 | 
			
		||||
            printf("conn %d: "
 | 
			
		||||
            IPSTR
 | 
			
		||||
            " <-> "
 | 
			
		||||
            IPSTR
 | 
			
		||||
            " \n", pcb->netif_idx, IP2STR(&pcb->local_ip), IP2STR(&pcb->remote_ip));
 | 
			
		||||
                   IPSTR
 | 
			
		||||
                   " <-> "
 | 
			
		||||
                   IPSTR
 | 
			
		||||
                   " \n", pcb->netif_idx, IP2STR(&pcb->local_ip), IP2STR(&pcb->remote_ip));
 | 
			
		||||
            char response[160];
 | 
			
		||||
            size_t len = snprintf(response, sizeof(response),
 | 
			
		||||
                               "{\"connage\" : \"%d\","
 | 
			
		||||
                               "\"clientip\" : \""
 | 
			
		||||
            IPSTR
 | 
			
		||||
            "\""
 | 
			
		||||
            "}", connuptime, IP2STR(&pcb->remote_ip));
 | 
			
		||||
                                  "{\"connage\" : \"%d\","
 | 
			
		||||
                                  "\"clientip\" : \""
 | 
			
		||||
                                  IPSTR
 | 
			
		||||
                                  "\""
 | 
			
		||||
                                  "}", connuptime, IP2STR(&pcb->remote_ip));
 | 
			
		||||
            if(len < sizeof(response)) {
 | 
			
		||||
                LOCK_TCPIP_CORE();
 | 
			
		||||
                websocket_write(pcb, (unsigned char *) response, len, WS_TEXT_MODE);
 | 
			
		||||
| 
						 | 
				
			
			@ -104,8 +108,7 @@ void websocket_task(void *pvParameter) {
 | 
			
		|||
            vTaskDelayMs(2000);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        if(has_changed.wifi){
 | 
			
		||||
        if(has_changed.wifi) {
 | 
			
		||||
            uint8_t opmode = sdk_wifi_get_opmode();
 | 
			
		||||
            const char *opmode_str = "??";
 | 
			
		||||
            switch (opmode) {
 | 
			
		||||
| 
						 | 
				
			
			@ -136,7 +139,7 @@ void websocket_task(void *pvParameter) {
 | 
			
		|||
            if(opmode == SOFTAP_MODE || opmode == STATIONAP_MODE) {
 | 
			
		||||
                uint8_t hwaddr[6];
 | 
			
		||||
                sdk_wifi_get_macaddr(SOFTAP_IF, hwaddr);
 | 
			
		||||
                struct ip_info info;
 | 
			
		||||
                ip_info info;
 | 
			
		||||
                sdk_wifi_get_ip_info(SOFTAP_IF, &info);
 | 
			
		||||
 | 
			
		||||
                char *apssid = NULL;
 | 
			
		||||
| 
						 | 
				
			
			@ -145,15 +148,15 @@ void websocket_task(void *pvParameter) {
 | 
			
		|||
                /* Generate response in JSON format */
 | 
			
		||||
                char response[128];
 | 
			
		||||
                size_t len = snprintf(response, sizeof(response),
 | 
			
		||||
                                   "{\"opmode\" : \"%s\","
 | 
			
		||||
                                   " \"apssid\" : \"%s\","
 | 
			
		||||
                                   " \"apip\" : \""
 | 
			
		||||
                IPSTR
 | 
			
		||||
                "\","
 | 
			
		||||
                " \"apmac\" : \""
 | 
			
		||||
                MACSTR
 | 
			
		||||
                "\""
 | 
			
		||||
                "}", opmode_str, apssid, IP2STR(&info.ip), MAC2STR(hwaddr));
 | 
			
		||||
                                      "{\"opmode\" : \"%s\","
 | 
			
		||||
                                      " \"apssid\" : \"%s\","
 | 
			
		||||
                                      " \"apip\" : \""
 | 
			
		||||
                                      IPSTR
 | 
			
		||||
                                      "\","
 | 
			
		||||
                                      " \"apmac\" : \""
 | 
			
		||||
                                      MACSTR
 | 
			
		||||
                                      "\""
 | 
			
		||||
                                      "}", opmode_str, apssid, IP2STR(&info.ip), MAC2STR(hwaddr));
 | 
			
		||||
                free(apssid);
 | 
			
		||||
                if(len < sizeof(response)) {
 | 
			
		||||
                    LOCK_TCPIP_CORE();
 | 
			
		||||
| 
						 | 
				
			
			@ -168,7 +171,7 @@ void websocket_task(void *pvParameter) {
 | 
			
		|||
            if(opmode == STATION_MODE || opmode == STATIONAP_MODE) {
 | 
			
		||||
                uint8_t hwaddr[6];
 | 
			
		||||
                sdk_wifi_get_macaddr(STATION_IF, hwaddr);
 | 
			
		||||
                struct ip_info info;
 | 
			
		||||
                ip_info info;
 | 
			
		||||
                sdk_wifi_get_ip_info(STATION_IF, &info);
 | 
			
		||||
                char *stassid = NULL;
 | 
			
		||||
                sysparam_get_string("wifi_sta_ssid", &stassid);
 | 
			
		||||
| 
						 | 
				
			
			@ -176,15 +179,15 @@ void websocket_task(void *pvParameter) {
 | 
			
		|||
                /* Generate response in JSON format */
 | 
			
		||||
                char response[128];
 | 
			
		||||
                size_t len = snprintf(response, sizeof(response),
 | 
			
		||||
                                   "{\"opmode\" : \"%s\","
 | 
			
		||||
                                   " \"stassid\" : \"%s\","
 | 
			
		||||
                                   " \"staip\" : \""
 | 
			
		||||
                IPSTR
 | 
			
		||||
                "\","
 | 
			
		||||
                " \"stamac\" : \""
 | 
			
		||||
                MACSTR
 | 
			
		||||
                "\""
 | 
			
		||||
                "}", opmode_str, stassid, IP2STR(&info.ip), MAC2STR(hwaddr));
 | 
			
		||||
                                      "{\"opmode\" : \"%s\","
 | 
			
		||||
                                      " \"stassid\" : \"%s\","
 | 
			
		||||
                                      " \"staip\" : \""
 | 
			
		||||
                                      IPSTR
 | 
			
		||||
                                      "\","
 | 
			
		||||
                                      " \"stamac\" : \""
 | 
			
		||||
                                      MACSTR
 | 
			
		||||
                                      "\""
 | 
			
		||||
                                      "}", opmode_str, stassid, IP2STR(&info.ip), MAC2STR(hwaddr));
 | 
			
		||||
                free(stassid);
 | 
			
		||||
                if(len < sizeof(response)) {
 | 
			
		||||
                    LOCK_TCPIP_CORE();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue