function get_port_data($sock, $str, $pin, $val)
{
$val = 0x81 | ($pin << 3);
$str = pack ("C*", 0x04, $val, 0x00);
$array = unpack("C*",$str);
$send_len = socket_send($sock , $str, 3, MSG_EOF );
$recv_len = socket_recv($sock , $buf, 8, MSG_WAITALL);
$array = unpack("CportAV/CportBV/CportAR/CportBR/CvalH/CvalL/C*data",$buf);
$data = '';
// var_dump( $array );
// printf( "
");
// $data = sprintf( "--- PHP UDP --- \n" );
//$data.= sprintf( "pin %d => %x \n", $pin ,$val);
//$data.= sprintf( "port A val = 0x%02x \n", $array[portAV]);
//$data.= sprintf( "port B val = 0x%02x \n", $array[portBV]);
//$data.= sprintf( "port A reg = 0x%02x \n", $array[portAR]);
//$data.= sprintf( "port B reg = 0x%02x \n", $array[portBR]);
$val_HL = $array[valH]*256+$array[valL];
/*
$data.= sprintf( "RA%d A/D value = 0x%04x [%4d] %5.3fV \n
",
$pin,
$val_HL,
$val_HL,
5/1024*$val_HL);
// $data.= sprintf( "0x%04x(HL)\n
", $val_HL);
*/
//$data.= sprintf( "A/D reg = 0x%02x \n
", $array[data1]);
return array($val_HL,$pin);
// return $data;
}
$addr = '192.168.61.113';
$port = 10001;
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
$sock_data = socket_connect($sock, $addr, $port);
$ad_bias = 5/1024; // 5V 1024ʳ
// var_dump( $array );
// exit;
list($dat_hl_2,$pin_2) = get_port_data($sock, $str, 2, $val);
list($dat_hl_1,$pin_1) = get_port_data($sock, $str, 0, $val);
$bias_v = $dat_hl_1/$dat_hl_2;
// $data.= sprintf( "\n%6.3f\n\n", $bias_v);
/*
$data.= sprintf( "RA%d A/D value = 0x%04x [%4d] %f[V] %4.1f []\n
",
$pin_2,$dat_hl_2,$dat_hl_2,
$dat_hl_2 * $ad_bias,
$dat_hl_2 * $ad_bias * 100
);
*/
/*
$data.= sprintf( "RA%d A/D value = 0x%04x [%4d] %f[V] %4.1f [ò]\n\n\n",
$pin_1,$dat_hl_1,$dat_hl_1,
$dat_hl_1 * $ad_bias,
$dat_hl_1 * $ad_bias * 100 / $bias_v
);
*/
list($dat_hl_1,$pin_1) = get_port_data($sock, $str, 0, $val);
list($dat_hl_2,$pin_2) = get_port_data($sock, $str, 1, $val);
list($dat_hl_3,$pin_3) = get_port_data($sock, $str, 2, $val);
list($dat_hl_4,$pin_4) = get_port_data($sock, $str, 3, $val);
$data.= sprintf( "RA%d A/D value = %3d %5.3f[V]\n
", $pin_1,$dat_hl_1, $dat_hl_1 * $ad_bias );
$data.= sprintf( "RA%d A/D value = %3d %5.3f[V]\n
", $pin_2,$dat_hl_2, $dat_hl_2 * $ad_bias );
$data.= sprintf( "RA%d A/D value = %3d %5.3f[V] %5d[lx]\n
", $pin_3,$dat_hl_3, $dat_hl_3 * $ad_bias , $dat_hl_3 * $ad_bias * 1000);
$data.= sprintf( "RA%d A/D value = %3d %5.3f[V]\n
", $pin_4,$dat_hl_4, $dat_hl_4 * $ad_bias );
/*
list($dat_hl_2,$pin_2) = get_port_data($sock, $str, 3, $val);
list($dat_hl_1,$pin_1) = get_port_data($sock, $str, 1, $val);
$bias_v = $dat_hl_1/$dat_hl_2;
// $data.= sprintf( "\n%6.3f\n\n", $bias_v);
$data.= sprintf( "RA%d A/D value = 0x%04x [%4d] %12.10f[V] %4.1f []\n
",
$pin_1,$dat_hl_1,$dat_hl_1,
$dat_hl_1 * $ad_bias,
$dat_hl_1 * $ad_bias * 100 / $bias_v
);
*/
// $pin = 4;
// $val = 0x81 | ($pin << 3);
// $str = pack ("C*", 0x04, $val, 0x00);
// $array = unpack("C*",$str);
// $data.= get_port_data($sock, $str, $pin, $val);
// echo 100/15;
socket_close ( $sock );
//
// إå!
//
mb_http_output("EUC-JP");
header("Content-Type: text/html; charset=EUC-JP");
header("Expires: Thu, 01 Dec 1994 16:00:00 GMT");
header("Last-Modified: ". gmdate("D, d M Y H:i:s"). " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
$html_head = '
'; print $data; print ''; print $html_foot; ?>