예제 #1
0
function switch_off($i, &$in_states, &$in_programs, &$in_levels)
{
    $in_states = substr_replace($in_states, '00', $i * 2, 2);
    send_io_input_level_event_message($i, $in_states, $in_levels);
    send_io_input_program_event_message($i, $in_states, $in_programs);
    return 1;
}
예제 #2
0
 $ip = '';
 $il = '';
 io_read_shared_memory($shm_id, $os, $is, $ip, $il);
 if ($os . $is . $ip . $il != $out_states . $in_states . $in_programs . $in_levels) {
     //something changed
     //if($os!=$out_states) set_outputs($os); //set the hardware outputs
     for ($i = 0; $i < OUT_PINS; $i++) {
         if (substr($os, $i * 2, 2) != substr($out_states, $i * 2, 2)) {
             send_io_output_binary_event_message($i, $os);
             //light
             $outputs_changed = 1;
         }
     }
     for ($i = 0; $i < IN_PINS; $i++) {
         if (substr($is, $i * 2, 2) != substr($in_states, $i * 2, 2) or substr($il, $i * 2, 2) != substr($in_levels, $i * 2, 2)) {
             send_io_input_level_event_message($i, $is, $il);
             //switch state and level
             $inputs_changed = 1;
         }
         if (substr($ip, $i * 2, 2) != substr($in_programs, $i * 2, 2)) {
             send_io_input_program_event_message($i, $is, $ip);
             //switch program
             $inputs_changed = 1;
         }
     }
 }
 //update internal state variables after any changes
 if ($outputs_changed) {
     $out_states = $os;
 }
 if ($inputs_changed) {