Skip to content
Snippets Groups Projects
Select Git revision
  • 036e82874a775df8a80c09f06e6b31804b49612e
  • release default protected
  • workshop
3 results

dataplotter.py

Blame
  • Marko Mecina's avatar
    Marko Mecina authored
    7e302caf
    History
    dataplotter.py 1.51 KiB
    #!/usr/bin/env python3
    
    import argparse
    import configparser
    import time
    
    import gi
    
    gi.require_version('Gtk', '3.0')
    from gi.repository import Gtk
    import pus_datapool
    import packets
    import poolview_sql
    
    parser = argparse.ArgumentParser(description='Plot HK data from saved TM pool')
    parser.add_argument('pool_file', metavar='FILENAME', type=str)
    parser.add_argument('parameters', metavar='HK', type=str, nargs='+')
    parser.add_argument('--export', metavar='FILE', help='Save data to file')
    parser.add_argument('--noplot', help='Only extract and save HK data to file', const=True, nargs='?')
    args = parser.parse_args()
    
    pool_file = args.pool_file
    parameter_input = args.parameters
    parameters = {p.split(':')[0]: p.split(':')[1].split(',') for p in parameter_input}
    print('\nPlotting: ', parameters)
    cfgfile = 'egse.cfg'
    cfg = configparser.ConfigParser()
    cfg.read(cfgfile)
    cfg.source = cfgfile
    
    poolmgr = pus_datapool.PUSDatapoolManager(cfg)
    ccs = packets.CCScom(cfg, poolmgr)
    
    pv = poolview_sql.TMPoolView(cfg=cfg, ccs=ccs)
    pv.load_pool(filename=pool_file)
    
    if hasattr(pv, '_loader_thread'):
        while pv._loader_thread.isAlive():
            time.sleep(0.5)
    
    plv = poolview_sql.PlotViewer(parent=None, loaded_pool=pv.active_pool_info, cfg=cfg, poolmgr=poolmgr, ccs=ccs,
                                  parameters=parameters)
    
    if args.export:
        plv.save_plot_data(filename=args.export)
        print('\n >>> Data saved as "{}"'.format(args.export))
    
    if args.noplot is None:
        plv.connect("delete-event", Gtk.main_quit)
        plv.show_all()
        Gtk.main()