function schedule_saveScheduleToFile($schedule, $fileName) { // save to file $fp = fopen($fileName, 'w'); // check if ($fp) { // log logger_logEvent('Updating configuration'); // write fwrite($fp, serialize($schedule)); fclose($fp); // success return true; } else { return false; } }
function operateValves_performActions($schedule) { // log entry logger_logEvent('Checking required valve commands'); // convert schedule to a per-valve array of time ranges (start/end) // each range is represented by offset, in minutes, into the week $weeklyValveSchedule = operateValves_getWeeklyValveSchedule($schedule); // generate a list of valves that need to be open right now $valvesRequiredToBeOpen = operateValves_getListOfValvesCurrentlyRequiredOpen($weeklyValveSchedule); // get a list of valves that are currently open $valvesCurrentlyOpen = operateValves_getCurrentlyOpenValves(); // // get command lists // // command lists $valvesToOpen = array(); $valvesToClose = array(); // get the commands operateValves_getValveCommands($valvesRequiredToBeOpen, $valvesCurrentlyOpen, $valvesToOpen, $valvesToClose); // execute the commands operateValves_executeValveCommands($valvesToOpen, $valvesToClose); // update currently open valves. TODO get from hardware operateValves_updateCurrentlyOpenValves($valvesRequiredToBeOpen); // print logger_logEvent('Currently open valves: ' . arrayToString($valvesCurrentlyOpen, ", ")); logger_logEvent('Valves required to be open: ' . arrayToString($valvesRequiredToBeOpen, ", ")); logger_logEvent('Opening these valves: ' . arrayToString($valvesToOpen, ", ")); logger_logEvent('Closing these valves: ' . arrayToString($valvesToClose, ", ")); }