Hi Jim
And I'm not sure if the "_" prior to the "(" is intentional or a typo.
It's intentional: it invokes the translation funtion for the string, IMHO all strings visible to users should be passed to _
_msg = _("Tx freq %s is out of supported range") % chirp_common.format_freq(freq)
The one thing I noticed, and I may be overlooking something, is that when invoking " def validate_memory(self, mem):" locally, it seems to replace the "common" one. That's why I had code to check the Rx frequency as well. This seems to let me enter any Rx frequency.
That's strange: in your validate_memory you call chirp_common.CloneModeRadio.validate_memory which should check for the rx freq to be withing ranges.
But there's a bug in the code I sent: else: msgs.append(chirp_common.ValidationError(" ")) return msgs
should be elif mem.duplex != "": msgs.append(chirp_common.ValidationError( _("Invalid duplex %s") % mem.duplex)) return msgs
73 de IZ3GME Marco