The final project of Embedde class.
Dependencies: C12832 LM75B ESP-call MMA7660
ALARM.cpp
00001 #include "ALARM.h" 00002 00003 short alarmHour = 0; 00004 short alarmMinute = 12; 00005 short alarmSecond = 00; 00006 bool alarmState = false; 00007 00008 Semaphore semaphoreAlarmData(0, 1); 00009 Thread _threadAlarm[2]; 00010 void _alarmGetDataFromHTML(void) 00011 { 00012 while(1) { 00013 semaphoreWifiHasBuffer.acquire(); 00014 PC.printf("%s\r\n", wifiReceivedBuffer); 00015 alarmHour = 10 * (wifiReceivedBuffer[1] - '0') + (wifiReceivedBuffer[2] - '0'); 00016 alarmMinute = 10 * (wifiReceivedBuffer[6] - '0') + (wifiReceivedBuffer[7] - '0'); 00017 alarmSecond = 10 * (wifiReceivedBuffer[11] - '0') + (wifiReceivedBuffer[12] - '0'); 00018 00019 if((0 <= alarmHour && alarmHour < 24) && 00020 (0 <= alarmMinute && alarmMinute < 60) && 00021 (0 <= alarmSecond && alarmSecond < 60)) { 00022 alarmState = true; 00023 } else { 00024 alarmState = false; 00025 } 00026 semaphoreAlarmData.release(); 00027 buzzerRinging(4, 50); 00028 } 00029 } 00030 00031 void _alarmDoAlert(void) 00032 { 00033 short _alarmHour, _timerHour; 00034 short _alarmMinute, _timerMinute; 00035 short _alarmSecond, _timerSecond; 00036 bool _alarmState; 00037 while(1) { 00038 semaphoreAlarmData.acquire(); 00039 _alarmHour = alarmHour; 00040 _alarmMinute = alarmMinute; 00041 _alarmSecond = alarmSecond; 00042 _alarmState = alarmState; 00043 semaphoreAlarmData.release(); 00044 00045 semaphoreTimer.acquire(); 00046 _timerHour = timerHour; 00047 _timerMinute = timerMinute; 00048 _timerSecond = timerSecond; 00049 semaphoreTimer.release(); 00050 00051 if(_alarmState == true) { 00052 if(_alarmHour == _timerHour) { 00053 if(_alarmMinute == _timerMinute) { 00054 if(_alarmSecond == _timerSecond) { 00055 bellSingleAlert(1000 * 30); 00056 } 00057 } 00058 } 00059 } 00060 } 00061 } 00062 00063 void alarmInit(void) 00064 { 00065 _threadAlarm[0].start(_alarmGetDataFromHTML); 00066 _threadAlarm[1].start(_alarmDoAlert); 00067 semaphoreAlarmData.release(); 00068 }
Generated on Fri Jul 15 2022 05:56:23 by 1.7.2