def radio_set_rtctime(radio, utctime, node=None, name=None, power=None, wait=MAX_WAIT): if not node: node = TagTlv(tlv_types.NODE_ID, -1) if not name: name = TagName([ node, TagTlv('tag'), TagTlv('sys'), TagTlv('rtc'), ]) req_obj = TagPut(name, pl=TagTlvList([TagTlv(tlv_types.UTC_TIME, utctime)])) req_msg = req_obj.build() error, payload, msg_meta = msg_exchange(radio, req_obj) rssi, sstatus, rstatus = msg_meta if (error is tlv_errors.SUCCESS): if payload: tagtime = payload2values(payload, [ tlv_types.UTC_TIME, ])[0] return tagtime, rssi, sstatus, rstatus return None, None, sstatus, rstatus
def radio_write_test(radio, test_name, buf, pos=0, node=None, name=None, power=None, wait=MAX_WAIT): if not node: node = TagTlv(tlv_types.NODE_ID, -1) if not name: name = TagName([ node, TagTlv('tag'), TagTlv('.test'), TagTlv(test_name), TagTlv('byte'), TagTlv(tlv_types.OFFSET, pos), TagTlv(tlv_types.SIZE, len(buf)), ]) req_obj = TagPut(name, pl=buf) if get_cmd_args().verbosity > 2: mylog.debug(method=inspect.stack()[0][3], lineno=sys._getframe().f_lineno, name=req_obj.name, data=req_obj.payload.__repr__()) req_msg = req_obj.build() sstatus = radio_send_msg(radio, req_msg, power) rsp_msg, rssi, rstatus = radio_receive_msg(radio, MAX_RECV, wait) if rsp_msg: if get_cmd_args().verbosity > 3: mylog.debug(method=inspect.stack()[0][3], lineno=sys._getframe().f_lineno, data=rsp_msg.__repr__()) rsp_obj = TagMessage(rsp_msg) if get_cmd_args().verbosity > 4: mylog.debug(method=inspect.stack()[0][3], lineno=sys._getframe().f_lineno, data={ 'header': rsp_obj.header, 'name': rsp_obj.name, 'payload': rsp_obj.payload }) if rsp_obj.payload: if get_cmd_args().verbosity > 3: mylog.debug(method=inspect.stack()[0][3], lineno=sys._getframe().f_lineno, data=rsp_obj.payload.__repr__()) error, offset = payload2values(rsp_obj.payload, [ tlv_types.ERROR, tlv_types.OFFSET, ]) if error and error != tlv_errors.SUCCESS: return error, offset return tlv_errors.SUCCESS, pos + len(buf) return tlv_errors.EINVAL, pos
def radio_set_power(radio, tag_power, node=None, name=None, power=None, wait=MAX_WAIT): if not node: node = TagTlv(tlv_types.NODE_ID, -1) if not name: name = TagName([ node, TagTlv('tag'), TagTlv('.test'), TagTlv('tx_pwr'), ]) req_obj = TagPut(name, pl=TagTlvList([TagTlv(tlv_types.INTEGER, tag_power)])) req_msg = req_obj.build() error, payload, msg_meta = msg_exchange(radio, req_obj) rssi, sstatus, rstatus = msg_meta if (error is tlv_errors.SUCCESS): if payload: return payload[0].value(), rssi, sstatus, rstatus return None, None, sstatus, rstatus