function dmx_write($cmd, $s, $data) { global $debug, $dmx; $sLSB = $s % 256; $sMSB = floor($s / 256); $packet = chr(DMX_START_BYTE) . chr($cmd) . chr($sLSB) . chr($sMSB) . $data . chr(DMX_END_BYTE); if ($debug) { printf("Sent: %s\n", hex_display($packet)); } return fwrite($dmx, $packet); }
function dmx_write($cmd, $s, &$data) { global $debug, $dmx; $sLSB = $s % 256; $sMSB = floor($s / 256); $packet = chr(DMX_START_BYTE) . chr($cmd) . chr($sLSB) . chr($sMSB) . $data . chr(DMX_END_BYTE); if ($debug & DMX_DEBUG_ID) { logformat(sprintf("Sent: %s\n", hex_display($packet))); } $w = fwrite($dmx, $packet); fflush($dmx); return $w; }
$dmx_output1 = bcd_to_chr($dmx_outputs1); $dmx_output2 = bcd_to_chr($dmx_outputs2); dmx_set_levels_U1($dmx_output1); dmx_set_levels_U2($dmx_output2); dmx_set_dmx_receive_mode(SEND_ON_CHANGE_ONLY); while (1) { if ($must_exit) { break; } if (dmx_read($read_buffer)) { //got some input from the interface while ($packet = dmx_get_next_packet($read_buffer)) { $di = ''; if ($p = dmx_get_dmx_change_data($packet, $dmx_input)) { if ($debug & DMX_DEBUG_ID) { logformat(sprintf("DMX Received: %s\n", hex_display($dmx_input))); } $di = chr_to_bcd($dmx_input); dmx_write_shared_memory($shm_id, $di, 0, 0); //send xap event(s) for ($i = 0; $i < 128; $i++) { if (substr($di, $i * 2, 2) != substr($dmx_inputs, $i * 2, 2)) { send_dmx_input_level_event_message($i, $di); } } $dmx_inputs = $di; } } } else { $outs1_changed = 0; $outs2_changed = 0;