[chirp_devel] Inverted Boolean Help Needed

Jens J.
Mon Jan 20 19:04:03 PST 2014


Not that this fixes your specific problem, but I have run into a few different settings which have this sort of "inverted" logic.
To keep things simple in the rest of the code, I just name the setting appropriately so that the logic in the rest of the program need not be inverted, e.g., name your setting foo_disable if value of True/1 disables foo, and foo_enable if True/1 enables foo.

I think it makes it easier to read.
"beep_tone" is a boolean? 
If I'm reading that "beep_tone_disabled" seems like it would be a much more meaningful name for the setting field.


________________________________
 From: Jim Unroe <rock.unroe at gmail.com>
To: chirp-devel <chirp_devel at intrepid.danplanet.com> 
Sent: Monday, January 20, 2014 8:53 PM
Subject: [chirp_devel] Inverted Boolean Help Needed
 


The UV-B5/B6 has a ON/OFF setting that is inverted. 0 = ON and 1 = OFF.

I was using a list to get around it. Then I saw in the h777.py driver there were a pair of inverted settings. It thought I replicated this for my needs but apparently I didn't do enough testing and what I have is broken. This is in the uvb5.py driver.

Here is the setting...

        rs = RadioSetting("beep_tone", "Beep Prompt",
                          RadioSettingValueBoolean(not _settings.beep_tone))
        basic.append(rs)

And here is the rest...

                    if element.has_apply_callback():
                        print "Using apply callback"
                        element.run_apply_callback()
                    elif setting == "beep_tone":
                        print "Setting %s = %s" % (setting, not (element.value))
                        setattr(obj, setting, not (element.value))
                    else:
                        print "Setting %s = %s" % (setting, element.value)
                        setattr(obj, setting, element.value)
                except Exception, e:
                    print element.get_name()
                    raise

No matter if the setting is enabled or disabled, FALSE is always returned so the Beep Prompt is always enabled.

Can somebody spot what I am doing wrong?

Thanks,
Jim

_______________________________________________
chirp_devel mailing list
chirp_devel at intrepid.danplanet.com
http://intrepid.danplanet.com/mailman/listinfo/chirp_devel
Developer docs: http://chirp.danplanet.com/projects/chirp/wiki/Developers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://intrepid.danplanet.com/pipermail/chirp_devel/attachments/20140120/cd14ad78/attachment-0001.html 


More information about the chirp_devel mailing list