
On Sat, Feb 23, 2013 at 7:03 PM, Dan Smith dsmith@danplanet.com wrote:
I want to create a selection for the UV-5R that depending the the users' selection (either tick like Boolean, or a two choice list), one or the other of the following is written.
"\x0E\x0F\x10\x11\x15" "\x00\x00\x00\x00\x00"
You mean a RadioSetting? Maybe something like this untested snipped:
def apply_foobar(setting, obj): if setting.value == True: obj.foobar = "\x0E\x0F\x10\x11\x15" else: obj.foobar = "\x00\x00\x00\x00\x00"
rs = RadioSetting("foobar", "Enable Foobar", RadioSettingBoolean(False)) rs.set_apply_callback(apply_foobar, self._memobj)
Thanks Dan. That is what I am looking for. I don't have it working yet,
though.
Here is my structure...
#seekto 0x0F08; struct { u8 foobar[5]; } test;
Here is my RadioSetting() code...
def apply_txinhibit(setting, obj): if setting.value == True: obj.foobar = "\x00\x00\x00\x00\x00" else: obj.foobar = "\x0E\x0F\x10\x11\x15"
rs = RadioSetting("test.foobar", "TX Inhibit", RadioSettingValueBoolean(False)) rs.set_apply_callback(apply_txinhibit, self._memobj.test) other.append(rs)
Here is my error...
Setting enable = True Using apply callback test.foobar Exception running RadioJob: invalid literal for int() with base 10: '\x0e' -- Exception: -- Traceback (most recent call last): File "C:\Users\Root\chirp.hg\chirpui\common.py", line 97, in _execute result = func(*self.args, **self.kwargs) File "C:\Users\Root\chirp.hg\chirp\uv5r.py", line 1160, in set_settings self.set_settings(element) File "C:\Users\Root\chirp.hg\chirp\uv5r.py", line 1181, in set_settings element.run_apply_callback() File "C:\Users\Root\chirp.hg\chirp\settings.py", line 288, in run_apply_callba ck return self._apply_callback() File "C:\Users\Root\chirp.hg\chirp\settings.py", line 282, in <lambda> self._apply_callback = lambda: callback(self, *args) File "C:\Users\Root\chirp.hg\chirp\uv5r.py", line 916, in apply_txinhibit obj.foobar = "\x0E\x0F\x10\x11\x15" File "C:\Users\Root\chirp.hg\chirp\bitwise.py", line 591, in __setattr__ self.__dict__["_generators"][name].set_value(value) File "C:\Users\Root\chirp.hg\chirp\bitwise.py", line 238, in set_value self.__items[i].set_value(value[i]) File "C:\Users\Root\chirp.hg\chirp\bitwise.py", line 381, in set_value self._data[self._offset] = (int(value) & 0xFF) ValueError: invalid literal for int() with base 10: '\x0e' ------ Job Args: (<chirp.settings.RadioSettingGroup object at 0x03B1A490>,) Job KWArgs: {} Job Called from: File "chirpw", line 144, in <module> gtk.main() File "C:\Users\Root\chirp.hg\chirpui\settingsedit.py", line 119, in _save_sett ing self._do_save_setting(widget, value) File "C:\Users\Root\chirp.hg\chirpui\settingsedit.py", line 115, in _do_save_s etting self._save_settings() File "C:\Users\Root\chirp.hg\chirpui\settingsedit.py", line 71, in _save_setti ngs self._top_setting_group)
I think I will sleep on it and study it some more in the morning.
Jim