fix updateAlarm bugs
update setCommWindow function
This commit is contained in:
parent
98dd4840bb
commit
5e655d77f4
@ -124,7 +124,7 @@ void InitAlarm()
|
|||||||
if (alarm[var] != RT_NULL) {
|
if (alarm[var] != RT_NULL) {
|
||||||
rt_alarm_start(alarm[var]);
|
rt_alarm_start(alarm[var]);
|
||||||
// LOG_D("alarm %d started.",var+1);
|
// LOG_D("alarm %d started.",var+1);
|
||||||
LOG_D("alarm %d(%02d) started.",var+1,alarm[var]->wktime.tm_hour+8);
|
LOG_D("alarm %d(%02d:%02d) started.",var+1,alarm[var]->wktime.tm_hour+8,alarm[var]->wktime.tm_min);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
LOG_E("Failed to start alarm %d.",var+1);
|
LOG_E("Failed to start alarm %d.",var+1);
|
||||||
@ -136,8 +136,9 @@ INIT_APP_EXPORT(InitAlarm);
|
|||||||
* 更新rtc闹钟
|
* 更新rtc闹钟
|
||||||
* @param t 每个rtc时刻组成的数组,依次对应开窗时段的开始和结束
|
* @param t 每个rtc时刻组成的数组,依次对应开窗时段的开始和结束
|
||||||
*/
|
*/
|
||||||
void updateAlarm(int *t)
|
void updateAlarm(uint8_t *t, size_t len)
|
||||||
{
|
{
|
||||||
|
// LOG_HEX("alarm",16,t,4);
|
||||||
struct rt_alarm_setup setup;
|
struct rt_alarm_setup setup;
|
||||||
|
|
||||||
static time_t now;
|
static time_t now;
|
||||||
@ -156,27 +157,30 @@ void updateAlarm(int *t)
|
|||||||
setup.wktime.tm_sec = 0; //p_tm.tm_sec;
|
setup.wktime.tm_sec = 0; //p_tm.tm_sec;
|
||||||
|
|
||||||
setup.wktime.tm_hour = t[0]; //开窗1开启点
|
setup.wktime.tm_hour = t[0]; //开窗1开启点
|
||||||
|
setup.wktime.tm_min = t[1]; //开窗1开启点
|
||||||
if (RT_NULL != alarm[0])
|
if (RT_NULL != alarm[0])
|
||||||
{
|
{
|
||||||
rt_alarm_delete(alarm[0]); //
|
rt_alarm_delete(alarm[0]); //
|
||||||
}
|
}
|
||||||
alarm[0] = rt_alarm_create(poTT_callback, &setup);
|
alarm[0] = rt_alarm_create(poTT_callback, &setup);
|
||||||
|
|
||||||
setup.wktime.tm_hour = t[1]; //开窗1闭合点
|
setup.wktime.tm_hour = t[2]; //开窗1闭合点
|
||||||
|
setup.wktime.tm_min = t[3]; //开窗1开启点
|
||||||
if (RT_NULL != alarm[1])
|
if (RT_NULL != alarm[1])
|
||||||
{
|
{
|
||||||
rt_alarm_delete(alarm[1]); //
|
rt_alarm_delete(alarm[1]); //
|
||||||
}
|
}
|
||||||
alarm[1] = rt_alarm_create(pdTT_callback, &setup);
|
alarm[1] = rt_alarm_create(pdTT_callback, &setup);
|
||||||
|
setup.wktime.tm_hour = t[4]; //开窗2开启点
|
||||||
setup.wktime.tm_hour = t[2]; //开窗2开启点
|
setup.wktime.tm_min = t[5]; //开窗1开启点
|
||||||
if (RT_NULL != alarm[2])
|
if (RT_NULL != alarm[2])
|
||||||
{
|
{
|
||||||
rt_alarm_delete(alarm[2]); //
|
rt_alarm_delete(alarm[2]); //
|
||||||
}
|
}
|
||||||
alarm[2] = rt_alarm_create(poTT_callback, &setup);
|
alarm[2] = rt_alarm_create(poTT_callback, &setup);
|
||||||
|
|
||||||
setup.wktime.tm_hour = t[3]; //开窗2闭合点
|
setup.wktime.tm_hour = t[6]; //开窗2闭合点
|
||||||
|
setup.wktime.tm_min = t[7]; //开窗1开启点
|
||||||
if (RT_NULL != alarm[3])
|
if (RT_NULL != alarm[3])
|
||||||
{
|
{
|
||||||
rt_alarm_delete(alarm[3]); //
|
rt_alarm_delete(alarm[3]); //
|
||||||
@ -187,7 +191,8 @@ void updateAlarm(int *t)
|
|||||||
for (size_t var = 0; var < 4; var++) {
|
for (size_t var = 0; var < 4; var++) {
|
||||||
if (alarm[var] != RT_NULL) {
|
if (alarm[var] != RT_NULL) {
|
||||||
rt_alarm_start(alarm[var]);
|
rt_alarm_start(alarm[var]);
|
||||||
LOG_D("alarm %d started.",var+1);
|
// LOG_D("alarm %d started.",var+1);
|
||||||
|
LOG_D("alarm %d(%02d:%02d) started.",var+1,alarm[var]->wktime.tm_hour+8,alarm[var]->wktime.tm_min);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
LOG_E("Failed to start alarm %d.",var+1);
|
LOG_E("Failed to start alarm %d.",var+1);
|
||||||
|
@ -15,12 +15,16 @@
|
|||||||
#define LOG_LVL LOG_LVL_DBG
|
#define LOG_LVL LOG_LVL_DBG
|
||||||
#include <ulog.h>
|
#include <ulog.h>
|
||||||
|
|
||||||
|
RT_WEAK int set_cfg(const char *k, const char*v)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//3.2.1双模通信功能
|
//3.2.1双模通信功能
|
||||||
//1为TT通信,0为BD短报文通信
|
//1为TT通信,0为BD短报文通信
|
||||||
void setCommMode(int isTT)
|
void setCommMode(int isTT)
|
||||||
{
|
{
|
||||||
|
LOG_I("FUNC = setCommMode");
|
||||||
if (isTT) {
|
if (isTT) {
|
||||||
//change mode
|
//change mode
|
||||||
|
|
||||||
@ -152,7 +156,7 @@ RT_WEAK int upSend(uint8_t *din, size_t len)
|
|||||||
void selfTest()
|
void selfTest()
|
||||||
{
|
{
|
||||||
LOG_I("FUNC = selftest");
|
LOG_I("FUNC = selftest");
|
||||||
rt_uint8_t rst[100]={0x5A, 0xA5, 0x32, 0x3E, 0x0A, 0x41};
|
rt_uint8_t rst[100]={0x5A, 0xA5, ADDR_ANJI, ADDR_TT, _CMD_SELF_TEST>>8, _CMD_SELF_TEST & 0xff};
|
||||||
int p = 6;
|
int p = 6;
|
||||||
rt_uint8_t sysSta=1,xh=0,jh=0,commSpeed=0;
|
rt_uint8_t sysSta=1,xh=0,jh=0,commSpeed=0;
|
||||||
//长度
|
//长度
|
||||||
@ -160,7 +164,7 @@ void selfTest()
|
|||||||
rst[p++]=0x09;
|
rst[p++]=0x09;
|
||||||
|
|
||||||
rst[p++] = sysSta;
|
rst[p++] = sysSta;
|
||||||
rst[p++] = xh;
|
rst[p++] = xh;//xh,jh
|
||||||
rst[p++] = jh;
|
rst[p++] = jh;
|
||||||
rst[p++] = commSpeed;
|
rst[p++] = commSpeed;
|
||||||
rst[p++] = getPowerLevel();
|
rst[p++] = getPowerLevel();
|
||||||
@ -194,7 +198,7 @@ void selfTest()
|
|||||||
*/
|
*/
|
||||||
void setSelfDestructSWT(int setON)
|
void setSelfDestructSWT(int setON)
|
||||||
{
|
{
|
||||||
|
LOG_I("FUNC = set selfdestruct");
|
||||||
//write to cfg file
|
//write to cfg file
|
||||||
set_cfg("SelfDesSW", setON);
|
set_cfg("SelfDesSW", setON);
|
||||||
LOG_D("set SelfDesSW to %s",setON?"ON":"OFF");
|
LOG_D("set SelfDesSW to %s",setON?"ON":"OFF");
|
||||||
@ -205,6 +209,7 @@ void setSelfDestructSWT(int setON)
|
|||||||
*/
|
*/
|
||||||
int getSelfDestructSWT()
|
int getSelfDestructSWT()
|
||||||
{
|
{
|
||||||
|
LOG_I("FUNC = get selfdestruct");
|
||||||
//load from cfg file
|
//load from cfg file
|
||||||
int flag = get_cfg("SelfDesSW");
|
int flag = get_cfg("SelfDesSW");
|
||||||
if (flag < 0) {
|
if (flag < 0) {
|
||||||
@ -224,13 +229,14 @@ void selfDestruct()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//3.2.5开、关窗功能
|
//3.2.5开、关窗功能
|
||||||
extern void updateAlarm(int *t);
|
extern void updateAlarm(uint8_t *t, size_t len);
|
||||||
/**
|
/**
|
||||||
* 更新开窗时间,目前支持两组开窗时段。更新会清除之前的开窗设置
|
* 更新开窗时间,目前支持两组开窗时段。更新会清除之前的开窗设置
|
||||||
*/
|
*/
|
||||||
void setCommWindow(int *t)
|
void setCommWindow(uint8_t *t, size_t len)
|
||||||
{
|
{
|
||||||
updateAlarm(t);
|
LOG_I("FUNC = setCommWindow");
|
||||||
|
updateAlarm(t,len);
|
||||||
LOG_D("更新开窗时间完成。");
|
LOG_D("更新开窗时间完成。");
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -266,7 +272,7 @@ void openWindow(int t)
|
|||||||
*/
|
*/
|
||||||
void closeWindow()
|
void closeWindow()
|
||||||
{
|
{
|
||||||
pwTT_thread_entry("0");//关 机
|
// pwTT_thread_entry("0");//关 机
|
||||||
LOG_D("手动关窗完成。");
|
LOG_D("手动关窗完成。");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -540,7 +546,7 @@ void ttRunCMD(uint8_t *din, size_t len)
|
|||||||
selfDestruct();
|
selfDestruct();
|
||||||
break;
|
break;
|
||||||
case _CFG_COMM_WINDOW:
|
case _CFG_COMM_WINDOW:
|
||||||
setCommWindow(din+8);//只支持两组开窗
|
setCommWindow(din+8,din+7);//只支持两组开窗,开窗时间为小时、分钟,UTC+0
|
||||||
break;
|
break;
|
||||||
case _CMD_OPEN_WINDOW:
|
case _CMD_OPEN_WINDOW:
|
||||||
openWindow(din[7]?((din[8] << 8) + din[9]):0);//两字节开窗时间
|
openWindow(din[7]?((din[8] << 8) + din[9]):0);//两字节开窗时间
|
||||||
|
@ -67,7 +67,7 @@ enum
|
|||||||
|
|
||||||
#define _CMD_RETRY_DATA 0x7006 //
|
#define _CMD_RETRY_DATA 0x7006 //
|
||||||
|
|
||||||
#define _CFG_UPDATE_CFG 0x7001
|
#define _CFG_UPDATE_CFG 0x7007
|
||||||
|
|
||||||
//3S
|
//3S
|
||||||
#define _CMD_DEPTH_REQUEST 0x0601
|
#define _CMD_DEPTH_REQUEST 0x0601
|
||||||
@ -77,7 +77,7 @@ enum
|
|||||||
//
|
//
|
||||||
#define ADDR_ANJI 0x42 //0x42?
|
#define ADDR_ANJI 0x42 //0x42?
|
||||||
#define ADDR_TT 0x41
|
#define ADDR_TT 0x41
|
||||||
#define ADDR_3S 0x3E
|
#define ADDR_3S 0x32
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -415,8 +415,8 @@ void sysInit()
|
|||||||
cfgUpdate = rt_sem_create("cfgUpdate", 0, RT_IPC_FLAG_PRIO);
|
cfgUpdate = rt_sem_create("cfgUpdate", 0, RT_IPC_FLAG_PRIO);
|
||||||
rt_sem_release(cfgUpdate);//上电更新值
|
rt_sem_release(cfgUpdate);//上电更新值
|
||||||
// rt_hw_stm32_eth_init();//激活网口
|
// rt_hw_stm32_eth_init();//激活网口
|
||||||
// LOG_D("sysInit");
|
LOG_D("sysInit");
|
||||||
}
|
}
|
||||||
|
MSH_CMD_EXPORT(sysInit,semInit);
|
||||||
INIT_APP_EXPORT(sysInit);
|
INIT_APP_EXPORT(sysInit);
|
||||||
INIT_APP_EXPORT(updatecfg);
|
INIT_APP_EXPORT(updatecfg);
|
||||||
|
@ -567,7 +567,7 @@ void recTT_thread_entry()
|
|||||||
void recTT(void)
|
void recTT(void)
|
||||||
{
|
{
|
||||||
/* 创建线程 */
|
/* 创建线程 */
|
||||||
rt_thread_t thread = rt_thread_create("recTT", recTT_thread_entry, RT_NULL, 1024 * 2, 27, 10);
|
rt_thread_t thread = rt_thread_create("recTT", recTT_thread_entry, RT_NULL, 1024 * 5, 27, 10);
|
||||||
/* 创建成功则启动线程 */
|
/* 创建成功则启动线程 */
|
||||||
if (thread != RT_NULL)
|
if (thread != RT_NULL)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user