Я искал решение моей проблемы, но напрасно. Кажется, что нет ничего, что могло бы решить мою проблему. Я высоко ценю вашу помощь. Мне нужно вызвать temperatureControl() с помощью сторожевого таймера. Тем не менее, temperatureControl занимает 2 аргумента, и wdStart может вызывать только fucntion только с одним аргументом. Есть ли для этого работа?wdStart с несколькими аргументами
wdStart(watchDog, args.tPeriod , (FUNCPTR)temperatureControl, arg1, arg2);
Код:
struct arguments{ int tPeriod; /* Time in ticks used inside watchdog to change temperature*/ int room; /* Room targetted */ int temperature; /* Desired temperature*/ }; /* Set the chosen room to the desired temperature after tperiod time*/ void setTemperatureUsingWatchDog(struct arguments args) { watchDog = wdCreate(); wdStart(watchDog, args.tPeriod , (FUNCPTR)temperatureControl, args); logMsg("Room #%d",args.room, "temperature is set to%f", roomTemperature[args.room],0,0,0);
попытаться добавить все три аргумента в 'struct', а затем передать структуру как один единственный аргумент –
Не уверен, что такое' watchdog', но если типы гибкие, вы всегда можете передавать несколько объектов в виде структура. – nchen24
Позвольте мне сделать снимок. Спасибо, ребята – Oliver