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