Example #1
0
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);
}
Example #2
0
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;
}
Example #3
0
$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;