mirror of
https://github.com/oopuuu/zTC1.git
synced 2025-12-12 13:08:13 +08:00
merge
This commit is contained in:
@@ -120,7 +120,11 @@ static int HttpGetAssets(httpd_request_t *req)
|
|||||||
OSStatus err = kNoErr;
|
OSStatus err = kNoErr;
|
||||||
|
|
||||||
char* file_name = strstr(req->filename, "/assets/");
|
char* file_name = strstr(req->filename, "/assets/");
|
||||||
if (!file_name) return err;
|
if (!file_name)
|
||||||
|
{
|
||||||
|
http_log("HttpGetAssets url[%s] err", req->filename);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
http_log("HttpGetAssets url[%s] file_name[%s]", req->filename, file_name);
|
http_log("HttpGetAssets url[%s] file_name[%s]", req->filename, file_name);
|
||||||
|
|
||||||
int total_sz = 0;
|
int total_sz = 0;
|
||||||
@@ -351,17 +355,23 @@ exit:
|
|||||||
|
|
||||||
static int HttpDelTask(httpd_request_t *req)
|
static int HttpDelTask(httpd_request_t *req)
|
||||||
{
|
{
|
||||||
//TODO 从url获取时间
|
OSStatus err = kNoErr;
|
||||||
char* time_str = strstr(req->filename, "?time=");
|
|
||||||
|
char* time_str = strstr(req->filename, "/task/");
|
||||||
|
if (!time_str)
|
||||||
|
{
|
||||||
|
http_log("HttpDelTask url[%s] err", req->filename);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
http_log("HttpDelTask url[%s] time_str[%s][%s]", req->filename, time_str, time_str + 6);
|
http_log("HttpDelTask url[%s] time_str[%s][%s]", req->filename, time_str, time_str + 6);
|
||||||
|
|
||||||
int time1;
|
//int time1;
|
||||||
sscanf(time_str + 6, "%d", &time1);
|
//sscanf(time_str + 6, "%d", &time1);
|
||||||
|
|
||||||
char* mess = DelTask(time1) ? "OK" : "NO";
|
//char* mess = DelTask(time1) ? "OK" : "NO";
|
||||||
|
|
||||||
OSStatus err = kNoErr;
|
//OSStatus err = kNoErr;
|
||||||
send_http(mess, strlen(mess), exit, &err);
|
//send_http(mess, strlen(mess), exit, &err);
|
||||||
exit:
|
exit:
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@@ -402,7 +412,7 @@ const struct httpd_wsgi_call g_app_handlers[] = {
|
|||||||
{ "/wifi/scan", HTTPD_HDR_DEFORT, 0, HttpGetWifiScan, HttpSetWifiScan, NULL, NULL },
|
{ "/wifi/scan", HTTPD_HDR_DEFORT, 0, HttpGetWifiScan, HttpSetWifiScan, NULL, NULL },
|
||||||
{ "/mqtt/config", HTTPD_HDR_DEFORT, 0, NULL, HttpSetMqttConfig, NULL, NULL },
|
{ "/mqtt/config", HTTPD_HDR_DEFORT, 0, NULL, HttpSetMqttConfig, NULL, NULL },
|
||||||
{ "/log", HTTPD_HDR_DEFORT, 0, HttpGetLog, NULL, NULL, NULL },
|
{ "/log", HTTPD_HDR_DEFORT, 0, HttpGetLog, NULL, NULL, NULL },
|
||||||
{ "/task", HTTPD_HDR_DEFORT, 0, HttpGetTasks, HttpAddTask, NULL, HttpDelTask },
|
{ "/task", HTTPD_HDR_DEFORT, APP_HTTP_FLAGS_NO_EXACT_MATCH, HttpGetTasks, HttpAddTask, NULL, HttpDelTask },
|
||||||
{ "/ota", HTTPD_HDR_DEFORT, 0, Otastatus, OtaStart, NULL, NULL },
|
{ "/ota", HTTPD_HDR_DEFORT, 0, Otastatus, OtaStart, NULL, NULL },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -194,7 +194,7 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="mdl-card__actions mdl-card--border">
|
<div class="mdl-card__actions mdl-card--border">
|
||||||
<a id="demo-show-toast" class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">
|
<a href="javascript:ShowToask('Config Success')" class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">
|
||||||
Submit
|
Submit
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@@ -224,24 +224,30 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="page page3 mdl-cell mdl-cell--12-col demo-card-event mdl-card mdl-shadow--2dp">
|
<div class="page page3 mdl-cell mdl-cell--12-col demo-card-event mdl-card mdl-shadow--2dp">
|
||||||
<table class="mdl-data-table mdl-js-data-table">
|
<table id="timed_task_tb" class="mdl-data-table mdl-js-data-table">
|
||||||
<tr>
|
<tr>
|
||||||
<th>Index</th>
|
|
||||||
<th>Time</th>
|
<th>Time</th>
|
||||||
<th>Socket</th>
|
<th>Socket</th>
|
||||||
<th>On</th>
|
<th>On</th>
|
||||||
<th>Option</th>
|
<th>Option</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>1</td>
|
<td>02-15 07:11:08</td>
|
||||||
<td>2020-02-15<br>07:11:08</td>
|
|
||||||
<td>1</td>
|
<td>1</td>
|
||||||
<td>0</td>
|
<td>0</td>
|
||||||
<td><a>Delete</a></td>
|
<td><a>Delete</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2020-02-15<br>07:11:08</td>
|
||||||
|
<td>1</td>
|
||||||
|
<td>0</td>
|
||||||
|
<td><a>Delete</a></td>
|
||||||
|
</tr>
|
||||||
|
<!--
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="5">No Timed Task</td>
|
<td colspan="5">No Timed Task</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
-->
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -328,20 +334,15 @@
|
|||||||
|
|
||||||
<script type="text/javascript" src="assets/js_pack.js"></script>
|
<script type="text/javascript" src="assets/js_pack.js"></script>
|
||||||
<script>
|
<script>
|
||||||
//弹框
|
//弹框-start
|
||||||
(function() {
|
var snackbarContainer = document.querySelector('#demo-toast-example');
|
||||||
'use strict';
|
function ShowToask(mess) {
|
||||||
window['counter'] = 0;
|
var data = {message: mess};
|
||||||
var snackbarContainer = document.querySelector('#demo-toast-example');
|
snackbarContainer.MaterialSnackbar.showSnackbar(data);
|
||||||
var showToastButton = document.querySelector('#demo-show-toast');
|
}
|
||||||
showToastButton.addEventListener('click', function() {
|
//弹框-end
|
||||||
'use strict';
|
|
||||||
var data = {message: 'Config Success # ' + ++counter};
|
|
||||||
snackbarContainer.MaterialSnackbar.showSnackbar(data);
|
|
||||||
});
|
|
||||||
}());
|
|
||||||
|
|
||||||
//Ajax
|
//Ajax-start
|
||||||
function AjaxErr(re) {
|
function AjaxErr(re) {
|
||||||
//alert(re.status);
|
//alert(re.status);
|
||||||
}
|
}
|
||||||
@@ -350,7 +351,9 @@ function Ajax(url, onsuccess, type, data) {
|
|||||||
url: url,
|
url: url,
|
||||||
type: type,
|
type: type,
|
||||||
data: data,
|
data: data,
|
||||||
success: onsuccess,
|
success: function(re) {
|
||||||
|
onsuccess(re.replace(/'/g, '"'));
|
||||||
|
},
|
||||||
error: AjaxErr
|
error: AjaxErr
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -363,7 +366,9 @@ function HttpPost(url, onsuccess, data) {
|
|||||||
function HttpDel(url, onsuccess, data) {
|
function HttpDel(url, onsuccess, data) {
|
||||||
Ajax(url, onsuccess, "DELET", data);
|
Ajax(url, onsuccess, "DELET", data);
|
||||||
}
|
}
|
||||||
|
//Ajax-end
|
||||||
|
|
||||||
|
//Menu-start
|
||||||
var chart_par = document.getElementById("ct-chart-par");
|
var chart_par = document.getElementById("ct-chart-par");
|
||||||
chart_par.scrollTo(chart_par.scrollWidth, 0);
|
chart_par.scrollTo(chart_par.scrollWidth, 0);
|
||||||
|
|
||||||
@@ -392,7 +397,8 @@ function ShowPage(id) {
|
|||||||
window.clearTimeout(rescan_timer);
|
window.clearTimeout(rescan_timer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ShowPage(6);
|
ShowPage(3);
|
||||||
|
//Menu-end
|
||||||
|
|
||||||
$("#wifi_sel_name").on("change", function() {
|
$("#wifi_sel_name").on("change", function() {
|
||||||
if (input_wifi_sel_data.value == "0") {
|
if (input_wifi_sel_data.value == "0") {
|
||||||
@@ -435,6 +441,9 @@ var data = {
|
|||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//图表-start
|
||||||
|
var data = { series: [ [] ] };
|
||||||
var t = new Chartist.Line('.ct-chart', data, {showArea: true, axisY: {position: 'end'}});
|
var t = new Chartist.Line('.ct-chart', data, {showArea: true, axisY: {position: 'end'}});
|
||||||
var power_idx = 0;
|
var power_idx = 0;
|
||||||
var chart_wth = 0;
|
var chart_wth = 0;
|
||||||
@@ -461,16 +470,75 @@ function GetPowerRecord() {
|
|||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
GetPowerRecord();
|
GetPowerRecord();
|
||||||
})
|
})
|
||||||
|
//图表-end
|
||||||
|
|
||||||
|
//定时任务-start
|
||||||
|
function GetTimedTask() {
|
||||||
|
HttpGet("/task", function (re) {
|
||||||
|
var tb_html = "\
|
||||||
|
<tr>\
|
||||||
|
<th>Time</th>\
|
||||||
|
<th>Socket</th>\
|
||||||
|
<th>On</th>\
|
||||||
|
<th>Option</th>\
|
||||||
|
</tr>";
|
||||||
|
console.log(re);
|
||||||
|
var tasks = JSON.parse(re);
|
||||||
|
if (tasks.length == 0) {
|
||||||
|
tb_html += "<tr><td colspan='4'>No Timed Task</td></tr>";
|
||||||
|
}
|
||||||
|
for (var i = 0; i < tasks.length; i++) {
|
||||||
|
tb_html += "\
|
||||||
|
<tr>\
|
||||||
|
<td>" + tasks[i].prs_time + "</td>\
|
||||||
|
<td>" + tasks[i].socket_idx + "</td>\
|
||||||
|
<td>" + tasks[i].on + "</td>\
|
||||||
|
<td><a href='javascript:DelTimedTask(" + tasks[i].timestamp + ");'>Delete</a></td>\
|
||||||
|
</tr>";
|
||||||
|
}
|
||||||
|
document.getElementById("timed_task_tb").innerHTML = tb_html;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
GetTimedTask();
|
||||||
|
|
||||||
|
function AddTimedTask() {
|
||||||
|
var tim = document.getElementById("task_time").value;
|
||||||
|
var idx = document.getElementById("task_skt_idx").value;
|
||||||
|
var on = document.getElementById("task_on").value;
|
||||||
|
|
||||||
|
if (tim == null || tim == "" || tim.length < 10) {
|
||||||
|
alert("task time invalid!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var prs_time = Math.round(new Date(tim) / 1000);
|
||||||
|
//prs_time = prs_time + parseInt(sec);
|
||||||
|
var cmd = prs_time + " " + idx + " " + on;
|
||||||
|
if (cmd.length >= 16) {
|
||||||
|
alert("CMD ERROR!");
|
||||||
|
}
|
||||||
|
HttpPost("/task", function (re) {
|
||||||
|
GetTimedTask();
|
||||||
|
}, cmd);
|
||||||
|
}
|
||||||
|
function DelTimedTask(timestamp) {
|
||||||
|
HttpDel("/task/"+timestamp, function (re) {
|
||||||
|
ShowToask("Delete timed task OK!");
|
||||||
|
GetTimedTask();
|
||||||
|
}, timestamp);
|
||||||
|
}
|
||||||
|
//定时任务-end
|
||||||
|
|
||||||
|
//日志-start
|
||||||
var sys_log = document.getElementById("sys_log");
|
var sys_log = document.getElementById("sys_log");
|
||||||
var log_div = document.getElementsByClassName("sys-log")[0];
|
var log_div = document.getElementsByClassName("sys-log")[0];
|
||||||
function GetSysLog() {
|
function GetSysLog() {
|
||||||
HttpGet("/log", function (re) {
|
HttpGet("/log", function (re) {
|
||||||
sys_log.innerHTML = re;
|
sys_log.innerHTML = re;
|
||||||
log_div.scrollTo(0, log_div.scrollHeight);
|
log_div.scrollTo(0, log_div.scrollHeight);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
GetSysLog();
|
GetSysLog();
|
||||||
|
//日志-end
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -93,7 +93,7 @@ bool DelTask(int time)
|
|||||||
|
|
||||||
char* GetTaskStr()
|
char* GetTaskStr()
|
||||||
{
|
{
|
||||||
char* str = (char*)malloc(sizeof(char)*(task_count*60+2));
|
char* str = (char*)malloc(sizeof(char)*(task_count*80+2));
|
||||||
pTimedTask tmp_tsk = task_top;
|
pTimedTask tmp_tsk = task_top;
|
||||||
char* tmp_str = str;
|
char* tmp_str = str;
|
||||||
tmp_str[0] = '[';
|
tmp_str[0] = '[';
|
||||||
@@ -105,10 +105,10 @@ char* GetTaskStr()
|
|||||||
struct tm* tm_info;
|
struct tm* tm_info;
|
||||||
time_t prs_time = tmp_tsk->prs_time + 28800;
|
time_t prs_time = tmp_tsk->prs_time + 28800;
|
||||||
tm_info = localtime(&prs_time);
|
tm_info = localtime(&prs_time);
|
||||||
strftime(buffer, 26, "%Y-%m-%d %H:%M:%S", tm_info);
|
strftime(buffer, 26, "%m-%d %H:%M:%S", tm_info);
|
||||||
|
|
||||||
sprintf(tmp_str, "{'prs_time':'%s','socket_idx':%d,'on':%d},",
|
sprintf(tmp_str, "{'timestamp':%d,'prs_time':'%s','socket_idx':%d,'on':%d},",
|
||||||
buffer, tmp_tsk->socket_idx, tmp_tsk->on);
|
tmp_tsk->prs_time, buffer, tmp_tsk->socket_idx, tmp_tsk->on);
|
||||||
tmp_str += strlen(tmp_str);
|
tmp_str += strlen(tmp_str);
|
||||||
tmp_tsk = tmp_tsk->next;
|
tmp_tsk = tmp_tsk->next;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user