Ejemplo n.º 1
0
 def time_reference(self, timestamp_ms):
     self.pbstx.send(
         wrap_msg(
             msgs.TimeReference(engine_id=self.engine_id,
                                timestamp_ms=timestamp_ms)))
Ejemplo n.º 2
0
    def param_request(self, param_id=None, param_index=None):
        pr = msgs.ParamRequest(engine_id=self.engine_id)
        if param_id: pr.param_id = param_id
        if param_index: pr.param_index = param_index

        self.pbstx.send(wrap_msg(pr))
Ejemplo n.º 3
0
def main():
    def autoint(s):
        return int(s, 0)

    parser = argparse.ArgumentParser()
    parser.add_argument("device", help="com port device file")
    parser.add_argument("baudrate", help="com port baudrate", type=int, nargs='?', default=57600)
    parser.add_argument("-i", "--id", help="engine id", type=int, default=1)
    parser.add_argument("-t", "--type", help="memory type [0:RAM, 1:SST25]", type=int, default=0)
    parser.add_argument("-a", "--address", help="address", type=autoint, default=0)
    parser.add_argument("-s", "--size", help="size", type=autoint, default=0)
    parser.add_argument("-v", "--verbose", help="verbose io print", action='store_true')
    parser.add_argument("-l", "--log-db", help="logging to sql db")
    parser.add_argument("-n", "--log-name", help="log name")

    args = parser.parse_args()

    pbstx = PBStx(args.device, args.baudrate)
    pbstx = wrap_logger(pbstx, args.log_db, args.log_name, "%s @ %s" % (args.device, args.baudrate))

    pbstx.send(make_ParamSet(args.id, 'STATUS_PERIOD', 5000))
    pbstx.send(make_ParamSet(args.id, 'DEBUG_MEMDUMP', True))

    stream_id = random.randint(0, 0xffffffff)

    dump_request = wrap_msg(msgs.MemoryDumpRequest(
        engine_id=args.id,
        type=args.type,
        stream_id=stream_id,
        address=args.address,
        size=args.size))

    print('=' * 40, file=sys.stderr)
    print(dump_request, file=sys.stderr)
    print('=' * 40, file=sys.stderr)

    pbstx.send(dump_request)

    buf = bytearray()
    while len(buf) < args.size:
        try:
            m = pbstx.receive()
            if m.HasField('memory_dump_page'):
                page = m.memory_dump_page
                if page.stream_id != stream_id:
                    print("wrong stream_id", file=sys.stderr)
                    continue

                idx = page.address - args.address
                if len(buf) < idx:
                    print('page missing, lost %d bytes' % (idx - len(buf)), file=sys.stderr)
                    buf.zfill(idx)

                buf.extend(page.page)

                if args.verbose:
                    print(m, file=sys.stderr)

            elif m.HasField('status_text') or args.verbose:
                print(m, file=sys.stderr)
        except ReceiveError as ex:
            print(repr(ex), file=sys.stderr)

    sys.stdout.write(buf)
Ejemplo n.º 4
0
def main():
    def autoint(s):
        return int(s, 0)

    parser = argparse.ArgumentParser()
    parser.add_argument("device", help="com port device file")
    parser.add_argument("baudrate",
                        help="com port baudrate",
                        type=int,
                        nargs='?',
                        default=57600)
    parser.add_argument("-i", "--id", help="engine id", type=int, default=1)
    parser.add_argument("-t",
                        "--type",
                        help="memory type [0:RAM, 1:SST25]",
                        type=int,
                        default=0)
    parser.add_argument("-a",
                        "--address",
                        help="address",
                        type=autoint,
                        default=0)
    parser.add_argument("-s", "--size", help="size", type=autoint, default=0)
    parser.add_argument("-v",
                        "--verbose",
                        help="verbose io print",
                        action='store_true')
    parser.add_argument("-l", "--log-db", help="logging to sql db")
    parser.add_argument("-n", "--log-name", help="log name")

    args = parser.parse_args()

    pbstx = PBStx(args.device, args.baudrate)
    pbstx = wrap_logger(pbstx, args.log_db, args.log_name,
                        "%s @ %s" % (args.device, args.baudrate))

    pbstx.send(make_ParamSet(args.id, 'STATUS_PERIOD', 5000))
    pbstx.send(make_ParamSet(args.id, 'DEBUG_MEMDUMP', True))

    stream_id = random.randint(0, 0xffffffff)

    dump_request = wrap_msg(
        msgs.MemoryDumpRequest(engine_id=args.id,
                               type=args.type,
                               stream_id=stream_id,
                               address=args.address,
                               size=args.size))

    print('=' * 40, file=sys.stderr)
    print(dump_request, file=sys.stderr)
    print('=' * 40, file=sys.stderr)

    pbstx.send(dump_request)

    buf = bytearray()
    while len(buf) < args.size:
        try:
            m = pbstx.receive()
            if m.HasField('memory_dump_page'):
                page = m.memory_dump_page
                if page.stream_id != stream_id:
                    print("wrong stream_id", file=sys.stderr)
                    continue

                idx = page.address - args.address
                if len(buf) < idx:
                    print('page missing, lost %d bytes' % (idx - len(buf)),
                          file=sys.stderr)
                    buf.zfill(idx)

                buf.extend(page.page)

                if args.verbose:
                    print(m, file=sys.stderr)

            elif m.HasField('status_text') or args.verbose:
                print(m, file=sys.stderr)
        except ReceiveError as ex:
            print(repr(ex), file=sys.stderr)

    sys.stdout.write(buf)
Ejemplo n.º 5
0
 def time_reference(self, timestamp_ms):
     self.pbstx.send(wrap_msg(msgs.TimeReference(engine_id=self.engine_id,
                                                 timestamp_ms=timestamp_ms)))
Ejemplo n.º 6
0
    def param_request(self, param_id=None, param_index=None):
        pr = msgs.ParamRequest(engine_id=self.engine_id)
        if param_id:    pr.param_id = param_id
        if param_index: pr.param_index = param_index

        self.pbstx.send(wrap_msg(pr))