Exemple #1
0
    def range_handler(self, channel, data):
        msg = acomms_range_t.decode(data)
        if msg.type != acomms_range_t.ONE_WAY_SYNCHRONOUS:
            return

        self.osps[:] = [o for o in self.osps if o.utime == msg.utime]
        if not self.osps: return

        ospid = len(self.osps) - 1
        while self.osps:
            osp = self.osps.pop()
            org_no, new_no = osp.org_tol_no, osp.new_tol_no

            if new_no <= self.tol_no or org_no < self.org_no:
                #print ospid, 'already have this info'
                pass
            elif org_no > self.tol_no and self.tol_no != 0:
                print 'uh oh!'
            elif org_no == self.org_no or org_no == self.tol_no or self.tol_no == 0:
                print ospid, 'adding new osp'
                self.org_no = org_no
                self.tol_no = new_no
                self.osp_dict[ospid] += 1
            ospid -= 1

        del self.osps[:]
Exemple #2
0
import lcm
from perls.lcmtypes.senlcm import acomms_data_type_t
from perls.lcmtypes.senlcm import acomms_tdma_sync_t
from perls.lcmtypes.senlcm import acomms_range_t

if __name__ == '__main__':
    logs = lcm.EventLog(sys.argv[1])
    logc = lcm.EventLog(sys.argv[2])

    sync = [
        acomms_tdma_sync_t.decode(e.data) for e in logs
        if e.channel == 'IVER31_ACOMMS_SYNC'
    ]
    owtts = [
        acomms_range_t.decode(e.data) for e in logs
        if e.channel == 'IVER31_ACOMMS_RANGE'
    ]
    owttc = [
        acomms_range_t.decode(e.data) for e in logc
        if e.channel == 'IVER28_ACOMMS_RANGE'
    ]

    tos = np.asarray([
        o.utime for o in owtts if o.type == acomms_range_t.ONE_WAY_SYNCHRONOUS
    ])
    cms = np.asarray([
        o.receiver_clk_mode for o in owtts
        if o.type == acomms_range_t.ONE_WAY_SYNCHRONOUS
    ])
Exemple #3
0
import sys

import numpy as np
import matplotlib.pyplot as plt

import lcm
from perls.lcmtypes.senlcm import acomms_data_type_t
from perls.lcmtypes.senlcm import acomms_tdma_sync_t
from perls.lcmtypes.senlcm import acomms_range_t

if __name__ == '__main__':
    logs = lcm.EventLog (sys.argv[1])
    logc = lcm.EventLog (sys.argv[2])

    sync = [acomms_tdma_sync_t.decode (e.data) for e in logs if e.channel=='IVER31_ACOMMS_SYNC']
    owtts = [acomms_range_t.decode (e.data) for e in logs if e.channel=='IVER31_ACOMMS_RANGE']
    owttc = [acomms_range_t.decode (e.data) for e in logc if e.channel=='IVER28_ACOMMS_RANGE']

    tos = np.asarray ([o.utime for o in owtts if o.type==acomms_range_t.ONE_WAY_SYNCHRONOUS])
    cms = np.asarray ([o.receiver_clk_mode for o in owtts if o.type==acomms_range_t.ONE_WAY_SYNCHRONOUS])

    toc = np.asarray ([o.utime for o in owttc if o.type==acomms_range_t.ONE_WAY_SYNCHRONOUS])
    cmc = np.asarray ([o.receiver_clk_mode for o in owttc if o.type==acomms_range_t.ONE_WAY_SYNCHRONOUS])

    ts = np.asarray ([s.utime for s in sync if s.dt.type==acomms_data_type_t.DATA])
    to = np.asarray ([o.utime for o in owttc if o.src==3])

    plt.figure ()
    plt.plot ((ts-ts[0])*1e-6, np.ones (len (ts)), 'bo')
    plt.plot ((to-ts[0])*1e-6, np.ones (len (to)), 'r.')
Exemple #4
0
    try:
        log = lcm.EventLog(sys.argv[1])
    except Exception as err:
        print "error opening lcmlog: %s" % err

    param = param_from_log(log)
    if not param:
        print "Could not find param file"
        sys.exit(0)

    # data channels
    vehicle = param.get_str("vehicle.name")

    gpsd_chan = param.get_str("sensors.gpsd3-client.gsd.channel")
    range_chan = param.get_str("sensors.modem.range_channel")
    sync_chan = param.get_str("sensors.modem.sync_channel")

    if vehicle != "topside":
        state_chan = param.get_str("vehicle.state_channel")
        state = plot_state(state_chan, log)

    acomms_ranges = [acomms_range_t.decode(e.data) for e in log if e.channel == range_chan]
    nlbl = param.get_num_subkeys("lbl.network")
    plot_lbl_ranges(nlbl, acomms_ranges)
    plot_owtt_ranges(acomms_ranges)

    plt.show()

    sys.exit(0)