From e8d6ecc0fe024dd93ff991030ba4a5568a45d0d2 Mon Sep 17 00:00:00 2001 From: pux Date: Sun, 21 Mar 2021 20:04:18 +0100 Subject: data struct instead of 4 return vars for calc() --- calctenna.py | 45 +++++++++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/calctenna.py b/calctenna.py index 34cc2b8..83f6ff3 100755 --- a/calctenna.py +++ b/calctenna.py @@ -11,8 +11,19 @@ import sys class Tests(unittest.TestCase): def test_calc(self): - self.assertEqual(calc(100e6, 0.951), - (2.99792458, 1.49896229, 0.749481145, 0.7127565688949999)) + antenna_data = AntennaData(100e6, 0.951) + antenna_data = calc(antenna_data) + self.assertEqual(antenna_data.dipole_leg_length, 0.7127565688949999) + +class AntennaData(): + def __init__(self, frequency, velocity_factor): + self.frequency = frequency + self.velocity_factor = velocity_factor + # fill me + self.wavelength = 0 + self.wavelength_2 = 0 + self.wavelength_4 = 0 + self.dipole_leg_length = 0 def run_argparse(): argparser = argparse.ArgumentParser() @@ -72,13 +83,15 @@ def check_input(frequency, velocity_factor): return True -def calc(frequency, velocity_factor): +# fill struct +def calc(antenna_data): c = 299792458 # speed of light - wavelength = float(c) / float(frequency) - wavelength_2 = wavelength/2 - wavelength_4 = wavelength/4 - dipole_leg_length = wavelength/4 * float(velocity_factor) - return (wavelength, wavelength_2, wavelength_4, dipole_leg_length) + antenna_data.wavelength = float(c) / float(antenna_data.frequency) + antenna_data.wavelength_2 = antenna_data.wavelength/2 + antenna_data.wavelength_4 = antenna_data.wavelength/4 + antenna_data.dipole_leg_length = antenna_data.wavelength_4 \ + * float(antenna_data.velocity_factor) + return antenna_data if __name__ == '__main__': args = run_argparse() @@ -90,14 +103,14 @@ if __name__ == '__main__': if not check_input(args.frequency, args.velocity_factor): exit() - (wavelength, wavelength_2, wavelength_4, dipole_leg_length) = \ - calc(args.frequency, args.velocity_factor) + antenna_data = AntennaData(args.frequency, args.velocity_factor) + antenna_data = calc(antenna_data) if not args.quiet: - print("Desired Frequency: " + str(args.frequency) + " Hz") - print("Wavelength: %.3f m" % wavelength) - print("Wavelength / 2: %.3f m" % wavelength_2) - print("Wavelength / 4: %.3f m" % wavelength_4) - print("Velocity factor: " + str(args.velocity_factor)) + print("Desired Frequency: " + str(antenna_data.frequency) + " Hz") + print("Wavelength: %.3f m" % antenna_data.wavelength) + print("Wavelength / 2: %.3f m" % antenna_data.wavelength_2) + print("Wavelength / 4: %.3f m" % antenna_data.wavelength_4) + print("Velocity factor: " + str(antenna_data.velocity_factor)) print("-> Dipole leg length (lambda/4): ", end='') - print("%.3f m" % dipole_leg_length) + print("%.3f m" % antenna_data.dipole_leg_length) -- cgit v1.2.2-1-g5e49