Exemple #1
0
function dmx_connect()
{
    global $debug, $dmx, $read_buffer;
    $r = trim(`ls -1 /dev/serial/by-id 2>/dev/null |grep "DMX"`);
    if ($r == '') {
        logformat("No USB DMX Interface appears to be connected!\n");
        exit(1);
    }
    $t = explode("-", $r);
    if (isset($t[1])) {
        logformat(sprintf("Found a %s\n", $t[1]));
    }
    $interface = "/dev/serial/by-id/" . $r;
    `stty -F {$interface} 230400 raw -echo`;
    if ($dmx = fopen($interface, 'w+')) {
        stream_set_blocking($dmx, 0);
        stream_set_read_buffer($dmx, 2048);
        $data = '';
        dmx_set_levels($data);
        dmx_set_dmx_receive_mode(SEND_ON_CHANGE_ONLY);
        sleep(1);
        while ($b = fread($dmx, 2048)) {
        }
        //empty the buffer
        $data = "Hello World!";
        dmx_set_parameters(27, 4, 40, $data);
        if (!($c = dmx_request_parameters($read_buffer))) {
            dmx_close();
            return 0;
        }
        return $c;
    }
    return 0;
}
Exemple #2
0
    $debug = $args['d'];
} elseif (isset($args['debug'])) {
    $debug = $args['debug'];
} else {
    $debug = 0;
}
$dmx = new phpSerial();
$dmx->deviceSet(DMX_DEV);
$dmx->confBaudRate(SERIAL_BAUD);
if (!$dmx->deviceOpen()) {
    die("Could not open DMX Interface on " . DMX_DEV . "\n");
}
$f = 0;
if ($sn = dmx_request_serial_number()) {
    printf("Found DMX Interface with Serial Number: %s\n", $sn);
    if ($fw = dmx_request_parameters()) {
        printf("Firmware Version: %s\n", $fw['FW_VER']);
        printf("DMX Output Break Time: %s x 10.67 = %.02f us\n", $fw['DMX_BR_TIME'], $fw['DMX_BR_TIME'] * 10.67);
        printf("DMX Mark After Break Time: %s x 10.67 = %.02f us\n", $fw['DMX_MABR_TIME'], $fw['DMX_MABR_TIME'] * 10.67);
        printf("DMX Output Rate: %s packets/sec\n", $fw['DMX_OUTPUT_RATE']);
    }
    $f = 1;
}
if (!$f) {
    die("Could not find a DMX interface!\n");
}
$d = '';
dmx_set_levels($d);
$d1 = str_pad('', 512, chr(0));
$d2 = str_pad('', 512, chr(0));
dmx_set_levels_U1($d1);