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; 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 },
}; };

View File

@@ -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

View File

@@ -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;
} }