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;
|
OSStatus err = kNoErr;
|
||||||
|
|
||||||
//1577369623 4 0
|
//1577369623 4 0
|
||||||
char buf[16] = {0};
|
char buf[20] = {0};
|
||||||
err = httpd_get_data(req, buf, 16);
|
err = httpd_get_data(req, buf, 20);
|
||||||
require_noerr(err, exit);
|
require_noerr(err, exit);
|
||||||
|
|
||||||
pTimedTask task = NewTask();
|
pTimedTask task = NewTask();
|
||||||
@@ -486,14 +486,12 @@ static int HttpAddTask(httpd_request_t *req) {
|
|||||||
send_http(mess, strlen(mess), exit, &err);
|
send_http(mess, strlen(mess), exit, &err);
|
||||||
return 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)",
|
&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->weekday);
|
||||||
task->socket_idx--;
|
|
||||||
if (task->prs_time < 1577428136 || task->prs_time > 9577428136
|
if (task->prs_time < 1577428136 || task->prs_time > 9577428136
|
||||||
|| task->socket_idx < 0 || task->socket_idx > 5
|
|| task->operation < 0 || task->operation > 11) { http_log("AddTask Error!");
|
||||||
|| (task->on != 0 && task->on != 1)) { http_log("AddTask Error!");
|
|
||||||
re = 0;
|
re = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -495,9 +495,9 @@
|
|||||||
<use xlink:href="#icon-keyboard_arrow_down"/>
|
<use xlink:href="#icon-keyboard_arrow_down"/>
|
||||||
</svg>
|
</svg>
|
||||||
</i>
|
</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"
|
<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>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="mdl-textfield mdl-js-textfield">
|
<div class="mdl-textfield mdl-js-textfield">
|
||||||
@@ -916,13 +916,6 @@
|
|||||||
$(".mdl-layout-title").text(status.deviceName);
|
$(".mdl-layout-title").text(status.deviceName);
|
||||||
document.title=status.deviceName;
|
document.title=status.deviceName;
|
||||||
for (var i = 0; i < status_arr.length; i++) {
|
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 langSpan = switchTexts[i+3].querySelector('.lang');
|
||||||
var indexSpan = switchTexts[i+3].querySelector('.socket-index');
|
var indexSpan = switchTexts[i+3].querySelector('.socket-index');
|
||||||
if (langSpan) langSpan.textContent = names_arr[i]; // 修改插座名称
|
if (langSpan) langSpan.textContent = names_arr[i]; // 修改插座名称
|
||||||
@@ -972,6 +965,13 @@
|
|||||||
.text("未设置")
|
.text("未设置")
|
||||||
);
|
);
|
||||||
for (let i = 0; i < BTN_OPERATIONS.length; i++) {
|
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(
|
$('#btn_action_selector').append(
|
||||||
$('<li>')
|
$('<li>')
|
||||||
.addClass('mdl-menu__item')
|
.addClass('mdl-menu__item')
|
||||||
@@ -1341,8 +1341,8 @@ componentHandler.upgradeDom();
|
|||||||
tb_html += "\
|
tb_html += "\
|
||||||
<tr>\
|
<tr>\
|
||||||
<td>" + tasks[i].prs_time + "</td>\
|
<td>" + tasks[i].prs_time + "</td>\
|
||||||
<td>" + names_arr[tasks[i].socket_idx-1] + "</td>\
|
<td>" + BTN_OPERATIONS[tasks[i].operation].replaceAll('切换','设置') + "</td>\
|
||||||
<td>" + (tasks[i].on == 1?"开":"关") + "</td>\
|
<td>" + ((tasks[i].operation==11||tasks[i].operation<8)?(tasks[i].on == 1?"开":"关"):"-") + "</td>\
|
||||||
<td>" + getLoopText(tasks[i].weekday) + "</td>\
|
<td>" + getLoopText(tasks[i].weekday) + "</td>\
|
||||||
<td><a href='javascript:DelTimedTask(" + tasks[i].timestamp + ");'>删除</a></td>\
|
<td><a href='javascript:DelTimedTask(" + tasks[i].timestamp + ");'>删除</a></td>\
|
||||||
</tr>";
|
</tr>";
|
||||||
@@ -1393,10 +1393,7 @@ componentHandler.upgradeDom();
|
|||||||
//prs_time = prs_time + parseInt(sec);
|
//prs_time = prs_time + parseInt(sec);
|
||||||
on = on ? "1" : "0";
|
on = on ? "1" : "0";
|
||||||
var cmd = prs_time + " " + idx + " " + on + " " + wkd;
|
var cmd = prs_time + " " + idx + " " + on + " " + wkd;
|
||||||
if (cmd.length != 16) {
|
|
||||||
alert("CMD ERROR!");
|
|
||||||
return
|
|
||||||
}
|
|
||||||
HttpPost("/task", function (re) {
|
HttpPost("/task", function (re) {
|
||||||
if (re != "OK") {
|
if (re != "OK") {
|
||||||
alert(re);
|
alert(re);
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -6,8 +6,10 @@
|
|||||||
|
|
||||||
#include"main.h"
|
#include"main.h"
|
||||||
#include"user_gpio.h"
|
#include"user_gpio.h"
|
||||||
|
#include "mqtt_server/user_mqtt_client.h"
|
||||||
#include"timed_task/timed_task.h"
|
#include"timed_task/timed_task.h"
|
||||||
#include"http_server/web_log.h"
|
#include"http_server/web_log.h"
|
||||||
|
#include "user_wifi.h"
|
||||||
|
|
||||||
int day_sec = 86400;
|
int day_sec = 86400;
|
||||||
|
|
||||||
@@ -142,9 +144,61 @@ bool DelTask(int time)
|
|||||||
|
|
||||||
void ProcessTask()
|
void ProcessTask()
|
||||||
{
|
{
|
||||||
task_log("process task time[%ld] socket_idx[%d] on[%d]",
|
task_log("process task time[%ld] operation[%s] on[%d]",
|
||||||
user_config->task_top->prs_time, user_config->task_top->socket_idx, user_config->task_top->on);
|
user_config->task_top->prs_time, get_func_name(user_config->task_top->operation), user_config->task_top->on);
|
||||||
UserRelaySet(user_config->task_top->socket_idx, 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();
|
DelFirstTask();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -164,8 +218,8 @@ char* GetTaskStr()
|
|||||||
tm_info = localtime(&prs_time);
|
tm_info = localtime(&prs_time);
|
||||||
strftime(buffer, 26, "%m-%d %H:%M", tm_info);
|
strftime(buffer, 26, "%m-%d %H:%M", tm_info);
|
||||||
|
|
||||||
sprintf(tmp_str, "{'timestamp':%ld,'prs_time':'%s','socket_idx':%d,'on':%d,'weekday':%d},",
|
sprintf(tmp_str, "{'timestamp':%ld,'prs_time':'%s','operation':%d,'on':%d,'weekday':%d},",
|
||||||
tmp_tsk->prs_time, buffer, tmp_tsk->socket_idx+1, tmp_tsk->on, tmp_tsk->weekday);
|
tmp_tsk->prs_time, buffer, tmp_tsk->operation, tmp_tsk->on, tmp_tsk->weekday);
|
||||||
tmp_str += strlen(tmp_str);
|
tmp_str += strlen(tmp_str);
|
||||||
tmp_tsk = tmp_tsk->next;
|
tmp_tsk = tmp_tsk->next;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ struct TimedTask
|
|||||||
{
|
{
|
||||||
bool on_use; //正在使用
|
bool on_use; //正在使用
|
||||||
time_t prs_time; //被执行的格林尼治时间戳
|
time_t prs_time; //被执行的格林尼治时间戳
|
||||||
int socket_idx; //要控制的插孔
|
int operation; //要进行的操作
|
||||||
int on; //开或者关
|
int on; //开或者关,或者其他操作
|
||||||
int weekday; //星期重复 0代表不重复 8代表每日重复
|
int weekday; //星期重复 0代表不重复 8代表每日重复
|
||||||
pTimedTask next; //下一个任务(按之间排序)
|
pTimedTask next; //下一个任务(按之间排序)
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ bool RelayOut(void) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *get_func_name(char func_code) {
|
char* get_func_name(char func_code) {
|
||||||
static char buffer[32];
|
static char buffer[32];
|
||||||
switch (func_code) {
|
switch (func_code) {
|
||||||
case SWITCH_ALL_SOCKETS:
|
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);
|
void set_key_map(char user[],int index, char short_func, char long_func);
|
||||||
char get_short_func(char val);
|
char get_short_func(char val);
|
||||||
char get_long_func(char val);
|
char get_long_func(char val);
|
||||||
|
char *get_func_name(char func_code);
|
||||||
void StartLedBlink(uint8_t times);
|
void StartLedBlink(uint8_t times);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user