mirror of
https://github.com/oopuuu/zTC1.git
synced 2025-12-20 00:43:22 +08:00
定时任务现在支持操作更多功能
This commit is contained in:
@@ -476,8 +476,8 @@ static int HttpAddTask(httpd_request_t *req) {
|
||||
OSStatus err = kNoErr;
|
||||
|
||||
//1577369623 4 0
|
||||
char buf[16] = {0};
|
||||
err = httpd_get_data(req, buf, 16);
|
||||
char buf[20] = {0};
|
||||
err = httpd_get_data(req, buf, 20);
|
||||
require_noerr(err, exit);
|
||||
|
||||
pTimedTask task = NewTask();
|
||||
@@ -486,14 +486,12 @@ static int HttpAddTask(httpd_request_t *req) {
|
||||
send_http(mess, strlen(mess), exit, &err);
|
||||
return err;
|
||||
}
|
||||
int re = sscanf(buf, "%ld %d %d %d", &task->prs_time, &task->socket_idx, &task->on,
|
||||
int re = sscanf(buf, "%ld %d %d %d", &task->prs_time, &task->operation, &task->on,
|
||||
&task->weekday);http_log("AddTask buf[%s] re[%d] (%ld %d %d %d)",
|
||||
buf, re, task->prs_time, task->socket_idx, task->on,
|
||||
buf, re, task->prs_time, task->operation, task->on,
|
||||
task->weekday);
|
||||
task->socket_idx--;
|
||||
if (task->prs_time < 1577428136 || task->prs_time > 9577428136
|
||||
|| task->socket_idx < 0 || task->socket_idx > 5
|
||||
|| (task->on != 0 && task->on != 1)) { http_log("AddTask Error!");
|
||||
|| task->operation < 0 || task->operation > 11) { http_log("AddTask Error!");
|
||||
re = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -495,9 +495,9 @@
|
||||
<use xlink:href="#icon-keyboard_arrow_down"/>
|
||||
</svg>
|
||||
</i>
|
||||
<label for="task_skt_idx" class="mdl-textfield__label">插座</label>
|
||||
<label for="task_skt_idx" class="mdl-textfield__label">操作</label>
|
||||
<ul for="task_skt_idx"
|
||||
class="mdl-menu mdl-menu--bottom-left mdl-js-menu" id="sockets_list">
|
||||
class="mdl-menu mdl-menu--bottom-left mdl-js-menu" id="operations_list">
|
||||
</ul>
|
||||
</div>
|
||||
<div class="mdl-textfield mdl-js-textfield">
|
||||
@@ -916,13 +916,6 @@
|
||||
$(".mdl-layout-title").text(status.deviceName);
|
||||
document.title=status.deviceName;
|
||||
for (var i = 0; i < status_arr.length; i++) {
|
||||
$('#sockets_list').append(
|
||||
$('<li>')
|
||||
.addClass('mdl-menu__item')
|
||||
.attr('data-val', `${i+1}`)
|
||||
.attr('data-selected', `${i==status_arr.length - 1}`)
|
||||
.text(names_arr[i])
|
||||
);
|
||||
var langSpan = switchTexts[i+3].querySelector('.lang');
|
||||
var indexSpan = switchTexts[i+3].querySelector('.socket-index');
|
||||
if (langSpan) langSpan.textContent = names_arr[i]; // 修改插座名称
|
||||
@@ -972,6 +965,13 @@
|
||||
.text("未设置")
|
||||
);
|
||||
for (let i = 0; i < BTN_OPERATIONS.length; i++) {
|
||||
$('#operations_list').append(
|
||||
$('<li>')
|
||||
.addClass('mdl-menu__item')
|
||||
.attr('data-val', `${i}`)
|
||||
.attr('data-selected', `false`)
|
||||
.text(BTN_OPERATIONS[i].replaceAll('切换','设置'))
|
||||
);
|
||||
$('#btn_action_selector').append(
|
||||
$('<li>')
|
||||
.addClass('mdl-menu__item')
|
||||
@@ -1341,8 +1341,8 @@ componentHandler.upgradeDom();
|
||||
tb_html += "\
|
||||
<tr>\
|
||||
<td>" + tasks[i].prs_time + "</td>\
|
||||
<td>" + names_arr[tasks[i].socket_idx-1] + "</td>\
|
||||
<td>" + (tasks[i].on == 1?"开":"关") + "</td>\
|
||||
<td>" + BTN_OPERATIONS[tasks[i].operation].replaceAll('切换','设置') + "</td>\
|
||||
<td>" + ((tasks[i].operation==11||tasks[i].operation<8)?(tasks[i].on == 1?"开":"关"):"-") + "</td>\
|
||||
<td>" + getLoopText(tasks[i].weekday) + "</td>\
|
||||
<td><a href='javascript:DelTimedTask(" + tasks[i].timestamp + ");'>删除</a></td>\
|
||||
</tr>";
|
||||
@@ -1393,10 +1393,7 @@ componentHandler.upgradeDom();
|
||||
//prs_time = prs_time + parseInt(sec);
|
||||
on = on ? "1" : "0";
|
||||
var cmd = prs_time + " " + idx + " " + on + " " + wkd;
|
||||
if (cmd.length != 16) {
|
||||
alert("CMD ERROR!");
|
||||
return
|
||||
}
|
||||
|
||||
HttpPost("/task", function (re) {
|
||||
if (re != "OK") {
|
||||
alert(re);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -6,8 +6,10 @@
|
||||
|
||||
#include"main.h"
|
||||
#include"user_gpio.h"
|
||||
#include "mqtt_server/user_mqtt_client.h"
|
||||
#include"timed_task/timed_task.h"
|
||||
#include"http_server/web_log.h"
|
||||
#include "user_wifi.h"
|
||||
|
||||
int day_sec = 86400;
|
||||
|
||||
@@ -142,9 +144,61 @@ bool DelTask(int time)
|
||||
|
||||
void ProcessTask()
|
||||
{
|
||||
task_log("process task time[%ld] socket_idx[%d] on[%d]",
|
||||
user_config->task_top->prs_time, user_config->task_top->socket_idx, user_config->task_top->on);
|
||||
UserRelaySet(user_config->task_top->socket_idx, user_config->task_top->on);
|
||||
task_log("process task time[%ld] operation[%s] on[%d]",
|
||||
user_config->task_top->prs_time, get_func_name(user_config->task_top->operation), user_config->task_top->on);
|
||||
switch (user_config->task_top->operation) {
|
||||
case SWITCH_ALL_SOCKETS:
|
||||
UserRelaySetAll(user_config->task_top->on);
|
||||
mico_system_context_update(sys_config);
|
||||
for (int i = 0; i < SOCKET_NUM; i++) {
|
||||
UserMqttSendSocketState(i);
|
||||
}
|
||||
UserMqttSendTotalSocketState();
|
||||
break;
|
||||
case SWITCH_SOCKET_1:
|
||||
case SWITCH_SOCKET_2:
|
||||
case SWITCH_SOCKET_3:
|
||||
case SWITCH_SOCKET_4:
|
||||
case SWITCH_SOCKET_5:
|
||||
case SWITCH_SOCKET_6:
|
||||
UserRelaySet(user_config->task_top->operation - 1, user_config->task_top->on);
|
||||
UserMqttSendSocketState(user_config->task_top->operation - 1);
|
||||
UserMqttSendTotalSocketState();
|
||||
mico_system_context_update(sys_config);
|
||||
break;
|
||||
case SWITCH_LED_ENABLE:
|
||||
|
||||
if (RelayOut() && user_config->task_top->on) {
|
||||
UserLedSet(1);
|
||||
} else {
|
||||
UserLedSet(0);
|
||||
}
|
||||
UserMqttSendLedState();
|
||||
mico_system_context_update(sys_config);
|
||||
break;
|
||||
case SWITCH_CHILD_LOCK_ENABLE:
|
||||
user_config->user[0] = user_config->task_top->on;
|
||||
childLockEnabled = user_config->user[0];
|
||||
mico_system_context_update(sys_config);
|
||||
UserMqttSendChildLockState();
|
||||
break;
|
||||
case REBOOT_SYSTEM:
|
||||
MicoSystemReboot();
|
||||
break;
|
||||
case CONFIG_WIFI:
|
||||
|
||||
micoWlanSuspendStation();
|
||||
ApInit(true);
|
||||
break;
|
||||
case RESET_SYSTEM:
|
||||
|
||||
mico_system_context_restore(sys_config);
|
||||
mico_rtos_thread_sleep(1);
|
||||
MicoSystemReboot();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
DelFirstTask();
|
||||
}
|
||||
|
||||
@@ -164,8 +218,8 @@ char* GetTaskStr()
|
||||
tm_info = localtime(&prs_time);
|
||||
strftime(buffer, 26, "%m-%d %H:%M", tm_info);
|
||||
|
||||
sprintf(tmp_str, "{'timestamp':%ld,'prs_time':'%s','socket_idx':%d,'on':%d,'weekday':%d},",
|
||||
tmp_tsk->prs_time, buffer, tmp_tsk->socket_idx+1, tmp_tsk->on, tmp_tsk->weekday);
|
||||
sprintf(tmp_str, "{'timestamp':%ld,'prs_time':'%s','operation':%d,'on':%d,'weekday':%d},",
|
||||
tmp_tsk->prs_time, buffer, tmp_tsk->operation, tmp_tsk->on, tmp_tsk->weekday);
|
||||
tmp_str += strlen(tmp_str);
|
||||
tmp_tsk = tmp_tsk->next;
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@ struct TimedTask
|
||||
{
|
||||
bool on_use; //正在使用
|
||||
time_t prs_time; //被执行的格林尼治时间戳
|
||||
int socket_idx; //要控制的插孔
|
||||
int on; //开或者关
|
||||
int operation; //要进行的操作
|
||||
int on; //开或者关,或者其他操作
|
||||
int weekday; //星期重复 0代表不重复 8代表每日重复
|
||||
pTimedTask next; //下一个任务(按之间排序)
|
||||
};
|
||||
|
||||
@@ -28,7 +28,7 @@ bool RelayOut(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const char *get_func_name(char func_code) {
|
||||
char* get_func_name(char func_code) {
|
||||
static char buffer[32];
|
||||
switch (func_code) {
|
||||
case SWITCH_ALL_SOCKETS:
|
||||
|
||||
@@ -31,6 +31,7 @@ void SetSocketStatus(char* socket_status);
|
||||
void set_key_map(char user[],int index, char short_func, char long_func);
|
||||
char get_short_func(char val);
|
||||
char get_long_func(char val);
|
||||
char *get_func_name(char func_code);
|
||||
void StartLedBlink(uint8_t times);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user