1#!/usr/local/bin/perl -Iblib/arch -Iblib/lib 2 3use Hamlib; 4 5print "Perl $] test, version: $Hamlib::hamlib_version\n\n"; 6 7#Hamlib::rig_set_debug($Hamlib::RIG_DEBUG_TRACE); 8Hamlib::rig_set_debug($Hamlib::RIG_DEBUG_NONE); 9 10$rig = new Hamlib::Rig($Hamlib::RIG_MODEL_DUMMY); 11 12# replace "/dev/Rig" with your path to serial port 13$rig->set_conf("retry","50"); 14$rig->set_conf("rig_pathname","/dev/Rig"); 15 16$rig->open(); 17 18$rpath = $rig->get_conf("rig_pathname"); 19$retry = $rig->get_conf("retry"); 20print "get_conf:\t\tpath = \"$rpath\", retry = $retry\n"; 21 22 23$rig->set_freq($Hamlib::RIG_VFO_A, 14266000); 24 25$f = $rig->get_freq(); 26print "freq:\t\t\t$f\n"; 27 28($mode, $width) = $rig->get_mode(); 29print "get_mode:\t\t".Hamlib::rig_strrmode($mode)."\nwidth:\t\t\t$width\n"; 30 31$vfo = $rig->get_vfo(); 32print "get_vfo:\t\t".Hamlib::rig_strvfo($vfo)."\n"; 33$rig->set_vfo($Hamlib::RIG_VFO_B); 34#$rig->set_vfo("VFOA"); 35 36$rig->set_mode($Hamlib::RIG_MODE_CW, $Hamlib::RIG_PASSBAND_NORMAL); 37 38print "Backend copyright:\t$rig->{caps}->{copyright}\n"; 39print "Model:\t\t\t$rig->{caps}->{model_name}\n"; 40print "Manufacturer:\t\t$rig->{caps}->{mfg_name}\n"; 41print "Backend version:\t$rig->{caps}->{version}\n"; 42$inf = $rig->get_info(); 43 44print "get_info:\t\t$inf\n"; 45 46$rig->set_level("VOX", 1); 47$lvl = $rig->get_level_i("VOX"); 48print "VOX delay:\t\t$lvl\n"; 49$rig->set_level($Hamlib::RIG_LEVEL_VOXDELAY, 5); 50$lvl = $rig->get_level_i($Hamlib::RIG_LEVEL_VOXDELAY); 51print "VOX delay:\t\t$lvl\n"; 52 53$lvl = $rig->get_level_i($Hamlib::RIG_LEVEL_STRENGTH); 54print "strength:\t\t$lvl\n"; 55 56 57$chan = new Hamlib::channel($Hamlib::RIG_VFO_A); 58 59$rig->get_channel($chan,1); 60@tokens = split("\n",Hamlib::rigerror($rig->{error_status})); 61print "get_channel status:\t$rig->{error_status} = ".$tokens[0]."\n"; 62 63print "VFO:\t\t\t".Hamlib::rig_strvfo($chan->{vfo}).", $chan->{freq}\n"; 64 65$att = $rig->{caps}->{attenuator}; 66print "Attenuators:\t\t@$att\n"; 67 68print "\nSending Morse, '73'\n"; 69$rig->send_morse($Hamlib::RIG_VFO_A, "73"); 70 71$rig->close(); 72 73 74print "\nSome static functions:\n"; 75 76($err, $lon1, $lat1, $sw1) = Hamlib::locator2longlat("IN98XC"); 77($err, $lon2, $lat2, $sw1) = Hamlib::locator2longlat("DM33DX"); 78$loc1 = Hamlib::longlat2locator($lon1, $lat1, 3); 79$loc2 = Hamlib::longlat2locator($lon2, $lat2, 3); 80printf("Loc1:\t\tIN98XC -> %9.4f, %9.4f-> %s\n", $lon1, $lat1, $loc1); 81printf("Loc1:\t\tDM33DX -> %9.4f, %9.4f-> %s\n", $lon2, $lat2, $loc2); 82 83($err, $dist, $az) = Hamlib::qrb($lon1, $lat1, $lon2, $lat2); 84$longpath = Hamlib::distance_long_path($dist); 85 86printf("Distance:\t%.3f km, azimuth %.2f, long path: %.3f km\n", 87 $dist, $az, $longpath); 88 89# dec2dms expects values from 180 to -180 90# sw is 1 when deg is negative (west or south) as 0 cannot be signed 91($err, $deg1, $min1, $sec1, $sw1) = Hamlib::dec2dms($lon1); 92($err, $deg2, $min2, $sec2, $sw2) = Hamlib::dec2dms($lat1); 93 94$lon3 = Hamlib::dms2dec($deg1, $min1, $sec1, $sw1); 95$lat3 = Hamlib::dms2dec($deg2, $min2, $sec2, $sw2); 96 97printf("Longitude:\t%9.4f, %4d° %2d' %2d\" %1s\trecoded: %9.4f\n", 98 $lon1, $deg1, $min1, $sec1, $sw1 ? 'W' : 'E', $lon3); 99 100printf("Latitude:\t%9.4f, %4d° %2d' %2d\" %1s\trecoded: %9.4f\n", 101 $lat1, $deg2, $min2, $sec2, $sw2 ? 'S' : 'N', $lat3); 102