The final project of Embedde class.
Dependencies: C12832 LM75B ESP-call MMA7660
ALARM/ALARM.cpp@1:ed1c6618f739, 2021-06-03 (annotated)
- Committer:
- pkr7098
- Date:
- Thu Jun 03 07:08:47 2021 +0000
- Revision:
- 1:ed1c6618f739
The final project of Embedde class.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pkr7098 | 1:ed1c6618f739 | 1 | #include "ALARM.h" |
pkr7098 | 1:ed1c6618f739 | 2 | |
pkr7098 | 1:ed1c6618f739 | 3 | short alarmHour = 0; |
pkr7098 | 1:ed1c6618f739 | 4 | short alarmMinute = 12; |
pkr7098 | 1:ed1c6618f739 | 5 | short alarmSecond = 00; |
pkr7098 | 1:ed1c6618f739 | 6 | bool alarmState = false; |
pkr7098 | 1:ed1c6618f739 | 7 | |
pkr7098 | 1:ed1c6618f739 | 8 | Semaphore semaphoreAlarmData(0, 1); |
pkr7098 | 1:ed1c6618f739 | 9 | Thread _threadAlarm[2]; |
pkr7098 | 1:ed1c6618f739 | 10 | void _alarmGetDataFromHTML(void) |
pkr7098 | 1:ed1c6618f739 | 11 | { |
pkr7098 | 1:ed1c6618f739 | 12 | while(1) { |
pkr7098 | 1:ed1c6618f739 | 13 | semaphoreWifiHasBuffer.acquire(); |
pkr7098 | 1:ed1c6618f739 | 14 | PC.printf("%s\r\n", wifiReceivedBuffer); |
pkr7098 | 1:ed1c6618f739 | 15 | alarmHour = 10 * (wifiReceivedBuffer[1] - '0') + (wifiReceivedBuffer[2] - '0'); |
pkr7098 | 1:ed1c6618f739 | 16 | alarmMinute = 10 * (wifiReceivedBuffer[6] - '0') + (wifiReceivedBuffer[7] - '0'); |
pkr7098 | 1:ed1c6618f739 | 17 | alarmSecond = 10 * (wifiReceivedBuffer[11] - '0') + (wifiReceivedBuffer[12] - '0'); |
pkr7098 | 1:ed1c6618f739 | 18 | |
pkr7098 | 1:ed1c6618f739 | 19 | if((0 <= alarmHour && alarmHour < 24) && |
pkr7098 | 1:ed1c6618f739 | 20 | (0 <= alarmMinute && alarmMinute < 60) && |
pkr7098 | 1:ed1c6618f739 | 21 | (0 <= alarmSecond && alarmSecond < 60)) { |
pkr7098 | 1:ed1c6618f739 | 22 | alarmState = true; |
pkr7098 | 1:ed1c6618f739 | 23 | } else { |
pkr7098 | 1:ed1c6618f739 | 24 | alarmState = false; |
pkr7098 | 1:ed1c6618f739 | 25 | } |
pkr7098 | 1:ed1c6618f739 | 26 | semaphoreAlarmData.release(); |
pkr7098 | 1:ed1c6618f739 | 27 | buzzerRinging(4, 50); |
pkr7098 | 1:ed1c6618f739 | 28 | } |
pkr7098 | 1:ed1c6618f739 | 29 | } |
pkr7098 | 1:ed1c6618f739 | 30 | |
pkr7098 | 1:ed1c6618f739 | 31 | void _alarmDoAlert(void) |
pkr7098 | 1:ed1c6618f739 | 32 | { |
pkr7098 | 1:ed1c6618f739 | 33 | short _alarmHour, _timerHour; |
pkr7098 | 1:ed1c6618f739 | 34 | short _alarmMinute, _timerMinute; |
pkr7098 | 1:ed1c6618f739 | 35 | short _alarmSecond, _timerSecond; |
pkr7098 | 1:ed1c6618f739 | 36 | bool _alarmState; |
pkr7098 | 1:ed1c6618f739 | 37 | while(1) { |
pkr7098 | 1:ed1c6618f739 | 38 | semaphoreAlarmData.acquire(); |
pkr7098 | 1:ed1c6618f739 | 39 | _alarmHour = alarmHour; |
pkr7098 | 1:ed1c6618f739 | 40 | _alarmMinute = alarmMinute; |
pkr7098 | 1:ed1c6618f739 | 41 | _alarmSecond = alarmSecond; |
pkr7098 | 1:ed1c6618f739 | 42 | _alarmState = alarmState; |
pkr7098 | 1:ed1c6618f739 | 43 | semaphoreAlarmData.release(); |
pkr7098 | 1:ed1c6618f739 | 44 | |
pkr7098 | 1:ed1c6618f739 | 45 | semaphoreTimer.acquire(); |
pkr7098 | 1:ed1c6618f739 | 46 | _timerHour = timerHour; |
pkr7098 | 1:ed1c6618f739 | 47 | _timerMinute = timerMinute; |
pkr7098 | 1:ed1c6618f739 | 48 | _timerSecond = timerSecond; |
pkr7098 | 1:ed1c6618f739 | 49 | semaphoreTimer.release(); |
pkr7098 | 1:ed1c6618f739 | 50 | |
pkr7098 | 1:ed1c6618f739 | 51 | if(_alarmState == true) { |
pkr7098 | 1:ed1c6618f739 | 52 | if(_alarmHour == _timerHour) { |
pkr7098 | 1:ed1c6618f739 | 53 | if(_alarmMinute == _timerMinute) { |
pkr7098 | 1:ed1c6618f739 | 54 | if(_alarmSecond == _timerSecond) { |
pkr7098 | 1:ed1c6618f739 | 55 | bellSingleAlert(1000 * 30); |
pkr7098 | 1:ed1c6618f739 | 56 | } |
pkr7098 | 1:ed1c6618f739 | 57 | } |
pkr7098 | 1:ed1c6618f739 | 58 | } |
pkr7098 | 1:ed1c6618f739 | 59 | } |
pkr7098 | 1:ed1c6618f739 | 60 | } |
pkr7098 | 1:ed1c6618f739 | 61 | } |
pkr7098 | 1:ed1c6618f739 | 62 | |
pkr7098 | 1:ed1c6618f739 | 63 | void alarmInit(void) |
pkr7098 | 1:ed1c6618f739 | 64 | { |
pkr7098 | 1:ed1c6618f739 | 65 | _threadAlarm[0].start(_alarmGetDataFromHTML); |
pkr7098 | 1:ed1c6618f739 | 66 | _threadAlarm[1].start(_alarmDoAlert); |
pkr7098 | 1:ed1c6618f739 | 67 | semaphoreAlarmData.release(); |
pkr7098 | 1:ed1c6618f739 | 68 | } |