I am trying to use Timealarms library in my project.
I want to execute a function every time the alarm is fired.
All my code is inside a library I am developing. So, in arduino sketch, I import and initialize an object.
MyLib myLib = new MyLib();
Ok, my problem comes when I want to pass a function to Alarm.alarmRepeat. This is how I do it:
void MyLib::MorningAlarm1(){
Serial.println("Alarm1");
MorningAlarm(0);
}
void MyLib::MorningAlarm(int pos){
int alarm_fired = Alarm.getTriggeredAlarmId();
Serial.println(alarm_fired);
}
In another function, I have this:
Alarm.alarmRepeat(hour,
minute,0, MorningAlarm1); //hour and minute, are int values 10 and 30 for example
//Example code in sketch from library: Alarm.alarmRepeat(8,30,0, MorningAlarm);
Then I got some errors:
C:\Users\myuser\Documents\Arduino\libraries\MyLib\MyLib.cpp: In member function 'void MyLib::loadRelayListValues()':
C:\Users\myuser\Documents\Arduino\libraries\MyLib\MyLib.cpp:416:191: error: no matching function for call to 'TimeAlarmsClass::alarmRepeat(int, int, int, <unresolved overloaded function type>)'
relayList[i].alarm_id[ii-1] = Alarm.alarmRepeat(hour, minute, 0, MorningAlarm1); //change loop by desired function
^
C:\Users\myuser\Documents\Arduino\libraries\MyLib\MyLib.cpp:416:191: note: candidates are:
In file included from C:\Users\myuser\Documents\Arduino\libraries\MyLib\MyLib.cpp:13:0:
C:\Users\myuser\Documents\Arduino\libraries\TimeAlarms/TimeAlarms.h:69:13: note: AlarmID_t TimeAlarmsClass::alarmRepeat(time_t, OnTick_t)
AlarmID_t alarmRepeat(time_t value, OnTick_t onTickHandler); // trigger daily at given time of day
^
C:\Users\myuser\Documents\Arduino\libraries\TimeAlarms/TimeAlarms.h:69:13: note: candidate expects 2 arguments, 4 provided
C:\Users\myuser\Documents\Arduino\libraries\TimeAlarms/TimeAlarms.h:70:13: note: AlarmID_t TimeAlarmsClass::alarmRepeat(int, int, int, OnTick_t)
AlarmID_t alarmRepeat(const int H, const int M, const int S, OnTick_t onTickHandler); // as above, with hms arguments
^
C:\Users\myuser\Documents\Arduino\libraries\TimeAlarms/TimeAlarms.h:70:13: note: no known conversion for argument 4 from '<unresolved overloaded function type>' to 'OnTick_t {aka void (*)()}'
C:\Users\myuser\Documents\Arduino\libraries\TimeAlarms/TimeAlarms.h:71:13: note: AlarmID_t TimeAlarmsClass::alarmRepeat(timeDayOfWeek_t, int, int, int, OnTick_t)
AlarmID_t alarmRepeat(const timeDayOfWeek_t DOW, const int H, const int M, const int S, OnTick_t onTickHandler); // as above, with day of week
^
C:\Users\myuser\Documents\Arduino\libraries\TimeAlarms/TimeAlarms.h:71:13: note: candidate expects 5 arguments, 4 provided
Error compiling.
And I don’t understand what they mean. Can you point me about how to solve them?