2017-03-03 3 views
-2

ich ein Skript, das ich schrieb, dass reibungslos läuft, wenn ich es normal laufen, ./myscript -p ~ -n 1Der richtige Einsatz von Hintergrund und auf Linux Terminal

Das Skript öffnet/erstellt eine Datei und schreibt Daten in die Datei.

Aber wenn ich versuche, es auf dem Hintergrund ./myscript -p ~ -n 1 & die Datei erstellt zu laufen, aber nicht mit den Daten geschrieben.

Was mache ich falsch?

Der Code:

#!/usr/bin/env python2 
# -*- coding: utf-8 -*- 
################################################## 
# GNU Radio Python Flow Graph 
# Title: Myscript 
# Generated: Fri Mar 3 02:32:56 2017 
################################################## 

from gnuradio import blocks 
from gnuradio import eng_notation 
from gnuradio import gr 
from gnuradio.eng_option import eng_option 
from gnuradio.filter import firdes 
from optparse import OptionParser 
import osmosdr 
import time 


class myscript(gr.top_block): 

    def __init__(self, path="myoutput", freq=480e6): 
     gr.top_block.__init__(self, "Myscript") 

     ################################################## 
     # Parameters 
     ################################################## 
     self.path = path 
     self.freq = freq 

     ################################################## 
     # Variables 
     ################################################## 
     self.samp_rate = samp_rate = 1e6 

     ################################################## 
     # Blocks 
     ################################################## 
     self.osmosdr_source_0 = osmosdr.source(args="numchan=" + str(1) + " " + "bladerf=0") 
     self.osmosdr_source_0.set_sample_rate(samp_rate) 
     self.osmosdr_source_0.set_center_freq(freq*1e6, 0) 
     self.osmosdr_source_0.set_freq_corr(0, 0) 
     self.osmosdr_source_0.set_dc_offset_mode(0, 0) 
     self.osmosdr_source_0.set_iq_balance_mode(0, 0) 
     self.osmosdr_source_0.set_gain_mode(False, 0) 
     self.osmosdr_source_0.set_gain(10, 0) 
     self.osmosdr_source_0.set_if_gain(20, 0) 
     self.osmosdr_source_0.set_bb_gain(20, 0) 
     self.osmosdr_source_0.set_antenna("", 0) 
     self.osmosdr_source_0.set_bandwidth(0, 0) 

     self.blocks_file_sink_0 = blocks.file_sink(gr.sizeof_gr_complex*1, path, False) 
     self.blocks_file_sink_0.set_unbuffered(False) 

     ################################################## 
     # Connections 
     ################################################## 
     self.connect((self.osmosdr_source_0, 0), (self.blocks_file_sink_0, 0))  

    def get_path(self): 
     return self.path 

    def set_path(self, path): 
     self.path = path 
     self.blocks_file_sink_0.open(self.path) 

    def get_freq(self): 
     return self.freq 

    def set_freq(self, freq): 
     self.freq = freq 
     self.osmosdr_source_0.set_center_freq(self.freq*1e6, 0) 

    def get_samp_rate(self): 
     return self.samp_rate 

    def set_samp_rate(self, samp_rate): 
     self.samp_rate = samp_rate 
     self.osmosdr_source_0.set_sample_rate(self.samp_rate) 


def argument_parser(): 
    parser = OptionParser(option_class=eng_option, usage="%prog: [options]") 
    parser.add_option(
     "-p", "--path", dest="path", type="string", default="myoutput", 
     help="Set myoutput [default=%default]") 
    parser.add_option(
     "-f", "--freq", dest="freq", type="eng_float", default=eng_notation.num_to_str(480e6), 
     help="Set freq [default=%default]") 
    return parser 


def main(top_block_cls=myscript, options=None): 
    if options is None: 
     options, _ = argument_parser().parse_args() 

    tb = top_block_cls(path=options.path, freq=options.freq) 
    tb.start() 
    try: 
     raw_input('Press Enter to quit: ') 
    except EOFError: 
     pass 
    tb.stop() 
    tb.wait() 


if __name__ == '__main__': 
    main() 
+0

Zeigen Sie uns das Skript! –

+0

Es handelt sich um ein generiertes Skript von gnuradio companion, das einen Dateisenkenblock verwendet. – Hunry3rd

+0

Wie können wir Ihnen ohne den Code helfen? –

Antwort

0

Ich löste es durch die raw_input Entfernen() und den Versuch, außer KeyboardInterrupt Ausnahme mit Endlos-Schleife zu ändern.

Verwandte Themen