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