1#!/usr/bin/env python2 2# -*- coding: utf-8 -*- 3 4import sys 5 6## Uncomment to run this script from an in-tree build (or adjust to the 7## build directory) without installing the bindings. 8#sys.path.append ('.') 9#sys.path.append ('.libs') 10 11import Hamlib 12 13def StartUp(verbose): 14 """Simple script to test the Hamlib.py module with Python2.""" 15 16 print "%s: Python %s; %s\n" \ 17 % (sys.argv[0], sys.version.split()[0], Hamlib.cvar.hamlib_version) 18 19 Hamlib.rig_set_debug([Hamlib.RIG_DEBUG_NONE, Hamlib.RIG_DEBUG_VERBOSE][verbose]) 20 21 # Init RIG_MODEL_DUMMY 22 my_rig = Hamlib.Rig(Hamlib.RIG_MODEL_DUMMY) 23 my_rig.set_conf("rig_pathname", "/dev/Rig") 24 my_rig.set_conf("retry", "5") 25 26 my_rig.open() 27 28 rpath = my_rig.get_conf("rig_pathname") 29 retry = my_rig.get_conf("retry") 30 31 print "status(str):\t\t", Hamlib.rigerror(my_rig.error_status) 32 print "get_conf:\t\tpath = %s, retry = %s" \ 33 % (rpath, retry) 34 35 my_rig.set_freq(Hamlib.RIG_VFO_B, 5700000000) 36 my_rig.set_vfo(Hamlib.RIG_VFO_B) 37 38 print "freq:\t\t\t", my_rig.get_freq() 39 40 my_rig.set_freq(Hamlib.RIG_VFO_A, 145550000) 41 (mode, width) = my_rig.get_mode() 42 43 print "mode:\t\t\t", Hamlib.rig_strrmode(mode), "\nbandwidth:\t\t", width 44 45 my_rig.set_mode(Hamlib.RIG_MODE_CW) 46 (mode, width) = my_rig.get_mode() 47 48 print "mode:\t\t\t", Hamlib.rig_strrmode(mode), "\nbandwidth:\t\t", width 49 50 print "Backend copyright:\t", my_rig.caps.copyright 51 print "Model:\t\t\t", my_rig.caps.model_name 52 print "Manufacturer:\t\t", my_rig.caps.mfg_name 53 print "Backend version:\t", my_rig.caps.version 54 print "Backend status:\t\t", Hamlib.rig_strstatus(my_rig.caps.status) 55 print "Rig info:\t\t", my_rig.get_info() 56 57 my_rig.set_level("VOXDELAY", 1) 58 59 print "VOX delay:\t\t", my_rig.get_level_i("VOXDELAY") 60 61 my_rig.set_level(Hamlib.RIG_LEVEL_VOXDELAY, 5) 62 63 print "VOX delay:\t\t", my_rig.get_level_i(Hamlib.RIG_LEVEL_VOXDELAY) 64 65 af = 12.34 66 67 print "Setting AF to %0.2f...." % (af) 68 69 my_rig.set_level("AF", af) 70 71 print "status:\t\t\t%s - %s" % (my_rig.error_status, 72 Hamlib.rigerror(my_rig.error_status)) 73 74 print "AF level:\t\t%0.2f" % my_rig.get_level_f(Hamlib.RIG_LEVEL_AF) 75 print "strength:\t\t", my_rig.get_level_i(Hamlib.RIG_LEVEL_STRENGTH) 76 print "status:\t\t\t", my_rig.error_status 77 print "status(str):\t\t", Hamlib.rigerror(my_rig.error_status) 78 79 chan = Hamlib.channel(Hamlib.RIG_VFO_B) 80 my_rig.get_channel(chan,1) 81 82 print "get_channel status:\t", my_rig.error_status 83 print "VFO:\t\t\t", Hamlib.rig_strvfo(chan.vfo), ", ", chan.freq 84 print "Attenuators:\t\t", my_rig.caps.attenuator 85 print "\nSending Morse, '73'" 86 87 my_rig.send_morse(Hamlib.RIG_VFO_A, "73") 88 my_rig.close () 89 90 print "\nSome static functions:" 91 92 err, lon1, lat1 = Hamlib.locator2longlat("IN98XC") 93 err, lon2, lat2 = Hamlib.locator2longlat("DM33DX") 94 err, loc1 = Hamlib.longlat2locator(lon1, lat1, 3) 95 err, loc2 = Hamlib.longlat2locator(lon2, lat2, 3) 96 97 print "Loc1:\t\tIN98XC -> %9.4f, %9.4f -> %s" % (lon1, lat1, loc1) 98 print "Loc2:\t\tDM33DX -> %9.4f, %9.4f -> %s" % (lon2, lat2, loc2) 99 100 err, dist, az = Hamlib.qrb(lon1, lat1, lon2, lat2) 101 longpath = Hamlib.distance_long_path(dist) 102 103 print "Distance:\t%.3f km, azimuth %.2f, long path:\t%.3f km" \ 104 % (dist, az, longpath) 105 106 # dec2dms expects values from 180 to -180 107 # sw is 1 when deg is negative (west or south) as 0 cannot be signed 108 err, deg1, mins1, sec1, sw1 = Hamlib.dec2dms(lon1) 109 err, deg2, mins2, sec2, sw2 = Hamlib.dec2dms(lat1) 110 111 lon3 = Hamlib.dms2dec(deg1, mins1, sec1, sw1) 112 lat3 = Hamlib.dms2dec(deg2, mins2, sec2, sw2) 113 114 print 'Longitude:\t%4.4f, %4d° %2d\' %2d" %1s\trecoded: %9.4f' \ 115 % (lon1, deg1, mins1, sec1, ('W' if sw1 else 'E'), lon3) 116 117 print 'Latitude:\t%4.4f, %4d° %2d\' %2d" %1s\trecoded: %9.4f' \ 118 % (lat1, deg2, mins2, sec2, ('S' if sw2 else 'N'), lat3) 119 120 121if __name__ == '__main__': 122 StartUp([0,1]["-v" in sys.argv]) 123