Example #1
0
        def __call__(self, parser, namespace, values, option_string=None):
            setattr(namespace, self.dest, values)

            if namespace.tcxo_type == "poly":
                coeffs = []
                hasHighOrder = False

                srcA = [
                    namespace.tcxo_a3, namespace.tcxo_a2, namespace.tcxo_a1,
                    namespace.tcxo_a0
                ]
                for a in srcA:
                    if a is not None:
                        coeffs.append(a)
                        hasHighOrder = True
                    elif hasHighOrder:
                        coeffs.append(0.)
                tcxo = TCXOPoly(coeffs)
            elif namespace.tcxo_type == "sine":
                initial = 0.
                ampl = 0.5
                period_s = 1.
                if namespace.tcxo_a0 is not None:
                    ampl = namespace.tcxo_a0
                if namespace.tcxo_a1 is not None:
                    ampl = namespace.tcxo_a1
                if namespace.tcxo_period is not None:
                    period_s = namespace.tcxo_period

                tcxo = TCXOSine(initial, ampl, period_s)
            else:
                raise ValueError("Unsupported TCXO type")
            namespace.tcxo = tcxo