51 lines
1.4 KiB
PHP
51 lines
1.4 KiB
PHP
|
<?php
|
||
|
$beg=3600000;
|
||
|
$end=3800000;
|
||
|
$step=1000;
|
||
|
$rigctl='/usr/bin/rigctl'; # where rigctl lives
|
||
|
$rmodel='363'; # rig model for hamlib
|
||
|
$device='/dev/ttyUSB0'; # serial device connected to rig
|
||
|
$dspeed='19200'; # serial speed set in rig
|
||
|
###############################################################
|
||
|
print "==> RIG CONNECT... ";
|
||
|
$rigcmd=$rigctl.' -m '.$rmodel.' -r '.$device.' -s '.$dspeed;
|
||
|
$socket=popen($rigcmd,'r');
|
||
|
print "OK (".$device.")\n";
|
||
|
print "CMD[".$rigcmd."]\n";
|
||
|
for ($freq = $beg; $freq <= $end; $freq+=$step) {
|
||
|
$afreq=array(); exec($rigcmd.' F '.$freq,$afreq,$fret);
|
||
|
usleep(10000);
|
||
|
$asmet=array(); $get_smet=$rigcmd.' l STRENGTH'; exec($get_smet,$asmet,$sret); $smet=trim($asmet[0]);
|
||
|
if ( $smet > 60 || preg_match("/error/",$smet) ) {
|
||
|
usleep(10000);
|
||
|
$asmet=array(); $get_smet=$rigcmd.' l STRENGTH'; exec($get_smet,$asmet,$sret); $smet=trim($asmet[0]);
|
||
|
}
|
||
|
if ( $smet > 60 || preg_match("/error/",$smet) ) {
|
||
|
usleep(10000);
|
||
|
$asmet=array(); $get_smet=$rigcmd.' l STRENGTH'; exec($get_smet,$asmet,$sret); $smet=trim($asmet[0]);
|
||
|
}
|
||
|
print "[".$freq."] [".smeter($smet)."] ".str_repeat("|",($smet+60))."\n";
|
||
|
}
|
||
|
print "-END-\n";
|
||
|
pclose($socket);
|
||
|
function smeter($dbs9) {
|
||
|
if ( $dbs9 > 60 ) {
|
||
|
$dbs9 = 60;
|
||
|
}
|
||
|
if ( $dbs9 < -54 ) {
|
||
|
$dbs9 = -54;
|
||
|
}
|
||
|
$overs9 = $dbs9 - 54;
|
||
|
if ( $overs9 < 0 ) {
|
||
|
$overs9 = 0;
|
||
|
}
|
||
|
if ( $dbs9 > 0 ) {
|
||
|
$dbs9 = 0;
|
||
|
}
|
||
|
$smeter = 'S'.round(($dbs9+54)/6);
|
||
|
if ( $overs9 > 0 ) {
|
||
|
$smeter .= '+'.$overs9.'dB';
|
||
|
}
|
||
|
return $smeter;
|
||
|
}
|