/
luatest.lua
executable file
·135 lines (96 loc) · 5.21 KB
/
luatest.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/usr/bin/lua
Hamlib = require("Hamliblua")
-- you can see the Hamlib properties:
-- for key,value in pairs(Hamlib) do print(key,value) end
function version()
ver = string.sub(_VERSION,4)
-- should only get one match to this
for ver2 in string.gmatch(ver,"%d.%d") do
ver = tonumber(ver2)
end
return ver
end
function doStartup()
print(string.format("%s test, %s\n", _VERSION, Hamlib.hamlib_version))
-- Hamlib.rig_set_debug (Hamlib.RIG_DEBUG_TRACE)
Hamlib.rig_set_debug (Hamlib.RIG_DEBUG_NONE)
-- Init RIG_MODEL_DUMMY
my_rig = Hamlib.Rig (Hamlib.RIG_MODEL_DUMMY)
-- you can see the Rig properties:
-- for key,value in pairs(my_rig) do print(key,value) end
my_rig:set_conf("rig_pathname", "/dev/Rig")
my_rig:set_conf("retry", "5")
my_rig:open()
tpath = my_rig:get_conf("rig_pathname")
retry = my_rig:get_conf("retry")
print (string.format("status(str):\t\t%s", Hamlib.rigerror(my_rig.error_status)))
print (string.format("get_conf:\t\tpath = %s, retry = %s", tpath, retry))
my_rig:set_freq(Hamlib.RIG_VFO_B, 5700000000)
my_rig:set_vfo(Hamlib.RIG_VFO_B)
print(string.format("freq:\t\t\t%d", my_rig:get_freq()))
my_rig:set_freq(Hamlib.RIG_VFO_A, 145550000)
my_rig:set_vfo(Hamlib.RIG_VFO_A)
mode, width = my_rig:get_mode()
print(string.format("mode:\t\t\t%s\nbandwidth:\t\t%s", Hamlib.rig_strrmode(mode), width))
my_rig:set_mode(Hamlib.RIG_MODE_CW)
mode, width = my_rig:get_mode()
print(string.format("mode:\t\t\t%s\nbandwidth:\t\t%d", Hamlib.rig_strrmode(mode), width))
print(string.format("Backend copyright:\t%s",my_rig.caps.copyright))
print(string.format("Model:\t\t\t%s", my_rig.caps.model_name))
print(string.format("Manufacturer:\t\t%s", my_rig.caps.mfg_name))
print(string.format("Backend version:\t%s", my_rig.caps.version))
print(string.format("Backend license:\t%s", my_rig.caps.copyright))
print(string.format("Rig info:\t\t%s", my_rig:get_info()))
my_rig:set_level("VOXDELAY", 1)
print(string.format("status:\t\t\t%s - %s", my_rig.error_status, Hamlib.rigerror(my_rig.error_status)))
print(string.format("VOX delay:\t\t%d", my_rig:get_level_i("VOXDELAY")))
my_rig:set_level(Hamlib.RIG_LEVEL_VOXDELAY, 5)
print(string.format("status:\t\t\t%s - %s", my_rig.error_status, Hamlib.rigerror(my_rig.error_status)))
-- see the func name (get_level_i) and format (%d)
print(string.format("VOX delay:\t\t%d", my_rig:get_level_i(Hamlib.RIG_LEVEL_VOXDELAY)))
af = 12.34
print(string.format("Setting AF to %f...", af))
my_rig:set_level(Hamlib.RIG_LEVEL_AF, af)
print(string.format("status:\t\t\t%s - %s", my_rig.error_status, Hamlib.rigerror(my_rig.error_status)))
-- see the different of func name and format related to RIG_LEVEL_VOXDELAY!
print(string.format("AF level:\t\t%f", my_rig:get_level_f("AF")))
print(string.format("strength:\t\t%d", my_rig:get_level_i(Hamlib.RIG_LEVEL_STRENGTH)))
print(string.format("status:\t\t\t%s", my_rig.error_status))
print(string.format("status(str):\t\t%s", Hamlib.rigerror(my_rig.error_status)))
chan = Hamlib.channel(Hamlib.RIG_VFO_B)
my_rig:get_channel(chan,1)
print(string.format("get_channel status:\t%d", my_rig.error_status))
print(string.format("VFO:\t\t\t%s, %s", Hamlib.rig_strvfo(chan.vfo), chan.freq))
print(string.format("Attenuators:\t\t%s", table.concat(my_rig.caps.attenuator, ", ")))
print("\nSending Morse, '73'")
my_rig:send_morse(Hamlib.RIG_VFO_A, "73")
my_rig:close ()
print("\nSome static functions:")
err, lon1, lat1 = Hamlib.locator2longlat("IN98XC")
err, lon2, lat2 = Hamlib.locator2longlat("DM33DX")
err, loc1 = Hamlib.longlat2locator(lon1, lat1, 3)
err, loc2 = Hamlib.longlat2locator(lon2, lat2, 3)
print(string.format("Loc1:\t\tIN98XC -> %9.4f, %9.4f -> %s", lon1, lat1, loc1))
print(string.format("Loc2:\t\tDM33DX -> %9.4f, %9.4f -> %s", lon2, lat2, loc2))
err, dist, az = Hamlib.qrb(lon1, lat1, lon2, lat2)
longpath = Hamlib.distance_long_path(dist)
print(string.format("Distance:\t%.3f km, azimuth %.2f, long path:\t%.3f km", dist, az, longpath))
-- dec2dms expects values from 180 to -180
-- sw is 1 when deg is negative (west or south) as 0 cannot be signed
err, deg1, mins1, sec1, sw1 = Hamlib.dec2dms(lon1)
err, deg2, mins2, sec2, sw2 = Hamlib.dec2dms(lat1)
lon3 = Hamlib.dms2dec(deg1, mins1, sec1, sw1)
lat3 = Hamlib.dms2dec(deg2, mins2, sec2, sw2)
if sw1 > 0 then D = 'W' else D = 'E' end
print(string.format("Longitude:\t%4.4f, %4.0f° %.0f' %2.0f\" %1s\trecoded: %9.4f", lon1, deg1, mins1, sec1, D, lon3))
if sw2 > 0 then D = 'S' else D = 'N' end
print(string.format("Latitude:\t%4.4f, %4.0f° %.0f' %2.0f\" %1s\trecoded: %9.4f", lat1, deg2, mins2, sec2, D, lat3))
if (version() >= 5.4) then
-- older version may not handle 64-bit values
-- not sure when this was fixed...might have been 5.3 somehwere
print(string.format("The next two lines should show 0x8000000000000000"));
print(string.format("RIG_MODE_TESTS_MAX: 0x%08x", Hamlib.RIG_MODE_TESTS_MAX));
print(string.format("RIG_FUNC_BIT63: 0x%08x", Hamlib.RIG_FUNC_BIT63));
end
end
doStartup()