def __init__ (self, log, osp_chan, rec_chan): print '{Acoustic_node} parsing OSP events...' #self.osps = [acomms_osp_t.decode (e.data) for e in log if osp_chan in e.channel] osps = [acomms_osp_t.decode (e.data) for e in log if osp_chan in e.channel] print '{Acoustic_node} found %d OSPs' % (len (osps)) print '{Acoustic_node} parsing OSP recovery events...' #self.recs = [acomms_osp_recovery_t.decode (e.data) for e in log if rec_chan in e.channel] recs = [acomms_osp_recovery_t.decode (e.data) for e in log if rec_chan in e.channel] print '{Acoustic_node} found %d recoveries' % (len (recs)) t_osp = [o.utime for o in osps] t_rec = [o.utime for o in recs] self.t_osp = np.asarray (t_osp) self.t_rec = np.asarray (t_rec) utime = t_osp+t_rec utime.sort () self.utime = np.asarray (utime)
def __init__(self, log, osp_chan, rec_chan): print '{Acoustic_node} parsing OSP events...' #self.osps = [acomms_osp_t.decode (e.data) for e in log if osp_chan in e.channel] osps = [ acomms_osp_t.decode(e.data) for e in log if osp_chan in e.channel ] print '{Acoustic_node} found %d OSPs' % (len(osps)) print '{Acoustic_node} parsing OSP recovery events...' #self.recs = [acomms_osp_recovery_t.decode (e.data) for e in log if rec_chan in e.channel] recs = [ acomms_osp_recovery_t.decode(e.data) for e in log if rec_chan in e.channel ] print '{Acoustic_node} found %d recoveries' % (len(recs)) t_osp = [o.utime for o in osps] t_rec = [o.utime for o in recs] self.t_osp = np.asarray(t_osp) self.t_rec = np.asarray(t_rec) utime = t_osp + t_rec utime.sort() self.utime = np.asarray(utime)
import lcm from perls.lcmtypes.perllcm import iver_osm_state_t from perls.lcmtypes.perllcm import iver_osm_vis_t from perls.lcmtypes.senlcm import acomms_osp_t if __name__ == '__main__': if len (sys.argv) < 2: print 'usage: %s <lcmlog-server>' % sys.argv[0] sys.exit (0) ilog = lcm.EventLog (sys.argv[1]) olog = lcm.EventLog ('lcmlog-server-cooked', 'w', overwrite=True) DTOL = 2 for e in ilog: if e.channel=='IVER31_SERVER_OSP': m = acomms_osp_t.decode (e.data) m.org_tol_no += DTOL m.new_tol_no += DTOL olog.write_event (e.timestamp, e.channel, m.encode ()) continue elif e.channel=='SERVER_OSM_VIS': m = iver_osm_vis_t.decode (e.data) for p in m.poses: p.index += DTOL olog.write_event (e.timestamp, e.channel, m.encode ()) continue olog.write_event (e.timestamp, e.channel, e.data) sys.exit (0)
import lcm from perls.lcmtypes.senlcm import acomms_data_t from perls.lcmtypes.senlcm import acomms_osp_t from perls.lcmtypes.senlcm import acomms_range_t if __name__ == '__main__': if len(sys.argv) < 3: print 'usage: %s <lcmlog-orig> <lcmlog-server>' % sys.argv[0] sys.exit(0) logc = lcm.EventLog(sys.argv[1]) logs = lcm.EventLog(sys.argv[2]) osp_events = [e for e in logs if e.channel == 'IVER28_SERVER_OSP'] osp = [acomms_osp_t.decode(e.data) for e in osp_events] osp_utime = np.asarray([o.utime for o in osp]) print 'found %d osps' % len(osp_utime) olog = lcm.EventLog('lcmlog-multiple-server', 'w', overwrite=True) for e in logc: if e.channel == 'TOPSIDE_ACOMMS_DATA': m = acomms_data_t.decode(e.data) print 'data', m.utime, m.src, m.frame_size if m.src == 2 and m.frame_size == 3: ii = np.where((m.utime - osp_utime > 0) & (m.utime - osp_utime < 5e6))[0] #print (m.utime-osp_utime[ii])*1e-6 #print [osp[i].new_tol_no for i in ii]
import numpy as np import lcm from perls.lcmtypes.senlcm import acomms_osp_t if __name__ == '__main__': if len (sys.argv) < 3: print 'usage: %s <lcmlog-orig> <lcmlog-server>' % sys.argv[0] sys.exit (0) logc = lcm.EventLog (sys.argv[1]) logs = lcm.EventLog (sys.argv[2]) osp_events = [e for e in logs if e.channel=='IVER31_SERVER_OSP'] osp = [acomms_osp_t.decode (e.data) for e in osp_events] osp_utime = np.asarray ([o.utime for o in osp]) print 'found %d osps' % len (osp_utime) olog = lcm.EventLog ('lcmlog-replaced-osp', 'w', overwrite=True) for e in logc: if e.channel=='IVER28_CLIENT_OSP': m = acomms_osp_t.decode (e.data) ii = np.where ((m.utime-osp_utime>0) & (m.utime-osp_utime < 5e6))[0] #ii = np.where ((m.utime-osp_utime>-12e6) & (m.utime-osp_utime < 12e6))[0] #print (m.utime-osp_utime[ii])*1e-6 #print [osp[i].new_tol_no for i in ii] for i in ii: if m.new_tol_no==osp[i].new_tol_no: print 'replacing osp event (%d,%d) (%d,%d)' % (m.org_tol_no, m.new_tol_no, osp[i].org_tol_no, osp[i].new_tol_no)
def osp_handler(self, channel, data): osp = acomms_osp_t.decode(data) self.osps.append(osp)
import lcm from perls.lcmtypes.perllcm import iver_osm_state_t from perls.lcmtypes.perllcm import iver_osm_vis_t from perls.lcmtypes.senlcm import acomms_osp_t if __name__ == '__main__': if len(sys.argv) < 2: print 'usage: %s <lcmlog-server>' % sys.argv[0] sys.exit(0) ilog = lcm.EventLog(sys.argv[1]) olog = lcm.EventLog('lcmlog-server-cooked', 'w', overwrite=True) DTOL = 2 for e in ilog: if e.channel == 'IVER31_SERVER_OSP': m = acomms_osp_t.decode(e.data) m.org_tol_no += DTOL m.new_tol_no += DTOL olog.write_event(e.timestamp, e.channel, m.encode()) continue elif e.channel == 'SERVER_OSM_VIS': m = iver_osm_vis_t.decode(e.data) for p in m.poses: p.index += DTOL olog.write_event(e.timestamp, e.channel, m.encode()) continue olog.write_event(e.timestamp, e.channel, e.data) sys.exit(0)