📄 timepos.c
字号:
/***************************
* TimePos.c ZTL *
***************************/
#define TIMEPOS_GLOBALS
#include "includes.h"
#include "bsp.h"
#include "Tools.h"
#include "Timetask.h"
#include "Public.h"
#include "SysTime.h"
#include "Position.h"
#include "TimePos.h"
#include "Printer.h"
#define TIMEPOS_DEBUG 0
static TMR_TSK *TCheckTmrID;
#define TCheckPeriod SECOND,59
static SYSTIME_STRUCT SysTime;
static void TCheckTmr(void)
{
INT8U i;
StartTmr(TCheckTmrID,TCheckPeriod);
#if TIMEPOS_DEBUG
//SendFromUART_STR(1,(INT8U *)"TCheckTmr");
//FormatPrintDataBlock(FORMAT_HEX,1,(INT8U *)&SysTime,sizeof(SysTime));
#endif
if(TimePosPara.Status!=OPEN) return;
//if(!SysTimeValid()) return;
GetSysTime(&SysTime);
#if TIMEPOS_DEBUG
SendFromUART_STR(1,(INT8U *)"SysTime:");
FormatPrintDataBlock(FORMAT_HEX,1,(INT8U *)&SysTime,sizeof(SysTime));
#endif
for(i=0;i<MAX_TIMEPOS;i++)
{
if((SysTime.time.hour==TimePosPara.Hour[i])&&(SysTime.time.minute==TimePosPara.Minute[i]))
{
// SendPositionData(POSITION_TIME,i);
return;
}
}
}
BOOLEAN CheckTime(INT8U Node)
{
if(!SysTimeValid()) return FALSE;
if((SysTime.time.hour==TimePosPara.Hour[Node])&&(SysTime.time.minute==TimePosPara.Minute[Node])){
return TRUE;
}
else return FALSE;
}
void TimePosInit(void)
{
#if TIMEPOS_DEBUG
SendFromUART_STR(1,(INT8U *)"TimePosInit");
#endif
TCheckTmrID=CreateTimer(TCheckTmr,0);
if(((TimePosPara.Status!=OPEN)&&(TimePosPara.Status!=CLOSE))
||(!PubParaValid(TIMEPARA_)))
TimePosParaClear();
StartTmr(TCheckTmrID,TCheckPeriod);
}
INT8U TimePosParaSet(INT8U *ParaSetPtr)
{
#if TIMEPOS_DEBUG
SendFromUART_STR(1,(INT8U *)"TimePosParaSet");
FormatPrintDataBlock(FORMAT_HEX,1,ParaSetPtr,3);
#endif
if(*ParaSetPtr>=MAX_TIMEPOS) return ERR;
TimePosPara.Hour[*ParaSetPtr]=*(ParaSetPtr+1);
TimePosPara.Minute[*ParaSetPtr]=*(ParaSetPtr+2);
VirStorePubPara(TIMEPARA_);
return 3;
}
void TimePosParaClear(void)
{
INT8U i;
#if TIMEPOS_DEBUG
SendFromUART_STR(1,(INT8U *)"TimePosParaClear");
#endif
ClearPubPara(TIMEPARA_);
for(i=0;i<MAX_TIMEPOS;i++) TimePosPara.Hour[i]=0xFF,TimePosPara.Minute[i]=0xFF;
TimePosPara.Status=CLOSE;
StorePubPara(TIMEPARA_);
}
void TimePosStart(void)
{
#if TIMEPOS_DEBUG
SendFromUART_STR(1,(INT8U *)"TimePosStart");
#endif
TimePosPara.Status=OPEN;
VirStorePubPara(TIMEPARA_);
}
void TimePosStop(void)
{
#if TIMEPOS_DEBUG
SendFromUART_STR(1,(INT8U *)"TimePosStop");
#endif
TimePosPara.Status=CLOSE;
VirStorePubPara(TIMEPARA_);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -