예제 #1
0
 def __init__(self, work_queue, out_queue, center, sample_rate, search_depth, search_window, verbose):
     self._work_queue = work_queue
     self._cad = cut_and_downmix.CutAndDownmix(center=center, sample_rate=sample_rate,
                                         search_depth=search_depth, verbose=verbose)
     self._dem = demod.Demod(sample_rate=sample_rate, use_correlation=True, verbose=verbose)
     self._out_queue = out_queue
     self._search_window=search_window
     self._verbose = verbose
예제 #2
0
        file_name = "/dev/stdin"
        basename = "stdin"
    else:
        file_name = remainder[0]
        basename = filename = re.sub('\.[^.]*$', '', file_name)

    signal = iq.read(file_name)

    cad = cut_and_downmix.CutAndDownmix(center=center,
                                        sample_rate=sample_rate,
                                        symbols_per_second=symbols_per_second,
                                        preamble_length=preamble_length,
                                        search_depth=search_depth,
                                        verbose=verbose,
                                        search_window=search_window)
    d = demod.Demod(sample_rate=sample_rate, verbose=verbose)

    temp_signal, freq, _ = cad.cut_and_downmix(signal=signal,
                                               search_offset=search_offset,
                                               direction=direction)

    dataarray, data, access_ok, lead_out_ok, confidence, level, nsymbols, final_offset = d.demod(
        temp_signal, return_final_offset=True)

    print "RAW: %s %d %010d A:%s L:%s %3d%% %.3f %3d %s" % (
        basename, 0, freq, ("no", "OK")[access_ok],
        ("no", "OK")[lead_out_ok], confidence, level, (nsymbols - 12), data)
    signal, freq, _ = cad.cut_and_downmix(signal=signal,
                                          search_offset=search_offset,
                                          frequency_offset=-final_offset)
    print "F_off:", -final_offset
예제 #3
0
    else:
        file_name = remainder[0]
        basename = filename = re.sub('\.[^.]*$', '', file_name)

    det = detector.Detector(sample_rate=sample_rate,
                            fft_peak=fft_peak,
                            sample_format=fmt,
                            search_size=search_size,
                            verbose=verbose,
                            signal_width=search_window)
    cad = cut_and_downmix.CutAndDownmix(center=center,
                                        sample_rate=sample_rate,
                                        search_depth=search_depth,
                                        verbose=verbose)
    dem = demod.Demod(sample_rate=sample_rate,
                      use_correlation=True,
                      verbose=verbose)

    def process_one(basename, time_stamp, signal_strength, bin_index, freq,
                    signal):
        mix_signal, mix_freq = cad.cut_and_downmix(signal=signal,
                                                   search_offset=freq,
                                                   search_window=search_window)
        dataarray, data, access_ok, lead_out_ok, confidence, level, nsymbols = dem.demod(
            mix_signal)
        msg = "RAW: %s %09d %010d A:%s L:%s %3d%% %.3f %3d %s" % (
            basename, time_stamp, mix_freq, ("no", "OK")[access_ok],
            ("no", "OK")[lead_out_ok], confidence, level,
            (nsymbols - 12), data)
        out_queue.put(msg)
        if mix_freq < 1626e6 and confidence > 95 and nsymbols > 40 and access_ok == 1:
예제 #4
0
        file_name = remainder[0]
        basename = filename = re.sub('\.[^.]*$', '', file_name)

    det = detector.Detector(sample_rate=sample_rate,
                            fft_peak=fft_peak,
                            sample_format=fmt,
                            search_size=search_size,
                            verbose=verbose,
                            signal_width=search_window,
                            burst_size=burst_size)
    cad = cut_and_downmix.CutAndDownmix(center=center,
                                        input_sample_rate=sample_rate,
                                        search_depth=search_depth,
                                        verbose=verbose,
                                        search_window=search_window)
    dem = demod.Demod(sample_rate=cad.output_sample_rate, verbose=verbose)

    def process_one(basename, time_stamp, signal_strength, bin_index, freq,
                    signal):
        try:
            msg = None
            try:
                mix_signal, mix_freq, mix_direction = cad.cut_and_downmix(
                    signal=signal, search_offset=freq, direction=direction)
                dataarray, data, access_ok, lead_out_ok, confidence, level, nsymbols = dem.demod(
                    signal=mix_signal, direction=mix_direction)
                msg = "RAW: %s %09d %010d A:%s L:%s %3d%% %.3f %3d %s" % (
                    basename, time_stamp, mix_freq, ("no", "OK")[access_ok],
                    ("no", "OK")[lead_out_ok], confidence, level,
                    (nsymbols - 12), data)
            except cut_and_downmix.DownmixError:
예제 #5
0
           decimation = 1

    basename=None

    if len(remainder)==0 or pipe !=None:
        if pipe==None:
            pipe="t"
        basename="i-%.4f-%s1"%(time.time(),pipe)
        file_name = "/dev/stdin"
    else:
        file_name = remainder[0]
        basename= filename= re.sub('\.[^.]*$','',file_name)

    det = detector.Detector(sample_rate=sample_rate, fft_peak=fft_peak, sample_format=fmt, search_size=search_size, verbose=verbose, signal_width=search_window, burst_size=burst_size)
    cad = cut_and_downmix.CutAndDownmix(center=center, input_sample_rate=sample_rate, search_depth=search_depth, verbose=verbose, decimation=decimation)
    dem = demod.Demod(sample_rate=cad.output_sample_rate, use_correlation=True, verbose=verbose)

    def process_one(basename, time_stamp, signal_strength, bin_index, freq, signal):
        mix_signal, mix_freq = cad.cut_and_downmix(signal=signal, search_offset=freq, search_window=search_window)
        dataarray, data, access_ok, lead_out_ok, confidence, level, nsymbols = dem.demod(mix_signal)
        msg = "RAW: %s %09d %010d A:%s L:%s %3d%% %.3f %3d %s"%(basename,time_stamp,mix_freq,("no","OK")[access_ok],("no","OK")[lead_out_ok],confidence,level,(nsymbols-12),data)
        out_queue.put(msg)

    def wrap_process(time_stamp, signal_strength, bin_index, freq, signal):
        global queue_len, queue_blocked, in_count, drop_count
        if offline:
            if queue_len > max_queue_len:
                while queue_len > max_queue_len/2:
                    time.sleep(1)
        else:
            if queue_len > max_queue_len: