fix updateAlarm bugs

update setCommWindow function
This commit is contained in:
CSSC-WORK\murmur 2023-07-26 08:44:18 +08:00
parent 98dd4840bb
commit 5e655d77f4
5 changed files with 32 additions and 21 deletions

View File

@ -124,7 +124,7 @@ void InitAlarm()
if (alarm[var] != RT_NULL) {
rt_alarm_start(alarm[var]);
// 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 {
LOG_E("Failed to start alarm %d.",var+1);
@ -136,8 +136,9 @@ INIT_APP_EXPORT(InitAlarm);
* 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;
static time_t now;
@ -156,27 +157,30 @@ void updateAlarm(int *t)
setup.wktime.tm_sec = 0; //p_tm.tm_sec;
setup.wktime.tm_hour = t[0]; //开窗1开启点
setup.wktime.tm_min = t[1]; //开窗1开启点
if (RT_NULL != alarm[0])
{
rt_alarm_delete(alarm[0]); //
}
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])
{
rt_alarm_delete(alarm[1]); //
}
alarm[1] = rt_alarm_create(pdTT_callback, &setup);
setup.wktime.tm_hour = t[2]; //开窗2开启点
setup.wktime.tm_hour = t[4]; //开窗2开启点
setup.wktime.tm_min = t[5]; //开窗1开启点
if (RT_NULL != alarm[2])
{
rt_alarm_delete(alarm[2]); //
}
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])
{
rt_alarm_delete(alarm[3]); //
@ -187,7 +191,8 @@ void updateAlarm(int *t)
for (size_t var = 0; var < 4; var++) {
if (alarm[var] != RT_NULL) {
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 {
LOG_E("Failed to start alarm %d.",var+1);

View File

@ -15,12 +15,16 @@
#define LOG_LVL LOG_LVL_DBG
#include <ulog.h>
RT_WEAK int set_cfg(const char *k, const char*v)
{
return;
}
//3.2.1双模通信功能
//1为TT通信0为BD短报文通信
void setCommMode(int isTT)
{
LOG_I("FUNC = setCommMode");
if (isTT) {
//change mode
@ -152,7 +156,7 @@ RT_WEAK int upSend(uint8_t *din, size_t len)
void 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;
rt_uint8_t sysSta=1,xh=0,jh=0,commSpeed=0;
//长度
@ -160,7 +164,7 @@ void selfTest()
rst[p++]=0x09;
rst[p++] = sysSta;
rst[p++] = xh;
rst[p++] = xh;//xh,jh
rst[p++] = jh;
rst[p++] = commSpeed;
rst[p++] = getPowerLevel();
@ -194,7 +198,7 @@ void selfTest()
*/
void setSelfDestructSWT(int setON)
{
LOG_I("FUNC = set selfdestruct");
//write to cfg file
set_cfg("SelfDesSW", setON);
LOG_D("set SelfDesSW to %s",setON?"ON":"OFF");
@ -205,6 +209,7 @@ void setSelfDestructSWT(int setON)
*/
int getSelfDestructSWT()
{
LOG_I("FUNC = get selfdestruct");
//load from cfg file
int flag = get_cfg("SelfDesSW");
if (flag < 0) {
@ -224,13 +229,14 @@ void selfDestruct()
}
//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("更新开窗时间完成。");
}
/**
@ -266,7 +272,7 @@ void openWindow(int t)
*/
void closeWindow()
{
pwTT_thread_entry("0");//关 机
// pwTT_thread_entry("0");//关 机
LOG_D("手动关窗完成。");
}
@ -540,7 +546,7 @@ void ttRunCMD(uint8_t *din, size_t len)
selfDestruct();
break;
case _CFG_COMM_WINDOW:
setCommWindow(din+8);//只支持两组开窗
setCommWindow(din+8,din+7);//只支持两组开窗开窗时间为小时、分钟UTC+0
break;
case _CMD_OPEN_WINDOW:
openWindow(din[7]?((din[8] << 8) + din[9]):0);//两字节开窗时间

View File

@ -67,7 +67,7 @@ enum
#define _CMD_RETRY_DATA 0x7006 //
#define _CFG_UPDATE_CFG 0x7001
#define _CFG_UPDATE_CFG 0x7007
//3S
#define _CMD_DEPTH_REQUEST 0x0601
@ -77,7 +77,7 @@ enum
//
#define ADDR_ANJI 0x42 //0x42?
#define ADDR_TT 0x41
#define ADDR_3S 0x3E
#define ADDR_3S 0x32

View File

@ -415,8 +415,8 @@ void sysInit()
cfgUpdate = rt_sem_create("cfgUpdate", 0, RT_IPC_FLAG_PRIO);
rt_sem_release(cfgUpdate);//上电更新值
// rt_hw_stm32_eth_init();//激活网口
// LOG_D("sysInit");
LOG_D("sysInit");
}
MSH_CMD_EXPORT(sysInit,semInit);
INIT_APP_EXPORT(sysInit);
INIT_APP_EXPORT(updatecfg);

View File

@ -567,7 +567,7 @@ void recTT_thread_entry()
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)
{