コード例 #1
0
function send_dmx_input_level_info_message($id, &$in_states)
{
    global $dinames;
    $endpoint_name = '';
    $displaytext = '';
    $state = substr($in_states, $id * 2, 2) == '00' ? 'Off' : 'On';
    $level = hexdec(substr($in_states, $id * 2, 2)) . '/255';
    $displaytext = '';
    if (isset($dinames[$id + 1]) and $dinames[$id + 1] != '') {
        $endpoint_name = $dinames[$id + 1] . '.Level';
        $displaytext = sprintf("displaytext=Status and Dimmer Level of DMX Channel %s, %s\n", $id + 1, $dinames[$id + 1]);
    }
    $msg = sprintf("input.state\n{\nstate=%s\nlevel=%s\n%s}\n", $state, $level, $displaytext);
    xap_sendInfoMsg($msg, '', xap_make_endpoint_source(XAPSRC_DMX_IN1, $id, $endpoint_name), xap_make_endpoint_uid(XAPUID_DMX_IN1, $id));
}
コード例 #2
0
ファイル: xaplib.inc.php プロジェクト: JakDaniels/hac_xap
function xap_send_switch_msg($switch_no, $state, $displayTxt = '')
{
    $msg = "input.state\n{\nState=" . $state . "\n";
    if ($displayTxt != '') {
        $msg .= "DisplayText=" . $displayTxt . "\n";
    }
    $msg .= "}\n";
    $source = xap_make_endpoint_source($switch_no);
    $uid = xap_make_endpoint_uid($switch_no);
    xap_sendEventMsg($msg, "", $source, $uid);
}
コード例 #3
0
ファイル: hac_sensor.php プロジェクト: JakDaniels/hac_xap
function send_data()
{
    global $debug, $minmax;
    $s = enumerate_w1_sensors();
    if (is_array($s)) {
        foreach ($s as $k => $v) {
            //$k=xap_id $v=sensor metadata
            if ($v['AVAILABLE'] == 'YES') {
                if ($v['TYPE'] == 28) {
                    //1 wire temperature sensor
                    $id = $v['TYPE'] . '-' . $v['SENSOR_ID'];
                    logformat(sprintf("Reading 1 wire temperature sensor with ID: '%s' and NAME: '%s'.\n", $id, $v['NAME']));
                    $cmd = 'cat ' . SENSORPATH . '/' . $id . '/w1_slave';
                    $r = explode("\n", `{$cmd}`);
                    if (substr($r[0], -3) == 'YES') {
                        $t = explode("=", $r[1]);
                        $temp = sprintf("%.03f", $t[1] / 1000);
                        $dt = date('YmdHis');
                        // deal with min and max values and save them
                        if (!isset($minmax[$id])) {
                            $minmax[$id] = array('min' => $temp, 'mintime' => $dt, 'max' => $temp, 'maxtime' => $dt);
                        }
                        if ($temp < $minmax[$id]['min']) {
                            $minmax[$id]['min'] = $temp;
                            $minmax[$id]['mintime'] = $dt;
                        }
                        if ($temp > $minmax[$id]['max']) {
                            $minmax[$id]['max'] = $temp;
                            $minmax[$id]['maxtime'] = $dt;
                        }
                        logformat(sprintf("Id=%s,Name=%s,Data=%s°C\n", $id, $v['NAME'], $temp));
                        $msg = sprintf("info.temperature\n{\nname=%s\ndatetime=%s\nunit=c\nvalue=%s\nsensorId=%s\n}\n", XAPSOURCE . '.' . $v['NAME'], $dt, $temp, $id);
                        $msg .= sprintf("stats.temperature\n{\nmax=%s\nmaxtime=%s\nmin=%s\nmintime=%s\n}\n", $minmax[$id]['max'], $minmax[$id]['maxtime'], $minmax[$id]['min'], $minmax[$id]['mintime']);
                        xap_sendMsg('xAPTSC.info', $msg, '', xap_make_endpoint_source(XAPSOURCE, $k), xap_make_endpoint_uid(XAPUID, $k));
                    }
                }
            } else {
                logformat(sprintf("Skipping 1 wire sensor with ID: '%s-%s' and NAME: '%s'.\n", $v['TYPE'], $v['SENSOR_ID'], $v['NAME']));
            }
        }
    }
    return 1;
}
コード例 #4
0
function send_io_output_binary_info_message($id, &$out_states)
{
    global $onames;
    $endpoint_name = '';
    $displaytext = '';
    $state = substr($out_states, $id * 2, 2) == 'FF' ? 'On' : 'Off';
    if (isset($onames[$id + 1]) and $onames[$id + 1] != '') {
        $endpoint_name = $onames[$id + 1];
        $displaytext = sprintf("displaytext=Status of Lighting Fixture %s\n", $onames[$id + 1]);
    }
    $msg = sprintf("output.state\n{\nstate=%s\n%s}\n", $state, $displaytext);
    xap_sendInfoMsg($msg, '', xap_make_endpoint_source(XAPSRC_IO_OUT, $id, $endpoint_name), xap_make_endpoint_uid(XAPUID_IO_OUT, $id));
}