Example #1
0
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
Example #2
0
 def _put_msg(path_list, buf, offset=None):
     tlv_list = path2tlvs(path_list)
     if (offset):
         tlv_list.append(TagTlv(tlv_types.OFFSET, offset))
     tname = TagName(tlv_list)
     msg = TagPut(tname)
     msg.payload = bytearray(buf[0:msg.payload_avail()])
     return (msg, len(msg.payload))
Example #3
0
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
Example #4
0
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
Example #5
0
 def _close_msg(path_list):
     im_name = TagName(path2tlvs(path_list))
     msg = TagPut(im_name, pl=[TagTlv(tlv_types.EOF)])
     return msg
Example #6
0
 def _file_put_msg(tname, buf, offset):
     if (offset):
         tname.append(TagTlv(tlv_types.OFFSET, offset))
     msg = TagPut(tname, pl=bytearray(buf))
     return msg
Example #7
0
 def _truncate_msg(tname, offset):
     msg = TagPut(tname,
                  pl=TagTlvList([(tlv_types.INTEGER, offset)]))
     return msg
Example #8
0
 def _set_version_msg(path_list):
     tlv_list = path2tlvs(path_list[:-1])
     tlv_list.append(TagTlv(tlv_types.VERSION, path_list[-1].split('.')))
     req_obj = TagPut(TagName(tlv_list))
     return req_obj
Example #9
0
 def _close_msg(path_list):
     im_name = TagName(path2tlvs(path_list))
     im_name.append(TagTlv(tlv_types.OFFSET, offset))
     msg = TagPut(im_name, pl=TagTlvList([TagTlv(tlv_types.EOF)]))
     return msg