This commit is contained in:
2ndacc
2020-02-22 18:29:10 +08:00
4 changed files with 3012 additions and 2904 deletions

View File

@@ -120,7 +120,11 @@ static int HttpGetAssets(httpd_request_t *req)
OSStatus err = kNoErr;
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);
int total_sz = 0;
@@ -351,17 +355,23 @@ exit:
static int HttpDelTask(httpd_request_t *req)
{
//TODO 从url获取时间
char* time_str = strstr(req->filename, "?time=");
OSStatus err = kNoErr;
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);
int time1;
sscanf(time_str + 6, "%d", &time1);
//int time1;
//sscanf(time_str + 6, "%d", &time1);
char* mess = DelTask(time1) ? "OK" : "NO";
//char* mess = DelTask(time1) ? "OK" : "NO";
OSStatus err = kNoErr;
send_http(mess, strlen(mess), exit, &err);
//OSStatus err = kNoErr;
//send_http(mess, strlen(mess), exit, &err);
exit:
return err;
}
@@ -402,7 +412,7 @@ const struct httpd_wsgi_call g_app_handlers[] = {
{ "/wifi/scan", HTTPD_HDR_DEFORT, 0, HttpGetWifiScan, HttpSetWifiScan, NULL, NULL },
{ "/mqtt/config", HTTPD_HDR_DEFORT, 0, NULL, HttpSetMqttConfig, 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 },
};

View File

@@ -194,7 +194,7 @@
</form>
</div>
<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
</a>
</div>
@@ -224,24 +224,30 @@
</div>
<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>
<th>Index</th>
<th>Time</th>
<th>Socket</th>
<th>On</th>
<th>Option</th>
</tr>
<tr>
<td>1</td>
<td>2020-02-15<br>07:11:08</td>
<td>02-15 07:11:08</td>
<td>1</td>
<td>0</td>
<td><a>Delete</a></td>
</tr>
<tr>
<td>2020-02-15<br>07:11:08</td>
<td>1</td>
<td>0</td>
<td><a>Delete</a></td>
</tr>
<!--
<tr>
<td colspan="5">No Timed Task</td>
</tr>
-->
</table>
</div>
@@ -328,20 +334,15 @@
<script type="text/javascript" src="assets/js_pack.js"></script>
<script>
//弹框
(function() {
'use strict';
window['counter'] = 0;
//弹框-start
var snackbarContainer = document.querySelector('#demo-toast-example');
var showToastButton = document.querySelector('#demo-show-toast');
showToastButton.addEventListener('click', function() {
'use strict';
var data = {message: 'Config Success # ' + ++counter};
function ShowToask(mess) {
var data = {message: mess};
snackbarContainer.MaterialSnackbar.showSnackbar(data);
});
}());
}
//弹框-end
//Ajax
//Ajax-start
function AjaxErr(re) {
//alert(re.status);
}
@@ -350,7 +351,9 @@ function Ajax(url, onsuccess, type, data) {
url: url,
type: type,
data: data,
success: onsuccess,
success: function(re) {
onsuccess(re.replace(/'/g, '"'));
},
error: AjaxErr
});
}
@@ -363,7 +366,9 @@ function HttpPost(url, onsuccess, data) {
function HttpDel(url, onsuccess, data) {
Ajax(url, onsuccess, "DELET", data);
}
//Ajax-end
//Menu-start
var chart_par = document.getElementById("ct-chart-par");
chart_par.scrollTo(chart_par.scrollWidth, 0);
@@ -392,7 +397,8 @@ function ShowPage(id) {
window.clearTimeout(rescan_timer);
}
}
ShowPage(6);
ShowPage(3);
//Menu-end
$("#wifi_sel_name").on("change", function() {
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 power_idx = 0;
var chart_wth = 0;
@@ -461,7 +470,65 @@ function GetPowerRecord() {
$(document).ready(function(){
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 log_div = document.getElementsByClassName("sys-log")[0];
function GetSysLog() {
@@ -471,6 +538,7 @@ function GetSysLog() {
});
}
GetSysLog();
//日志-end
</script>
</body>

File diff suppressed because it is too large Load Diff

View File

@@ -93,7 +93,7 @@ bool DelTask(int time)
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;
char* tmp_str = str;
tmp_str[0] = '[';
@@ -105,10 +105,10 @@ char* GetTaskStr()
struct tm* tm_info;
time_t prs_time = tmp_tsk->prs_time + 28800;
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},",
buffer, tmp_tsk->socket_idx, tmp_tsk->on);
sprintf(tmp_str, "{'timestamp':%d,'prs_time':'%s','socket_idx':%d,'on':%d},",
tmp_tsk->prs_time, buffer, tmp_tsk->socket_idx, tmp_tsk->on);
tmp_str += strlen(tmp_str);
tmp_tsk = tmp_tsk->next;
}