/** * @brief ProcUVAlarm * * UV alarm function * * @para data address of SystemDataType * @return NULL */ void ProcUVAlarm(SystemDataType *data) { _sys_u8_ tmp8[4]; /// [AT-PM] : Check alarm is enable or not ; 04/08/2013 if(!(data->ggbParameter->alarmEnable & CELL_PARAMETER_ALARM_EN_UV)) { /// [AT-PM] : Disable UV and OV alarm ; 04/08/2013 AlarmDisable(ALARM_EN_V1_ALARM_EN); return; } if(data->uvAlarm.state == _UPI_TRUE_) { /// [AT-PM] : UV alarm has been set -> Wait for OV alarm ; 04/08/2013 if(data->alarmSts & SYS_ALARM_STS_OV1) { data->uvAlarm.state = _UPI_FALSE_; /// [AT-PM] : Release UV alarm by disable ; 04/08/2013 AlarmDisable(ALARM_EN_V1_ALARM_EN); /// [AT-PM] : UV release threshold reached -> set alarm threshold ; 04/08/2013 tmp8[0] = 0xff; tmp8[1] = 0x7f; tmp8[2] = (_sys_u8_)(data->uvAlarm.alarmThrd & 0x00ff); tmp8[3] = (_sys_u8_)(data->uvAlarm.alarmThrd >> 8); } else {
/*------------------------------------------------------*/ int SetAlarm (void) { rtime t = Time; int i,j,k,n; char s[8][8]; for(i=0; i<8; ++i) { writeRTC(i,0); s[i][0] = 0; } n=sscanf(&LinkBuff[1],"%2d:%02d:%02d%s%s%s%s%s", &i,&j,&k,&s[0],&s[1],&s[2],&s[3],&s[4]); if(n>=3) { if(n==3) { t.hour=i; t.min=j; t.sec=k; AlarmEnable(&t); puts_pc("Wakeup on\r\n"); } if(n>3) { writeRTC(0,i); writeRTC(1,j); writeRTC(2,k); n -=3; for(i=0; n--; ++i) writeRTC(i+3,chrtx(s[i])); puts_pc("Submit on\r\n"); } } else { AlarmDisable(); puts_pc("Wakeup off\r\n"); } shutdown_save(NULL); return(null); }