ha! uhd.tune_request (and others, like sensor_value) python objects have a __nonzero__ method, which is inherently used for conversion to bool, if present. And guess what: they return False. Wondering where they come from.
Cheers, Marcus On 22.05.2016 18:02, Marcus Müller wrote: > Well, the python semantics, at least as I understand them, dictate > that "not objectname" is True if objectname is of NoneType, or if > objectname is actually False, or evaluates to something that is False > (i.e. 0). > > A valid object "should be". > > Checking it against the typical swigged GNU Radio objects: > > $from gnuradio import blocks, uhd > $vs = blocks_vector_sink_b() > $f = uhd.tune_request(10) > $bool(vs) > True > $bool(f) > False > > That's non-uniform behaviour, and it surprises me! > > I'll have to meditate about this. > > Best regards, > Marcus > > On 22.05.2016 17:51, Marcus D. Leech via USRP-users wrote: >> On 05/22/2016 11:46 AM, Marcus Müller via USRP-users wrote: >>> Hm, interesting. I shouldn't have thought so, but: /something's/ >>> strange, and for some reason, perfectly valid uhd.tune_request >>> objects evaluate to False in this case. >>> >>> So: since there's hardly any case that you can mis-construct a tune >>> request (any frequency that is numerical should be fine, even >>> negative numbers), I'd say: drop your "if not tx_center_freq" clause >>> and just check whether the properties of the uhd.tune_result that >>> tx.set_center_freq() return match your expectation. >>> >>> Best regards, >>> Marcus >> What are the boolean semantics of a structured data type like a >> tune_request_t ? It's not immediately clear to me that there is a >> mapping >> in boolean for such structured data types. >> >> >>> >>> On 22.05.2016 17:32, Elvis Angelaccio via USRP-users wrote: >>>> Hi, can someone explain me why `uhd.tune_request` always returns 0 in >>>> the following Python code? >>>> I'm running this on Linux with a USRP1 attached via USB. >>>> The USRP has two 900 MHz daughterboards and two antennas attached to >>>> TX/RX ports. >>>> >>>> Gnuradio version = 3.7.9.2 >>>> UHD version = 3.9.3 >>>> >>>> ### CODE Snippet #### >>>> >>>> d = uhd.find_devices(uhd.device_addr(args.address_args)) >>>> if d: >>>> print 'Available UHD devices: ' + str(d) >>>> >>>> try: >>>> uhd_type = d[0].get('type') >>>> except IndexError: >>>> print 'Fatal error. Did you connect the USRP to an USB port?' >>>> sys.exit(1) >>>> >>>> serial = d[0].get('serial') >>>> tx = uhd.usrp_sink( >>>> device_addr='serial=' + serial, >>>> stream_args=uhd.stream_args( >>>> 'fc32', >>>> channels=range(1) >>>> ) >>>> ) >>>> >>>> tx_center_freq = uhd.tune_request(freq) >>>> >>>> if not tx_center_freq: # <===== Always happening. >>>> print 'Could not set TX freq' >>>> sys.exit(1) >>>> >>>> tx.set_center_freq(tx_center_freq) >>>> ... >>>> >>>> >>>> Best regards, >>>> Elvis >>>> >>>> _______________________________________________ >>>> USRP-users mailing list >>>> usrp-us...@lists.ettus.com >>>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >>> >>> >>> >>> _______________________________________________ >>> USRP-users mailing list >>> usrp-us...@lists.ettus.com >>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >> >> >> >> _______________________________________________ >> USRP-users mailing list >> usrp-us...@lists.ettus.com >> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio