Convert all blocks from XML to YAML

This commit is contained in:
Manolis Surligas 2019-12-03 13:47:45 +02:00
parent cd5dfc69c9
commit 073df24112
73 changed files with 1137 additions and 1702 deletions

View File

@ -1,5 +1,5 @@
variables: variables:
GITLAB_CI_IMAGE_DEBIAN: 'debian:buster' GITLAB_CI_IMAGE_DEBIAN: 'debian:bullseye'
stages: stages:
- style - style
- test - test
@ -7,6 +7,7 @@ stages:
- deploy - deploy
style: style:
image: ${GITLAB_CI_IMAGE_DEBIAN}
stage: style stage: style
before_script: before_script:
- apt-get update -qq && apt-get install -y -qq astyle git - apt-get update -qq && apt-get install -y -qq astyle git
@ -16,24 +17,26 @@ style:
- if (test $(astyle --dry-run --options=.astylerc --formatted include/satnogs/*.h | wc -l) -eq 0); then (exit 0); else (exit 1); fi - if (test $(astyle --dry-run --options=.astylerc --formatted include/satnogs/*.h | wc -l) -eq 0); then (exit 0); else (exit 1); fi
test: test:
image: ${GITLAB_CI_IMAGE_DEBIAN}
stage: test stage: test
before_script: before_script:
- apt-get update -qq && apt-get install -y -qq gnuradio-dev libcppunit-dev libjsoncpp-dev libpng++-dev libvorbis-dev cmake swig pkg-config build-essential git - apt-get update -qq && apt-get install -y -qq gnuradio-dev libboost-program-options-dev libjsoncpp-dev libpng++-dev libvorbis-dev cmake swig pkg-config build-essential git
script: script:
- mkdir -p build - mkdir -p build
- cd build - cd build
- cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr .. - cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr ..
- make - make
- make CTEST_OUTPUT_ON_FAILURE=1 test
- make install - make install
- ldconfig - ldconfig
- python -c "import satnogs" - python3 -c "import satnogs"
- rm -rf * - rm -rf *
- cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DINCLUDE_DEBUG_BLOCKS=OFF -DCMAKE_INSTALL_PREFIX=/usr .. - cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DINCLUDE_DEBUG_BLOCKS=OFF -DCMAKE_INSTALL_PREFIX=/usr ..
- make - make
- make CTEST_OUTPUT_ON_FAILURE=1 test - make CTEST_OUTPUT_ON_FAILURE=1 test
- make install - make install
- ldconfig - ldconfig
- python -c "import satnogs" - python3 -c "import satnogs"
debian: debian:
stage: build stage: build

View File

@ -97,7 +97,8 @@ set(Boost_ADDITIONAL_VERSIONS
"1.60.0" "1.60" "1.61.0" "1.61" "1.62.0" "1.62" "1.63.0" "1.63" "1.64.0" "1.64" "1.60.0" "1.60" "1.61.0" "1.61" "1.62.0" "1.62" "1.63.0" "1.63" "1.64.0" "1.64"
"1.65.0" "1.65" "1.66.0" "1.66" "1.67.0" "1.67" "1.68.0" "1.68" "1.69.0" "1.69" "1.65.0" "1.65" "1.66.0" "1.66" "1.67.0" "1.67" "1.68.0" "1.68" "1.69.0" "1.69"
) )
find_package(Boost "1.54" COMPONENTS filesystem system unit_test_framework thread chrono) find_package(Boost "1.54"
COMPONENTS filesystem system unit_test_framework thread chrono)
if(NOT Boost_FOUND) if(NOT Boost_FOUND)
message(FATAL_ERROR "Boost required to compile satnogs") message(FATAL_ERROR "Boost required to compile satnogs")

View File

@ -17,47 +17,46 @@
# the Free Software Foundation, Inc., 51 Franklin Street, # the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA # Boston, MA
add_subdirectory(satellites)
list(APPEND debug_blocks list(APPEND debug_blocks
satnogs_morse_debug_source.xml satnogs_cw_encoder.block.yml
satnogs_debug_msg_source.xml satnogs_cw_to_symbol.block.yml
satnogs_debug_msg_source_raw.xml satnogs_debug_msg_source_raw.block.yml
satnogs_cw_encoder.xml satnogs_debug_msg_source.block.yml
satnogs_morse_debug_source.block.yml
) )
list(APPEND enabled_blocks list(APPEND enabled_blocks
satnogs_block_tree.xml satnogs_amsat_duv_decoder.block.yml
satnogs_amsat_duv_decoder.xml satnogs_ax25_decoder.block.yml
satnogs_ax25_encoder_mb.xml satnogs_ax25_encoder_mb.block.yml
satnogs_ax25_decoder.xml satnogs_ax100_decoder.block.yml
satnogs_frame_decoder.xml satnogs_coarse_doppler_correction_cc.block.yml
satnogs_frame_file_sink.xml satnogs_doppler_correction_cc.block.yml
satnogs_iq_sink.xml satnogs_frame_decoder.block.yml
satnogs_json_converter.xml satnogs_frame_file_sink.block.yml
satnogs_lrpt_decoder.xml satnogs_ieee802_15_4_variant_decoder.block.yml
satnogs_lrpt_sync.xml satnogs_iq_sink.block.yml
satnogs_morse_decoder.xml satnogs_json_converter.block.yml
satnogs_multi_format_msg_sink.xml satnogs_lrpt_decoder.block.yml
satnogs_ogg_encoder.xml satnogs_lrpt_sync.block.yml
satnogs_cw_to_symbol.xml satnogs_morse_decoder.block.yml
satnogs_udp_msg_source.xml satnogs_multi_format_msg_sink.block.yml
satnogs_tcp_rigctl_msg_source.xml satnogs_noaa_apt_sink.block.yml
satnogs_doppler_correction_cc.xml satnogs_ogg_encoder.block.yml
satnogs_udp_msg_sink.xml satnogs_ogg_source.block.yml
satnogs_coarse_doppler_correction_cc.xml satnogs_tcp_rigctl_msg_source.block.yml
satnogs_waterfall_sink.xml satnogs_udp_msg_sink.block.yml
satnogs_ogg_source.xml satnogs_udp_msg_source.block.yml
satnogs_noaa_apt_sink.xml satnogs_waterfall_sink.block.yml
satnogs_whitening.xml satnogs_whitening_ccsds.block.yml
satnogs_whitening_ccsds.xml satnogs_whitening.block.yml
satnogs_ieee802_15_4_variant_decoder.xml satnogs.tree.yml
satnogs_ax100_decoder.xml
) )
if(${INCLUDE_DEBUG_BLOCKS}) if(${INCLUDE_DEBUG_BLOCKS})
list(APPEND enabled_blocks ${debug_blocks}) list(APPEND enabled_blocks ${debug_blocks})
endif() endif()
install(FILES install(FILES
${enabled_blocks} ${enabled_blocks}
DESTINATION share/gnuradio/grc/blocks DESTINATION share/gnuradio/grc/blocks

View File

@ -1,21 +0,0 @@
# Copyright 2011 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.

36
grc/satnogs.tree.yml Normal file
View File

@ -0,0 +1,36 @@
'[SatNOGS]':
- Decoders:
- variable_amsat_duv_decoder
- variable_ax25_decoder
- variable_ax100_decoder
- variable_ieee802_15_4_variant_decoder
- satnogs_morse_decoder
- Satellites:
- NOAA:
- satnogs_noaa_apt_sink
- METEOR:
- satnogs_lrpt_decoder
- satnogs_lrpt_sync
- satnogs_ax25_encoder_mb
- satnogs_coarse_doppler_correction_cc
- satnogs_doppler_correction_cc
- satnogs_frame_decoder
- satnogs_frame_file_sink
- satnogs_iq_sink
- satnogs_json_converter
- satnogs_ogg_encoder
- satnogs_ogg_source
- satnogs_tcp_rigctl_msg_source
- satnogs_udp_msg_sink
- satnogs_udp_msg_source
- satnogs_waterfall_sink
- satnogs_whitening_ccsds
- satnogs_whitening
- Debug:
- satnogs_cw_encoder
- satnogs_cw_to_symbol
- satnogs_debug_msg_source_raw
- satnogs_debug_msg_source
- satnogs_morse_debug_source
- satnogs_multi_format_msg_sink

View File

@ -0,0 +1,22 @@
id: variable_amsat_duv_decoder
label: AMSAT DUV Decoder Definition
flags: [show_id]
parameters:
- id: control_symbol
label: Control symbol
dtype: string
default: '0011111010'
- id: frame_len
label: Maximum Frame Length
dtype: int
default: 96
value: ${satnogs.amsat_duv_decoder_make(control_symbol, frame_len)}
templates:
imports: import satnogs
var_make: self.${id} = ${id} = satnogs.amsat_duv_decoder_make(${control_symbol}, ${frame_len})
file_format: 1

View File

@ -1,31 +0,0 @@
<?xml version="1.0"?>
<block>
<name>AMSAT DUV Decoder Definition</name>
<key>variable_amsat_duv_decoder</key>
<import>import satnogs</import>
<var_make>self.$(id) = $(id) = satnogs.amsat_duv_decoder_make($control_symbol, $frame_len)</var_make>
<var_value>satnogs.amsat_duv_decoder_make($control_symbol, $frame_len)</var_value>
<make></make>
<param>
<name>Ignore Me</name>
<key>value</key>
<value>'ok'</value>
<type>raw</type>
<hide>all</hide>
</param>
<param>
<name>Control symbols</name>
<key>control_symbol</key>
<value>0011111010</value>
<type>string</type>
</param>
<param>
<name>Maximum Frame Length</name>
<key>frame_len</key>
<value>96</value>
<type>int</type>
</param>
</block>

View File

@ -0,0 +1,49 @@
id: variable_ax100_decoder
label: AX.100 Decoder Definition
flags: [show_id]
parameters:
- id: preamble
label: Preamble
dtype: raw
default: [0x55, 0x55, 0x55, 0x55, 0x55]
- id: preamble_thrsh
label: Preamble Threshold
dtype: int
default: 5
- id: sync_word
label: Synchronization Word
dtype: raw
default: [0x31, 0xe5]
- id: sync_thrsh
label: Synchronization Word Threshold
dtype: int
default: 3
- id: crc
label: CRC
dtype: raw
default: 'satnogs.crc.CRC_NONE'
- id: whitening
label: Whitening
dtype: raw
default: 'satnogs.whitening_sptr(None)'
- id: rs
label: Reed Solomon
dtype: bool
default: 'True'
options: ['True', 'False']
option_labels: ['Enable', 'Disable']
value: ${satnogs.ax100_decoder_make(preamble, preamble_thrsh, sync_word, sync_thrsh, crc, whitening, rs)}
templates:
imports: import satnogs
var_make: self.${id} = ${id} = satnogs.ax100_decoder_make(${preamble}, ${preamble_thrsh}, ${sync_word}, ${sync_thrsh}, ${crc}, ${whitening}, ${rs)}
file_format: 1

View File

@ -1,74 +0,0 @@
<?xml version="1.0"?>
<block>
<name>AX.100 Decoder Definition</name>
<key>variable_ax100_decoder</key>
<import>import satnogs</import>
<var_make>self.$(id) = $(id) = satnogs.ax100_decoder_make($preamble, $preamble_thrsh, $sync_word, $sync_thrsh, $crc, $whitening, $rs)</var_make>
<var_value>satnogs.ax100_decoder_make($preamble, $preamble_thrsh, $sync_word, $sync_thrsh, $crc, $whitening, $rs)</var_value>
<make></make>
<param>
<name>Ignore Me</name>
<key>value</key>
<value>'ok'</value>
<type>raw</type>
<hide>all</hide>
</param>
<param>
<name>Frame Preamble</name>
<key>preamble</key>
<value>[0x55, 0x55, 0x55, 0x55, 0x55]</value>
<type>raw</type>
</param>
<param>
<name>Preamble Threshold</name>
<key>preamble_thrsh</key>
<value>5</value>
<type>int</type>
</param>
<param>
<name>Synchronization Word</name>
<key>sync_word</key>
<value>[0x31, 0xe5]</value>
<type>raw</type>
</param>
<param>
<name>Synchronization Word Threshold</name>
<key>sync_thrsh</key>
<value>3</value>
<type>int</type>
</param>
<param>
<name>CRC</name>
<key>crc</key>
<value>None</value>
<type>raw</type>
</param>
<param>
<name>Whitening</name>
<key>whitening</key>
<value>None</value>
<type>raw</type>
</param>
<param>
<name>Reed Solomon</name>
<key>rs</key>
<value>True</value>
<type>enum</type>
<option>
<name>Enable</name>
<key>True</key>
</option>
<option>
<name>Disable</name>
<key>False</key>
</option>
</param>
</block>

View File

@ -0,0 +1,48 @@
id: variable_ax25_decoder
label: AX.25 Decoder Definition
flags: [show_id]
parameters:
- id: addr
label: Receiver Callsign
dtype: string
default: 'GND'
- id: ssid
label: Receiver SSID
dtype: int
default: 0
- id: descrambling
label: G3RUH Descrambling
dtype: bool
default: 'True'
options: ['True', 'False']
option_labels: ['Enable', 'Disable']
- id: promisc
label: Promiscuous mode
dtype: bool
default: 'True'
options: ['True', 'False']
option_labels: ['Enable', 'Disable']
- id: crc_check
label: Perform CRC check
dtype: bool
default: 'True'
options: ['True', 'False']
option_labels: ['Enable', 'Disable']
- id: frame_len
label: Maximum Frame Length
dtype: int
default: 512
value: ${satnogs.ax25_decoder_make(addr, ssid, promisc, descrambling, crc_check, frame_len)}
templates:
imports: import satnogs
var_make: self.${id} = ${id} = satnogs.ax25_decoder_make(${addr}, ${ssid}, ${promisc}, ${descrambling}, ${crc_check}, ${frame_len})
file_format: 1

View File

@ -1,80 +0,0 @@
<?xml version="1.0"?>
<block>
<name>AX.25 Decoder Definition</name>
<key>variable_ax25_decoder</key>
<import>import satnogs</import>
<var_make>self.$(id) = $(id) = satnogs.ax25_decoder_make($addr, $ssid, $promisc, $descrambling, $crc_check, $frame_len)</var_make>
<var_value>satnogs.ax25_decoder_make($addr, $ssid, $promisc, $descrambling, $crc_check, $frame_len)</var_value>
<make></make>
<param>
<name>Ignore Me</name>
<key>value</key>
<value>'ok'</value>
<type>raw</type>
<hide>all</hide>
</param>
<param>
<name>Receiver Callsign</name>
<key>addr</key>
<value>'GND'</value>
<type>string</type>
</param>
<param>
<name>Receiver SSID</name>
<key>ssid</key>
<value>0</value>
<type>int</type>
</param>
<param>
<name>Promiscuous mode</name>
<key>promisc</key>
<type>enum</type>
<option>
<name>No</name>
<key>False</key>
</option>
<option>
<name>Yes</name>
<key>True</key>
</option>
</param>
<param>
<name>G3RUH descrambling</name>
<key>descrambling</key>
<type>enum</type>
<option>
<name>Yes</name>
<key>True</key>
</option>
<option>
<name>No</name>
<key>False</key>
</option>
</param>
<param>
<name>Perform CRC</name>
<key>crc_check</key>
<type>enum</type>
<option>
<name>Yes</name>
<key>True</key>
</option>
<option>
<name>No</name>
<key>False</key>
</option>
</param>
<param>
<name>Maximum Frame Length</name>
<key>frame_len</key>
<value>512</value>
<type>int</type>
</param>
</block>

View File

@ -0,0 +1,50 @@
id: satnogs_ax25_encoder_mb
label: AX25 Encoder
parameters:
- id: dest_addr
label: Destination Callsign
dtype: string
- id: dest_ssid
label: Destination SSID
dtype: int
default: 0
- id: src_addr
label: Source Callsign
dtype: string
- id: src_ssid
label: Source SSID
dtype: int
default: 0
- id: preamble_len
label: Preamble Length
dtype: int
default: 16
- id: postamble_len
label: Postamble Length
dtype: int
default: 16
- id: scramble
label: G3RUH Scrambling
dtype: bool
default: 'True'
options: ['True', 'False']
option_labels: ['Enable', 'Disable']
outputs:
- label: out
domain: stream
dtype: byte
templates:
imports: import satnogs
make: satnogs.ax25_encoder_mb(${dest_addr}, ${dest_ssid}, ${src_addr}, ${src_ssid},
${preamble_len}, ${postamble_len}, ${scramble})
file_format: 1

View File

@ -1,69 +0,0 @@
<?xml version="1.0"?>
<block>
<name>AX.25 Encoder</name>
<key>satnogs_ax25_encoder_mb</key>
<import>import satnogs</import>
<make>satnogs.ax25_encoder_mb($dest_addr, $dest_ssid, $src_addr, $src_ssid, $preamble_len, $postamble_len, $scramble)</make>
<param>
<name>Destination Callsign</name>
<key>dest_addr</key>
<type>string</type>
</param>
<param>
<name>Destination SSID</name>
<key>dest_ssid</key>
<type>int</type>
</param>
<param>
<name>Source Callsign</name>
<key>src_addr</key>
<type>string</type>
</param>
<param>
<name>Source SSID</name>
<key>src_ssid</key>
<type>int</type>
</param>
<param>
<name>Preamble Length</name>
<key>preamble_len</key>
<value>16</value>
<type>int</type>
</param>
<param>
<name>Postamble Length</name>
<key>postamble_len</key>
<value>16</value>
<type>int</type>
</param>
<param>
<name>G3RUH Scrambling</name>
<key>scramble</key>
<type>enum</type>
<option>
<name>Yes</name>
<key>True</key>
</option>
<option>
<name>No</name>
<key>False</key>
</option>
</param>
<sink>
<name>info</name>
<type>message</type>
</sink>
<source>
<name>out</name>
<type>byte</type>
</source>
</block>

View File

@ -1,46 +0,0 @@
<cat>
<name>[SatNOGS]</name>
<cat>
<name>Decoders</name>
<block>variable_ax25_decoder</block>
<block>variable_amsat_duv_decoder</block>
<block>variable_ieee802_15_4_variant_decoder</block>
<block>variable_ax100_decoder</block>
</cat>
<cat>
<name>Satellites</name>
<cat>
<name>NOAA</name>
<block>satnogs_noaa_apt_sink</block>
</cat>
<cat>
<name>UPSat</name>
<block>satnogs_upsat_fsk_frame_encoder</block>
<block>satnogs_upsat_transmitter</block>
<block>satnogs_qb50_deframer</block>
</cat>
<cat>
<name>METOP</name>
<block>satnogs_lrpt_sync</block>
<block>satnogs_lrpt_decoder</block>
</cat>
</cat>
<block>satnogs_cw_matched_filter_ff</block>
<block>satnogs_morse_decoder</block>
<block>satnogs_multi_format_msg_sink</block>
<block>satnogs_iq_sink</block>
<block>satnogs_json_converter</block>
<block>satnogs_ogg_encoder</block>
<block>satnogs_ogg_source</block>
<block>satnogs_cw_to_symbol</block>
<block>satnogs_udp_msg_source</block>
<block>satnogs_tcp_rigctl_msg_source</block>
<block>satnogs_doppler_correction_cc</block>
<block>satnogs_udp_msg_sink</block>
<block>satnogs_coarse_doppler_correction_cc</block>
<block>satnogs_ax25_encoder_mb</block>
<block>satnogs_waterfall_sink</block>
<block>variable_whitening</block>
<block>variable_whitening_ccsds</block>
<block>satnogs_frame_decoder</block>
</cat>

View File

@ -0,0 +1,30 @@
id: satnogs_coarse_doppler_correction_cc
label: Doppler Correction (Coarse)
parameters:
- id: target_freq
label: Target frequency
dtype: real
- id: sampling_rate
label: Sample Rate
dtype: real
default: samp_rate
inputs:
- label: in
domain: stream
dtype: complex
outputs:
- label: out
domain: stream
dtype: complex
templates:
imports: import satnogs
make: satnogs.coarse_doppler_correction_cc(${target_freq}, ${sampling_rate})
callbacks:
- set_new_freq_locked(${target_freq})
file_format: 1

View File

@ -1,36 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Coarse Doppler Correction</name>
<key>satnogs_coarse_doppler_correction_cc</key>
<import>import satnogs</import>
<make>satnogs.coarse_doppler_correction_cc($target_freq, $sampling_rate)</make>
<callback>set_new_freq_locked($target_freq)</callback>
<param>
<name>Target Frequency</name>
<key>target_freq</key>
<type>real</type>
</param>
<param>
<name>Sample Rate</name>
<key>sampling_rate</key>
<value>samp_rate</value>
<type>real</type>
</param>
<sink>
<name>freq</name>
<type>message</type>
</sink>
<sink>
<name>in</name>
<type>complex</type>
</sink>
<source>
<name>out</name>
<type>complex</type>
</source>
</block>

View File

@ -0,0 +1,34 @@
id: satnogs_cw_encoder
label: CW Encoder
parameters:
- id: samp_rate
label: Sample Rate
dtype: real
default: samp_rate
- id: cw_freq
label: CW Tone Frequency
dtype: real
default: 700
- id: wpm
label: Words per minute
dtype: int
default: 20
inputs:
- domain: message
id: symbol
outputs:
- label: out
domain: stream
dtype: complex
templates:
imports: import satnogs
make: satnogs.cw_encoder(${samp_rate}, ${cw_freq}, ${wpm})
file_format: 1

View File

@ -1,39 +0,0 @@
<?xml version="1.0"?>
<block>
<name>CW Encoder</name>
<key>satnogs_cw_encoder</key>
<category>[SatNOGS]/Debug</category>
<import>import satnogs</import>
<make>satnogs.cw_encoder($samp_rate, $cw_freq, $wpm)</make>
<param>
<name>Sample Rate</name>
<key>samp_rate</key>
<value>samp_rate</value>
<type>real</type>
</param>
<param>
<name>CW Frequency</name>
<key>cw_freq</key>
<value>700</value>
<type>real</type>
</param>
<param>
<name>Words per minute</name>
<key>wpm</key>
<value>20</value>
<type>int</type>
</param>
<sink>
<name>symbol</name>
<type>message</type>
</sink>
<source>
<name>out</name>
<type>complex</type>
</source>
</block>

View File

@ -0,0 +1,48 @@
id: satnogs_cw_to_symbol
label: CW to Symbol
parameters:
- id: samp_rate
label: Sample Rate
dtype: real
default: samp_rate
- id: threshold
label: Activation Threshold
dtype: real
- id: conf_level
label: Confidence Level
dtype: real
default: 0.9
- id: wpm
label: Words per Minute
dtype: int
default: 20
- id: hysteresis
label: Hysteresis
dtype: int
default: 0
inputs:
- domain: message
id: act_threshold
optiona: true
- label: in
domain: stream
dtype: float
outputs:
- domain: message
id: out
templates:
imports: import satnogs
make: satnogs.cw_to_symbol(${sampling_rate}, ${threshold}, ${conf_level}, ${wpm}, ${hysteresis})
callbacks:
- set_act_threshold(${threshold})
file_format: 1

View File

@ -1,58 +0,0 @@
<?xml version="1.0"?>
<block>
<name>CW to Symbols</name>
<key>satnogs_cw_to_symbol</key>
<import>import satnogs</import>
<make>satnogs.cw_to_symbol($sampling_rate, $threshold, $conf_level, $wpm, $hysteresis)</make>
<callback>set_act_threshold($threshold)</callback>
<param>
<name>Sampling Rate</name>
<key>sampling_rate</key>
<value>samp_rate</value>
<type>real</type>
</param>
<param>
<name>Activation Threshold</name>
<key>threshold</key>
<type>real</type>
</param>
<param>
<name>Confidence Level</name>
<key>conf_level</key>
<value>0.9</value>
<type>real</type>
</param>
<param>
<name>Words per Minute</name>
<key>wpm</key>
<value>20</value>
<type>int</type>
</param>
<param>
<name>Hysteresis</name>
<key>hysteresis</key>
<value>0</value>
<type>int</type>
</param>
<sink>
<name>act_threshold</name>
<type>message</type>
<optional>1</optional>
</sink>
<sink>
<name>in</name>
<type>float</type>
</sink>
<source>
<name>out</name>
<type>message</type>
</source>
</block>

View File

@ -0,0 +1,30 @@
id: satnogs_debug_msg_source
label: Message Source (String)
parameters:
- id: msg
label: Message
dtype: string
default: 'HELLO WORLD'
- id: Delay (seconds)
label: delay
dtype: real
default: 0.01
- id: repeat
label: Repeat
dtype: bool
default: 'False'
options: ['True', 'False']
option_labels: ['Enable', 'Disable']
outputs:
- id: msg
domain: message
templates:
imports: import satnogs
make: satnogs.debug_msg_source(${msg}, ${delay}, ${repeat})
file_format: 1

View File

@ -1,41 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Debug Message Source</name>
<key>satnogs_debug_msg_source</key>
<category>[SatNOGS]/Debug</category>
<import>import satnogs</import>
<make>satnogs.debug_msg_source($msg, $delay, $repeat)</make>
<param>
<name>Message</name>
<key>msg</key>
<value>"HELLO WORLD"</value>
<type>string</type>
</param>
<param>
<name>Delay (seconds)</name>
<key>delay</key>
<value>0.01</value>
<type>real</type>
</param>
<param>
<name>Repeat</name>
<key>repeat</key>
<type>enum</type>
<option>
<name>Yes</name>
<key>True</key>
</option>
<option>
<name>No</name>
<key>False</key>
</option>
</param>
<source>
<name>msg</name>
<type>message</type>
</source>
</block>

View File

@ -0,0 +1,30 @@
id: satnogs_debug_msg_source_raw
label: Message Source (Raw bytes)
parameters:
- id: msg
label: Message
dtype: raw
default: [0x33, 0x44, 0x55, 0x66]
- id: Delay (seconds)
label: delay
dtype: real
default: 0.01
- id: repeat
label: Repeat
dtype: bool
default: 'False'
options: ['True', 'False']
option_labels: ['Enable', 'Disable']
outputs:
- id: msg
domain: message
templates:
imports: import satnogs
make: satnogs.debug_msg_source_raw(${msg}, ${delay}, ${repeat})
file_format: 1

View File

@ -1,41 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Debug Message Source Raw</name>
<key>satnogs_debug_msg_source_raw</key>
<category>[SatNOGS]/Debug</category>
<import>import satnogs</import>
<make>satnogs.debug_msg_source_raw($msg, $delay, $repeat)</make>
<param>
<name>Message</name>
<key>msg</key>
<value>[0x33, 0x44, 0x55, 0x66]</value>
<type>raw</type>
</param>
<param>
<name>Delay (seconds)</name>
<key>delay</key>
<value>0.01</value>
<type>real</type>
</param>
<param>
<name>Repeat</name>
<key>repeat</key>
<type>enum</type>
<option>
<name>Yes</name>
<key>True</key>
</option>
<option>
<name>No</name>
<key>False</key>
</option>
</param>
<source>
<name>msg</name>
<type>message</type>
</source>
</block>

View File

@ -0,0 +1,41 @@
id: satnogs_doppler_correction_cc
label: Doppler Correction
parameters:
- id: target_freq
label: Target frequency
dtype: real
- id: sampling_rate
label: Sample Rate
dtype: real
default: samp_rate
- id: corrections_per_sec
label: Corrections per Second
dtype: int
default: 1000
inputs:
- id: freq
domain: message
- id: reset
domain: message
optional: true
- label: in
domain: stream
dtype: complex
outputs:
- label: out
domain: stream
dtype: complex
templates:
imports: import satnogs
make: satnogs.doppler_correction_cc(${target_freq}, ${sampling_rate}, ${corrections_per_sec})
file_format: 1

View File

@ -1,48 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Doppler Correction</name>
<key>satnogs_doppler_correction_cc</key>
<import>import satnogs</import>
<make>satnogs.doppler_correction_cc($target_freq, $sampling_rate, $corrections_per_sec)</make>
<param>
<name>Target Frequency</name>
<key>target_freq</key>
<type>real</type>
</param>
<param>
<name>Sample Rate</name>
<key>sampling_rate</key>
<value>samp_rate</value>
<type>real</type>
</param>
<param>
<name>Corrections per Second</name>
<key>corrections_per_sec</key>
<value>1000</value>
<type>int</type>
</param>
<sink>
<name>freq</name>
<type>message</type>
</sink>
<sink>
<name>reset</name>
<type>message</type>
<optional>1</optional>
</sink>
<sink>
<name>in</name>
<type>complex</type>
</sink>
<source>
<name>out</name>
<type>complex</type>
</source>
</block>

View File

@ -0,0 +1,46 @@
id: satnogs_frame_decoder
label: Frame Decoder
parameters:
- id: itype
label: IO Type
dtype: enum
default: complex
options: [complex, float, int, short, byte]
option_attributes:
size: [8, 4, 4, 2, 1]
hide: part
- id: vlen
label: Vec Length
dtype: int
default: '1'
hide: ${ 'part' if vlen == 1 else 'none' }
- id: decoder_object
label: Decoder_object
dtype: raw
default: None
inputs:
- label: in
domain: stream
dtype: ${itype}
vlen: ${vlen}
- id: reset
domain: message
optional: true
outputs:
- id: out
domain: message
asserts:
- ${vlen > 0}
templates:
imports: import satnogs
make: satnogs.frame_decoder(${decoder_object}, ${itype.size} * ${vlen})
file_format: 1

View File

@ -1,63 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Frame Decoder</name>
<key>satnogs_frame_decoder</key>
<import>import satnogs</import>
<make>satnogs.frame_decoder($decoder_object, $itype.size)</make>
<param>
<name>Input Type</name>
<key>itype</key>
<value></value>
<type>enum</type>
<option>
<name>Complex</name>
<key>complex</key>
<opt>size:gr.sizeof_gr_complex</opt>
</option>
<option>
<name>Float</name>
<key>float</key>
<opt>size:gr.sizeof_float</opt>
</option>
<option>
<name>Int</name>
<key>int</key>
<opt>size:gr.sizeof_int</opt>
</option>
<option>
<name>Short</name>
<key>short</key>
<opt>size:gr.sizeof_short</opt>
</option>
<option>
<name>Byte</name>
<key>byte</key>
<opt>size:gr.sizeof_char</opt>
</option>
</param>
<param>
<name>Decoder object</name>
<key>decoder_object</key>
<value>None</value>
<type>raw</type>
</param>
<sink>
<name>in</name>
<type>$itype</type>
</sink>
<sink>
<name>reset</name>
<type>message</type>
<optional>1</optional>
</sink>
<source>
<name>out</name>
<type>message</type>
</source>
</block>

View File

@ -0,0 +1,25 @@
id: satnogs_frame_file_sink
label: Frame File Sink
parameters:
- id: prefix_name
label: Prefix
dtype: string
default: 'test'
- id: output_type
label: Output Type
dtype: int
options: [0, 1, 2]
option_labels: ['Binary', 'Hex annotation', 'Binary annotation']
default: 0
inputs:
- id: frame
domain: message
templates:
imports: import satnogs
make: satnogs.frame_file_sink(${prefix_name}, ${output_type})
file_format: 1

View File

@ -1,42 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Frame File Sink</name>
<key>satnogs_frame_file_sink</key>
<category>[SatNOGS]</category>
<import>import satnogs</import>
<make>satnogs.frame_file_sink($prefix_name, $output_type)</make>
<!-- Make one 'param' node for every Parameter you want settable from the
GUI. Sub-nodes: * name * key (makes the value accessible as $keyname, e.g.
in the make node) * type -->
<param>
<name>Prefix name</name>
<key>prefix_name</key>
<value>test</value>
<type>string</type>
</param>
<param>
<name>Output type</name>
<key>output_type</key>
<type>enum</type>
<option>
<name>Binary</name>
<key>0</key>
</option>
<option>
<name>Hex annotated</name>
<key>1</key>
</option>
<option>
<name>Binary annotated</name>
<key>2</key>
</option>
</param>
<sink>
<name>frame</name>
<type>message</type>
</sink>
</block>

View File

@ -0,0 +1,54 @@
id: variable_ieee802_15_4_variant_decoder
label: IEEE 802.15.4 Decoder Definition
flags: [show_id]
parameters:
- id: var_len
label: Variable Length
dtype: bool
default: 'True'
options: ['True', 'False']
option_labels: ['Enable', 'Disable']
- id: preamble
label: Preamble
dtype: raw
default: [0x55, 0x55, 0x55, 0x55, 0x55]
- id: preamble_thrsh
label: Preamble Threshold
dtype: int
default: 5
- id: sync_word
label: Synchronization Word
dtype: raw
default: [0x31, 0xe5]
- id: sync_thrsh
label: Synchronization Word Threshold
dtype: int
default: 3
- id: frame_len
label: (Maximum) Frame Length
dtype: int
default: 240
- id: crc
label: CRC
dtype: raw
default: 'satnogs.crc.CRC_NONE'
- id: whitening
label: Whitening
dtype: raw
default: 'satnogs.whitening_sptr(None)'
value: ${satnogs.ieee802_15_4_variant_decoder_make(preamble, preamble_thrsh, sync_word, sync_thrsh, crc, whitening, var_len, frame_len)}
templates:
imports: import satnogs
var_make: self.${id} = ${id} = satnogs.ieee802_15_4_variant_decoder_make(${preamble}, ${preamble_thrsh}, ${sync_word}, ${sync_thrsh}, ${crc}, ${whitening}, ${var_len}, ${frame_len})
file_format: 1

View File

@ -1,80 +0,0 @@
<?xml version="1.0"?>
<block>
<name>IEEE 802.15.4 Decoder Definition</name>
<key>variable_ieee802_15_4_variant_decoder</key>
<import>import satnogs</import>
<var_make>self.$(id) = $(id) = satnogs.ieee802_15_4_variant_decoder_make($preamble, $preamble_thrsh, $sync_word, $sync_thrsh, $crc, $whitening, $var_len, $frame_len)</var_make>
<var_value>satnogs.ieee802_15_4_variant_decoder_make($preamble, $preamble_thrsh, $sync_word, $sync_thrsh, $crc, $whitening, $var_len, $frame_len)</var_value>
<make></make>
<param>
<name>Ignore Me</name>
<key>value</key>
<value>'ok'</value>
<type>raw</type>
<hide>all</hide>
</param>
<param>
<name>Variable Length</name>
<key>var_len</key>
<type>enum</type>
<option>
<name>Variable Frame Length</name>
<key>True</key>
</option>
<option>
<name>Constant Frame Length</name>
<key>False</key>
</option>
</param>
<param>
<name>Frame Preamble</name>
<key>preamble</key>
<value>[0x55, 0x55, 0x55, 0x55, 0x55]</value>
<type>raw</type>
</param>
<param>
<name>Preamble Threshold</name>
<key>preamble_thrsh</key>
<value>5</value>
<type>int</type>
</param>
<param>
<name>Synchronization Word</name>
<key>sync_word</key>
<value>[0x31, 0xe5]</value>
<type>raw</type>
</param>
<param>
<name>Synchronization Word Threshold</name>
<key>sync_thrsh</key>
<value>3</value>
<type>int</type>
</param>
<param>
<name>Maximum Frame Length</name>
<key>frame_len</key>
<value>254</value>
<type>int</type>
</param>
<param>
<name>CRC</name>
<key>crc</key>
<value>None</value>
<type>raw</type>
</param>
<param>
<name>Whitening</name>
<key>whitening</key>
<value>None</value>
<type>raw</type>
</param>
</block>

View File

@ -0,0 +1,39 @@
id: satnogs_iq_sink
label: IQ Sink
parameters:
- id: filename
label: File
dtype: file_save
- id: activate
label: Activate
dtype: int
options: [0, 1]
option_labels: ['Off', 'On']
default: 1
- id: scale
label: Scale
dtype: real
default: 32767.0
- id: append
label: Append File
dtype: bool
options: [False, True]
option_labels: ['False', 'True']
default: False
inputs:
- label: in
domain: stream
dtype: complex
templates:
imports: import satnogs
make: satnogs.iq_sink(${scale}, ${filename}, ${append}, ${activate})
callbacks:
- open(${filename})
file_format: 1

View File

@ -1,51 +0,0 @@
<?xml version="1.0"?>
<block>
<name>IQ Sink</name>
<key>satnogs_iq_sink</key>
<import>import satnogs</import>
<make>satnogs.iq_sink($scale, $filename, $append, $status)</make>
<callback>open($file)</callback>
<param>
<name>File</name>
<key>filename</key>
<value></value>
<type>file_save</type>
</param>
<param>
<name>Status</name>
<key>status</key>
<value>0</value>
<type>int</type>
<hide>part</hide>
</param>
<param>
<name>Scale</name>
<key>scale</key>
<value>32767</value>
<type>float</type>
</param>
<param>
<name>Append file</name>
<key>append</key>
<value>False</value>
<type>bool</type>
<option>
<name>Append</name>
<key>True</key>
</option>
<option>
<name>Overwrite</name>
<key>False</key>
</option>
</param>
<sink>
<name>in</name>
<type>complex</type>
</sink>
</block>

View File

@ -0,0 +1,21 @@
id: satnogs_json_converter
label: Telemetry to JSON
parameters:
- id: extra
label: Extra JSON field
dtype: raw
inputs:
- id: in
domain: message
outputs:
- id: out
domain: message
templates:
imports: import satnogs
make: satnogs.json_converter(${extra})
file_format: 1

View File

@ -1,24 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Telemetry to JSON</name>
<key>satnogs_json_converter</key>
<import>import satnogs</import>
<make>satnogs.json_converter($extra)</make>
<param>
<name>Extra JSON field</name>
<key>extra</key>
<value></value>
<type>raw</type>
</param>
<sink>
<name>in</name>
<type>message</type>
</sink>
<source>
<name>out</name>
<type>message</type>
</source>
</block>

View File

@ -0,0 +1,16 @@
id: satnogs_lrpt_decoder
label: LRPT Frame Decoder
inputs:
- id: cadu
domain: message
outputs:
- id: frame
domain: message
templates:
imports: import satnogs
make: satnogs.lrpt_decoder()
file_format: 1

View File

@ -1,17 +0,0 @@
<?xml version="1.0"?>
<block>
<name>LRPT Frame Decoder</name>
<key>satnogs_lrpt_decoder</key>
<import>import satnogs</import>
<make>satnogs.lrpt_decoder()</make>
<sink>
<name>cadu</name>
<type>message</type>
</sink>
<source>
<name>frame</name>
<type>message</type>
</source>
</block>

View File

@ -0,0 +1,23 @@
id: satnogs_lrpt_sync
label: LRPT Frame Sync
parameters:
- id: thresh
label: Threshold
dtype: int
default: 2
inputs:
- label: in
domain: stream
dtype: complex
outputs:
- id: cadu
domain: message
templates:
imports: import satnogs
make: satnogs.lrpt_sync(${thresh})
file_format: 1

View File

@ -1,24 +0,0 @@
<?xml version="1.0"?>
<block>
<name>LRPT Frame Sync</name>
<key>satnogs_lrpt_sync</key>
<import>import satnogs</import>
<make>satnogs.lrpt_sync($thresh)</make>
<param>
<name>Threshold</name>
<key>thresh</key>
<value>2</value>
<type>int</type>
</param>
<sink>
<name>in</name>
<type>complex</type>
</sink>
<source>
<name>cadu</name>
<type>message</type>
</source>
</block>

View File

@ -0,0 +1,39 @@
id: satnogs_morse_debug_source
label: Morse code Debug Source
parameters:
- id: wpm
label: Words per Minute
dtype: int
default: 20
- id: debug_seq
label: Sentence
dtype: string
default: 'HELLO WORLD'
- id: Inject Errors
label: errors
dtype: bool
default: 'False'
options: ['True', 'False']
- id: Error probability
label: p
dtype: real
default: 0.1
- id: Delay (millis)
label: seq_pause_ms
dtype: int
default: 1000
outputs:
- id: out
domain: message
templates:
imports: import satnogs
make: satnogs.morse_debug_source(${wpm}, ${debug_seq}, ${errors}, ${p}, ${seq_pause_ms})
file_format: 1

View File

@ -1,55 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Morse code Debug Source</name>
<key>satnogs_morse_debug_source</key>
<category>[SatNOGS]/Debug</category>
<import>import satnogs</import>
<make>satnogs.morse_debug_source($wpm, $debug_seq, $errors, $p, $seq_pause_ms)</make>
<param>
<name>WPM</name>
<key>wpm</key>
<value>20</value>
<type>int</type>
</param>
<param>
<name>Sentence</name>
<key>debug_seq</key>
<value>"HELLO WORLD"</value>
<type>string</type>
</param>
<param>
<name>Inject Errors</name>
<key>errors</key>
<type>enum</type>
<option>
<name>Yes</name>
<key>True</key>
</option>
<option>
<name>No</name>
<key>False</key>
</option>
</param>
<param>
<name>Error probability</name>
<key>p</key>
<value>0.1</value>
<type>real</type>
</param>
<param>
<name>Sequence Pause (millis)</name>
<key>seq_pause_ms</key>
<value>1000</value>
<type>int</type>
</param>
<source>
<name>out</name>
<type>message</type>
</source>
</block>

View File

@ -0,0 +1,27 @@
id: satnogs_morse_decoder
label: Morse Decoder
parameters:
- id: unrecognized_char
label: Unrecognized character
dtype: int
default: ord('#')
- id: min_frame_len
label: Minimum Message Length
dtype: int
default: 5
inputs:
- id: in
domain: message
outputs:
- id: out
domain: message
templates:
imports: import satnogs
make: satnogs.morse_decoder(${unrecognized_char}, ${min_frame_len})
file_format: 1

View File

@ -1,32 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Morse Decoder</name>
<key>satnogs_morse_decoder</key>
<import>import satnogs</import>
<make>satnogs.morse_decoder($unrecognized_char, $min_frame_len)</make>
<param>
<name>Unrecognized character</name>
<key>unrecognized_char</key>
<value>ord('#')</value>
<type>int</type>
</param>
<param>
<name>Minimum frame length</name>
<key>min_frame_len</key>
<value>3</value>
<type>int</type>
</param>
<sink>
<name>in</name>
<type>message</type>
</sink>
<source>
<name>out</name>
<type>message</type>
</source>
</block>

View File

@ -0,0 +1,37 @@
id: satnogs_multi_format_msg_sink
label: Message Sink
parameters:
- id: format
label: Output Format
dtype: int
options: [0, 1, 2]
option_labels: ['Binary', 'Hex annotation', 'Binary annotation']
default: 0
- id: timestamp
label: Timestamping
dtype: bool
default: False
- id: outstream
label: Output
dtype: enum
options: ['False', 'True']
option_labels: ['File', 'STDOUT']
default: 'True'
- id: filepath
label: File
dtype: file_save
hide: ${ 'all' if outstream == 'True' else 'none' }
inputs:
- id: in
domain: message
templates:
imports: import satnogs
make: satnogs.multi_format_msg_sink(${format}, ${timestamp}, ${outstream}, ${filepath})
file_format: 1

View File

@ -1,65 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Multi Format Message Sink</name>
<key>satnogs_multi_format_msg_sink</key>
<import>import satnogs</import>
<make>satnogs.multi_format_msg_sink($format, $timestamp, $outstream, $filename)</make>
<param>
<name>Output format</name>
<key>format</key>
<type>enum</type>
<option>
<name>Binary</name>
<key>0</key>
</option>
<option>
<name>Hex annotated</name>
<key>1</key>
</option>
<option>
<name>Binary annotated</name>
<key>2</key>
</option>
</param>
<param>
<name>Output Timestamp</name>
<key>timestamp</key>
<type>enum</type>
<option>
<name>No</name>
<key>False</key>
</option>
<option>
<name>Yes</name>
<key>True</key>
</option>
</param>
<param>
<name>Output Result</name>
<key>outstream</key>
<type>enum</type>
<option>
<name>STDOUT</name>
<key>True</key>
<opt>t:stdout</opt>
</option>
<option>
<name>File</name>
<key>False</key>
<opt>t:file</opt>
</option>
</param>
<param>
<name>File</name>
<key>filename</key>
<value></value>
<type>file_save</type>
<hide>#if $outstream.t == "file" then 'none' else 'all'#</hide>
</param>
<sink>
<name>in</name>
<type>message</type>
</sink>
</block>

View File

@ -0,0 +1,38 @@
id: satnogs_noaa_apt_sink
label: NOAA APT Sink
parameters:
- id: filename_png
label: Output PNG Filename
dtype: file_save
- id: width
label: Image Width
dtype: int
default: 2080
- id: height
label: Image Height
dtype: int
default: 1800
- id: sync
label: Synchronize
dtype: bool
default: True
- id: flip
label: Flip Image
dtype: bool
default: False
inputs:
- label: in
domain: stream
dtype: float
templates:
imports: import satnogs
make: satnogs.noaa_apt_sink(${filename_png}, ${width}, ${height}, ${sync}, ${flip})
file_format: 1

View File

@ -1,58 +0,0 @@
<?xml version="1.0"?>
<block>
<name>NOAA APT Sink</name>
<key>satnogs_noaa_apt_sink</key>
<import>import satnogs</import>
<make>satnogs.noaa_apt_sink($filename_png, $width, $height, $sync, $flip)</make>
<param>
<name>Output PNG Filename</name>
<key>filename_png</key>
<value></value>
<type>file_save</type>
</param>
<param>
<name>PNG width</name>
<key>width</key>
<value>2080</value>
<type>int</type>
</param>
<param>
<name>PNG height</name>
<key>height</key>
<value>1800</value>
<type>int</type>
</param>
<param>
<name>Synchronize</name>
<key>sync</key>
<value>False</value>
<type>bool</type>
<option>
<name>Yes</name>
<key>True</key>
</option>
<option>
<name>No</name>
<key>False</key>
</option>
</param>
<param>
<name>Flip Image</name>
<key>flip</key>
<value>False</value>
<type>bool</type>
<option>
<name>Yes</name>
<key>True</key>
</option>
<option>
<name>No</name>
<key>False</key>
</option>
</param>
<sink>
<name>in</name>
<type>float</type>
</sink>
</block>

View File

@ -0,0 +1,28 @@
id: satnogs_ogg_encoder
label: OGG Encoder
parameters:
- id: filename
label: File
dtype: file_save
- id: samp_rate
label: Sampling Rate
dtype: int
default: 48000
- id: Quality
label: Image Height
dtype: real
default: 0.8
inputs:
- label: in
domain: stream
dtype: float
templates:
imports: import satnogs
make: satnogs.ogg_encoder(${filename}, ${samp_rate}, ${quality})
file_format: 1

View File

@ -1,32 +0,0 @@
<?xml version="1.0"?>
<block>
<name>OGG Encoder</name>
<key>satnogs_ogg_encoder</key>
<import>import satnogs</import>
<make>satnogs.ogg_encoder($filename, $samp_rate, $quality)</make>
<param>
<name>File</name>
<key>filename</key>
<value></value>
<type>file_save</type>
</param>
<param>
<name>Sampling rate</name>
<key>samp_rate</key>
<type>real</type>
</param>
<param>
<name>Quality</name>
<key>quality</key>
<value>0.8</value>
<type>real</type>
</param>
<sink>
<name>in</name>
<type>float</type>
</sink>
</block>

View File

@ -0,0 +1,29 @@
id: satnogs_ogg_source
label: OGG Source
parameters:
- id: filename
label: File
dtype: file_save
- id: channels
label: Channels
dtype: int
default: 1
- id: repeat
label: Repeat
dtype: bool
default: False
outputs:
- label: out
domain: stream
dtype: float
multiplicity: ${channels}
templates:
imports: import satnogs
make: satnogs.ogg_source(${filename}, ${channels}, ${repeat})
file_format: 1

View File

@ -1,42 +0,0 @@
<?xml version="1.0"?>
<block>
<name>OGG File Source</name>
<key>satnogs_ogg_source</key>
<category>[satnogs]</category>
<import>import satnogs</import>
<make>satnogs.ogg_source($filename, $channels, $repeat)</make>
<param>
<name>File</name>
<key>filename</key>
<value></value>
<type>file_open</type>
</param>
<param>
<name>Channels</name>
<key>channels</key>
<value>1</value>
<type>int</type>
</param>
<param>
<name>Repeat</name>
<key>repeat</key>
<type>enum</type>
<option>
<name>No</name>
<key>False</key>
</option>
<option>
<name>Yes</name>
<key>True</key>
</option>
</param>
<source>
<name>out</name>
<type>float</type>
<nports>$channels</nports>
</source>
</block>

View File

@ -0,0 +1,40 @@
id: satnogs_tcp_rigctl_msg_source
label: Rigctl Message Source (TCP)
parameters:
- id: addr
label: IP Address
dtype: string
default: '127.0.0.1'
- id: port
label: Port
dtype: int
default: 16886
- id: mode
label: Mode
dtype: enum
options: ['False', 'True']
option_labels: ['Client', 'Server']
default: 'False'
- id: interval
label: Update Interval (milliseconds)
dtype: int
default: 1000
- id: mtu
label: MTU
dtype: int
default: 1500
outputs:
- id: freq
domain: message
templates:
imports: import satnogs
make: satnogs.tcp_rigctl_msg_source(${addr}, ${port}, ${mode}, ${interval}, ${mtu})
file_format: 1

View File

@ -1,54 +0,0 @@
<?xml version="1.0"?>
<block>
<name>TCP rigctl Message Source</name>
<key>satnogs_tcp_rigctl_msg_source</key>
<import>import satnogs</import>
<make>satnogs.tcp_rigctl_msg_source($addr, $port, $mode, $interval, $mtu)</make>
<param>
<name>IP Address</name>
<key>addr</key>
<value>"127.0.0.1"</value>
<type>string</type>
</param>
<param>
<name>Port</name>
<key>port</key>
<value>16886</value>
<type>int</type>
</param>
<param>
<name>Mode</name>
<key>mode</key>
<type>enum</type>
<option>
<name>Client</name>
<key>False</key>
</option>
<option>
<name>Server</name>
<key>True</key>
</option>
</param>
<param>
<name>Update interval (ms)</name>
<key>interval</key>
<value>1000</value>
<type>int</type>
</param>
<param>
<name>MTU</name>
<key>mtu</key>
<value>1500</value>
<type>int</type>
</param>
<source>
<name>freq</name>
<type>message</type>
</source>
</block>

View File

@ -0,0 +1,28 @@
id: satnogs_udp_msg_sink
label: UDP Message Sink
parameters:
- id: addr
label: IP Address
dtype: string
default: '127.0.0.1'
- id: port
label: Port
dtype: int
default: 16886
- id: mtu
label: MTU
dtype: int
default: 1500
inputs:
- id: in
domain: message
templates:
imports: import satnogs
make: satnogs.udp_msg_sink(${addr}, ${port}, ${mtu})
file_format: 1

View File

@ -1,32 +0,0 @@
<?xml version="1.0"?>
<block>
<name>UDP Message Sink</name>
<key>satnogs_udp_msg_sink</key>
<import>import satnogs</import>
<make>satnogs.udp_msg_sink($addr, $port, $mtu)</make>
<param>
<name>IP Address</name>
<key>addr</key>
<value>"127.0.0.1"</value>
<type>string</type>
</param>
<param>
<name>UDP port</name>
<key>port</key>
<value>16886</value>
<type>int</type>
</param>
<param>
<name>MTU</name>
<key>mtu</key>
<value>1500</value>
<type>int</type>
</param>
<sink>
<name>in</name>
<type>message</type>
</sink>
</block>

View File

@ -0,0 +1,35 @@
id: satnogs_udp_msg_source
label: UDP Message Source
parameters:
- id: addr
label: IP Address
dtype: string
default: '127.0.0.1'
- id: port
label: Port
dtype: int
default: 16886
- id: mtu
label: MTU
dtype: int
default: 1500
- id: msg_type
label: Message Type
dtype: enum
options: ['0', '1', '2']
option_labels: ['Raw', 'uint32_t', 'int32_t']
default: '0'
outputs:
- id: msg
domain: message
templates:
imports: import satnogs
make: satnogs.udp_msg_source(${addr}, ${port}, ${mtu}, ${msg_type})
file_format: 1

View File

@ -1,51 +0,0 @@
<?xml version="1.0"?>
<block>
<name>UDP Message Source</name>
<key>satnogs_udp_msg_source</key>
<import>import satnogs</import>
<make>satnogs.udp_msg_source($addr, $port, $mtu, $msg_type)</make>
<param>
<name>IP Address</name>
<key>addr</key>
<value>"127.0.0.1"</value>
<type>string</type>
</param>
<param>
<name>UDP port</name>
<key>port</key>
<value>16886</value>
<type>int</type>
</param>
<param>
<name>MTU</name>
<key>mtu</key>
<value>1500</value>
<type>int</type>
</param>
<param>
<name>Message Type</name>
<key>msg_type</key>
<type>enum</type>
<option>
<name>Raw</name>
<key>0</key>
</option>
<option>
<name>uin32_t</name>
<key>1</key>
</option>
<option>
<name>in32_t</name>
<key>2</key>
</option>
</param>
<source>
<name>msg</name>
<type>message</type>
</source>
</block>

View File

@ -0,0 +1,47 @@
id: satnogs_waterfall_sink
label: Waterfall Sink
parameters:
- id: samp_rate
label: Sampling Rate
dtype: real
default: samp_rate
- id: fft_size
label: FFT Size
dtype: int
default: 1024
- id: rps
label: Rows per Second
dtype: int
default: 10
- id: mode
label: Mode
dtype: enum
options: ['0', '1', '2']
option_labels: ['Decimation', 'Max Hold', 'Mean']
default: '1'
- id: center_freq
label: Center Frequency
dtype: real
default: 0.0
- id: filename
label: File
dtype: file_save
inputs:
- label: in
domain: stream
dtype: complex
templates:
imports: import satnogs
make: satnogs.waterfall_sink(${samp_rate}, ${center_freq}, ${rps}, ${fft_size},
${filename}, ${mode})
file_format: 1

View File

@ -1,67 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Waterfall Sink</name>
<key>satnogs_waterfall_sink</key>
<import>import satnogs</import>
<make>satnogs.waterfall_sink($samp_rate, $center_freq, $pps, $fft_size, $filename, $mode)</make>
<param>
<name>Sample Rate</name>
<key>samp_rate</key>
<value>samp_rate</value>
<type>real</type>
</param>
<param>
<name>FFT Size</name>
<key>fft_size</key>
<value>1024</value>
<type>int</type>
</param>
<param>
<name>Pixel Rows per Second</name>
<key>pps</key>
<value>10</value>
<type>int</type>
</param>
<param>
<name>Mode</name>
<key>mode</key>
<type>enum</type>
<option>
<name>Simple decimation</name>
<key>0</key>
</option>
<option>
<name>Max hold</name>
<key>1</key>
</option>
<option>
<name>Mean</name>
<key>2</key>
</option>
</param>
<param>
<name>Center Frequency</name>
<key>center_freq</key>
<value>0.0</value>
<type>real</type>
</param>
<param>
<name>File</name>
<key>filename</key>
<value></value>
<type>file_save</type>
</param>
<sink>
<name>in</name>
<type>complex</type>
</sink>
</block>

View File

@ -0,0 +1,24 @@
id: variable_whitening
label: Whitening
flags: [show_id]
parameters:
- id: mask
label: Mask
dtype: int
- id: seed
label: Seed
dtype: int
- id: order
label: Order
dtype: int
value: ${satnogs.whitening_make(mask, seed, order)}
templates:
imports: import satnogs
var_make: self.${id} = ${id} = satnogs.whitening_make(${mask}, ${seed}, ${order})
file_format: 1

View File

@ -1,35 +0,0 @@
<?xml version="1.0"?>
<block>
<name>Whitening</name>
<key>variable_whitening</key>
<import>import satnogs</import>
<var_make>self.$(id) = $(id) = satnogs.whitening_make($mask, $seed, $order)</var_make>
<var_value>satnogs.whitening_make($mask, $seed, $order)</var_value>
<make></make>
<param>
<name>Ignore Me</name>
<key>value</key>
<value>'ok'</value>
<type>raw</type>
<hide>all</hide>
</param>
<param>
<name>Mask</name>
<key>mask</key>
<type>int</type>
</param>
<param>
<name>Seed</name>
<key>seed</key>
<type>int</type>
</param>
<param>
<name>Order</name>
<key>order</key>
<type>int</type>
</param>
</block>

View File

@ -0,0 +1,11 @@
id: variable_whitening_ccsds
label: Whitening (CCSDS)
flags: [show_id]
value: ${satnogs.whitening.make_ccsds()}
templates:
imports: import satnogs
var_make: self.${id} = ${id} = satnogs.whitening.make_ccsds()
file_format: 1

View File

@ -1,16 +0,0 @@
<?xml version="1.0"?>
<block>
<name>CCSDS Whitening</name>
<key>variable_whitening_ccsds</key>
<import>import satnogs</import>
<var_make>self.$(id) = $(id) = satnogs.whitening.make_ccsds()</var_make>
<var_value>satnogs.whitening.make_ccsds()</var_value>
<make></make>
<param>
<name>Ignore Me</name>
<key>value</key>
<value>'ok'</value>
<type>raw</type>
<hide>all</hide>
</param>
</block>

View File

@ -22,56 +22,55 @@
# Install public header files # Install public header files
######################################################################## ########################################################################
list(APPEND DEBUG_HEADER_FILES list(APPEND DEBUG_HEADER_FILES
morse_debug_source.h cw_encoder.h
debug_msg_source_raw.h debug_msg_source_raw.h
debug_msg_source.h debug_msg_source.h
cw_encoder.h morse_debug_source.h
) )
list(APPEND HEADER_FILES list(APPEND HEADER_FILES
ax100_decoder.h
amsat_duv_decoder.h amsat_duv_decoder.h
api.h api.h
ax25.h ax25.h
ax25_decoder.h
ax25_encoder_mb.h
ax100_decoder.h
base64.h base64.h
coarse_doppler_correction_cc.h
config.h config.h
convolutional_deinterleaver.h convolutional_deinterleaver.h
log.h crc.h
metadata.h
morse_tree.h
morse.h
morse_decoder.h
multi_format_msg_sink.h
ogg_encoder.h
cw_to_symbol.h cw_to_symbol.h
utils.h
udp_msg_source.h
tcp_rigctl_msg_source.h
decoder.h decoder.h
frame_decoder.h
frame_encoder.h
doppler_correction_cc.h doppler_correction_cc.h
doppler_fit.h doppler_fit.h
freq_drift.h frame_decoder.h
upsat_fsk_frame_encoder.h
whitening.h
udp_msg_sink.h
coarse_doppler_correction_cc.h
ax25_encoder_mb.h
qb50_deframer.h
waterfall_sink.h
ogg_source.h
noaa_apt_sink.h
frame_file_sink.h frame_file_sink.h
iq_sink.h freq_drift.h
lrpt_sync.h
lrpt_decoder.h
shift_reg.h
golay24.h golay24.h
ax25_decoder.h
json_converter.h
ieee802_15_4_variant_decoder.h ieee802_15_4_variant_decoder.h
crc.h iq_sink.h
json_converter.h
log.h
lrpt_decoder.h
lrpt_sync.h
metadata.h
morse.h
morse_decoder.h
morse_tree.h
multi_format_msg_sink.h
noaa_apt_sink.h
ogg_encoder.h
ogg_source.h
qb50_deframer.h
shift_reg.h
tcp_rigctl_msg_source.h
udp_msg_sink.h
udp_msg_source.h
upsat_fsk_frame_encoder.h
utils.h
waterfall_sink.h
whitening.h
) )
if(${INCLUDE_DEBUG_BLOCKS}) if(${INCLUDE_DEBUG_BLOCKS})

View File

@ -1,57 +0,0 @@
/* -*- c++ -*- */
/*
* gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
*
* Copyright (C) 2016, Libre Space Foundation <http://librespacefoundation.org/>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef INCLUDED_SATNOGS_FRAME_ENCODER_H
#define INCLUDED_SATNOGS_FRAME_ENCODER_H
#include <satnogs/api.h>
#include <gnuradio/sync_block.h>
namespace gr {
namespace satnogs {
/*!
* \brief <+description of block+>
* \ingroup satnogs
*
*/
class SATNOGS_API frame_encoder : virtual public gr::sync_block {
public:
typedef boost::shared_ptr<frame_encoder> sptr;
/*!
* \brief Return a shared_ptr to a new instance of satnogs::frame_encoder.
*
* To avoid accidental use of raw pointers, satnogs::frame_encoder's
* constructor is in a private implementation
* class. satnogs::frame_encoder::make is the public interface for
* creating new instances.
*/
static sptr
make(bool append_preamble, bool ecss_encap,
const std::string &dest_addr, uint8_t dest_ssid, const std::string &src_addr,
uint8_t src_ssid);
};
} // namespace satnogs
} // namespace gr
#endif /* INCLUDED_SATNOGS_FRAME_ENCODER_H */

View File

@ -55,7 +55,6 @@ list(APPEND satnogs_sources
doppler_correction_cc_impl.cc doppler_correction_cc_impl.cc
doppler_fit.cc doppler_fit.cc
frame_decoder_impl.cc frame_decoder_impl.cc
frame_encoder_impl.cc
frame_file_sink_impl.cc frame_file_sink_impl.cc
freq_drift.cc freq_drift.cc
golay24.cc golay24.cc
@ -96,6 +95,7 @@ add_dependencies(gnuradio-satnogs fec)
target_link_libraries(gnuradio-satnogs PUBLIC target_link_libraries(gnuradio-satnogs PUBLIC
${Boost_LIBRARIES} ${Boost_LIBRARIES}
Boost::chrono
gnuradio::gnuradio-runtime gnuradio::gnuradio-runtime
gnuradio::gnuradio-fft gnuradio::gnuradio-fft
gnuradio::gnuradio-blocks gnuradio::gnuradio-blocks
@ -144,7 +144,7 @@ list(APPEND test_satnogs_sources
qa_golay24.cc qa_golay24.cc
) )
# Anything we need to link to for the unit tests go here # Anything we need to link to for the unit tests go here
list(APPEND GR_TEST_TARGET_DEPS gnuradio-satnogs Boost::chrono) list(APPEND GR_TEST_TARGET_DEPS gnuradio-satnogs)
if(NOT test_satnogs_sources) if(NOT test_satnogs_sources)
MESSAGE(STATUS "No C++ unit tests... skipping") MESSAGE(STATUS "No C++ unit tests... skipping")

View File

@ -1,75 +0,0 @@
/* -*- c++ -*- */
/*
* gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
*
* Copyright (C) 2016, Libre Space Foundation <http://librespacefoundation.org/>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <gnuradio/io_signature.h>
#include "frame_encoder_impl.h"
namespace gr {
namespace satnogs {
frame_encoder::sptr
frame_encoder::make(bool append_preamble, bool ecss_encap,
const std::string &dest_addr, uint8_t dest_ssid,
const std::string &src_addr, uint8_t src_ssid)
{
return gnuradio::get_initial_sptr(
new frame_encoder_impl(append_preamble, ecss_encap, dest_addr,
dest_ssid, src_addr, src_ssid));
}
/*
* The private constructor
*/
frame_encoder_impl::frame_encoder_impl(bool append_preamble,
bool ecss_encap,
const std::string &dest_addr,
uint8_t dest_ssid,
const std::string &src_addr,
uint8_t src_ssid) :
gr::sync_block("frame_encoder", gr::io_signature::make(0, 0, 0),
gr::io_signature::make(0, 0, 0))
{
}
/*
* Our virtual destructor.
*/
frame_encoder_impl::~frame_encoder_impl()
{
}
int
frame_encoder_impl::work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
{
// Do <+signal processing+>
// Tell runtime system how many output items we produced.
return noutput_items;
}
} /* namespace satnogs */
} /* namespace gr */

View File

@ -1,49 +0,0 @@
/* -*- c++ -*- */
/*
* gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
*
* Copyright (C) 2016, Libre Space Foundation <http://librespacefoundation.org/>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef INCLUDED_SATNOGS_FRAME_ENCODER_IMPL_H
#define INCLUDED_SATNOGS_FRAME_ENCODER_IMPL_H
#include <satnogs/frame_encoder.h>
namespace gr {
namespace satnogs {
class frame_encoder_impl : public frame_encoder {
private:
// Nothing to declare in this block.
public:
frame_encoder_impl(bool append_preamble, bool ecss_encap,
const std::string &dest_addr, uint8_t dest_ssid,
const std::string &src_addr, uint8_t src_ssid);
~frame_encoder_impl();
// Where all the action really happens
int
work(int noutput_items, gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
};
} // namespace satnogs
} // namespace gr
#endif /* INCLUDED_SATNOGS_FRAME_ENCODER_IMPL_H */

View File

@ -22,14 +22,15 @@
This is the GNU Radio SATNOGS module. Place your Python package This is the GNU Radio SATNOGS module. Place your Python package
description here (python/__init__.py). description here (python/__init__.py).
''' '''
from __future__ import unicode_literals
import sys import sys
# import swig generated symbols into the satnogs namespace # import swig generated symbols into the satnogs namespace
try: try:
# this might fail if the module is python-only # this might fail if the module is python-only
from satnogs_swig import * from .satnogs_swig import *
from hw_settings import * from .hw_settings import *
from utils import * from .utils import *
except ImportError as err: except ImportError as err:
sys.stderr.write("Failed to import SatNOGS ({})\n".format(err)) sys.stderr.write("Failed to import SatNOGS ({})\n".format(err))
sys.stderr.write("Consider first to run 'sudo ldconfig'\n") sys.stderr.write("Consider first to run 'sudo ldconfig'\n")

View File

@ -39,7 +39,10 @@ include(GrPython)
######################################################################## ########################################################################
# Setup swig generation # Setup swig generation
######################################################################## ########################################################################
set(GR_SWIG_INCLUDE_DIRS $<TARGET_PROPERTY:gnuradio::runtime_swig,INTERFACE_INCLUDE_DIRECTORIES>) set(GR_SWIG_INCLUDE_DIRS
$<TARGET_PROPERTY:gnuradio::runtime_swig,INTERFACE_INCLUDE_DIRECTORIES>
)
set(GR_SWIG_TARGET_DEPS gnuradio::runtime_swig) set(GR_SWIG_TARGET_DEPS gnuradio::runtime_swig)
set(GR_SWIG_LIBRARIES gnuradio-satnogs) set(GR_SWIG_LIBRARIES gnuradio-satnogs)
@ -50,6 +53,11 @@ else()
set(INCLUDE_DEBUG_BLOCKS_BOOL_VAL 0) set(INCLUDE_DEBUG_BLOCKS_BOOL_VAL 0)
endif() endif()
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/satnogs_swig.py.in
${CMAKE_CURRENT_BINARY_DIR}/satnogs_swig.py
@ONLY)
if(${INCLUDE_DEBUG_BLOCKS}) if(${INCLUDE_DEBUG_BLOCKS})
set(SATONGS_SWIG_FILES set(SATONGS_SWIG_FILES
satnogs_swig0 satnogs_swig0
@ -61,13 +69,24 @@ else()
) )
endif() endif()
set(GR_SWIG_DOC_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../include)
foreach(swigfile ${SATONGS_SWIG_FILES}) foreach(swigfile ${SATONGS_SWIG_FILES})
set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/${swigfile}_doc.i) set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/${swigfile}_doc.i)
GR_SWIG_MAKE(${swigfile} ${swigfile}.i) set(GR_SWIG_DOC_DIRS
GR_SWIG_INSTALL(TARGETS ${swigfile} DESTINATION ${GR_PYTHON_DIR}/satnogs) ${CMAKE_CURRENT_SOURCE_DIR}/../include
list(APPEND SWIGFILES ${swigfile}.i) ${CMAKE_CURRENT_BINARY_DIR}/../include
list(APPEND SWIGDOCFILES ${CMAKE_CURRENT_BINARY_DIR}/${swigfile}_doc.i) )
set(GR_SWIG_LIBRARIES gnuradio-satnogs)
GR_SWIG_MAKE(${swigfile} ${swigfile}.i)
GR_SWIG_INSTALL(
TARGETS ${swigfile}
DESTINATION ${GR_PYTHON_DIR}/satnogs
)
list(APPEND SWIGFILES ${swigfile}.i)
list(APPEND SWIGDOCFILES ${CMAKE_CURRENT_BINARY_DIR}/${swigfile}_doc.i)
endforeach(swigfile) endforeach(swigfile)
install( install(
@ -75,4 +94,9 @@ install(
${SWIGFILES} ${SWIGFILES}
${SWIGDOCFILES} ${SWIGDOCFILES}
DESTINATION ${GR_INCLUDE_DIR}/satnogs/swig DESTINATION ${GR_INCLUDE_DIR}/satnogs/swig
)
GR_PYTHON_INSTALL(
FILES ${CMAKE_CURRENT_BINARY_DIR}/satnogs_swig.py
DESTINATION ${GR_PYTHON_DIR}/satnogs
) )

View File

@ -1,8 +1,8 @@
#! /usr/bin/python #! /usr/bin/python3
# #
# gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module # gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
# #
# Copyright (C) 2018 # Copyright (C) 2018, 2019
# Libre Space Foundation <http://librespacefoundation.org/> # Libre Space Foundation <http://librespacefoundation.org/>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
@ -19,6 +19,6 @@
# along with this program. If not, see <http://www.gnu.org/licenses/> # along with this program. If not, see <http://www.gnu.org/licenses/>
# #
from satnogs_swig0 import * from .satnogs_swig0 import *
if @INCLUDE_DEBUG_BLOCKS_BOOL_VAL@: if @INCLUDE_DEBUG_BLOCKS_BOOL_VAL@:
from satnogs_debug_swig import * from .satnogs_debug_swig import *

View File

@ -26,13 +26,10 @@
#include "satnogs/decoder.h" #include "satnogs/decoder.h"
#include "satnogs/doppler_correction_cc.h" #include "satnogs/doppler_correction_cc.h"
#include "satnogs/frame_decoder.h" #include "satnogs/frame_decoder.h"
#include "satnogs/frame_encoder.h"
#include "satnogs/upsat_fsk_frame_encoder.h"
#include "satnogs/whitening.h" #include "satnogs/whitening.h"
#include "satnogs/udp_msg_sink.h" #include "satnogs/udp_msg_sink.h"
#include "satnogs/coarse_doppler_correction_cc.h" #include "satnogs/coarse_doppler_correction_cc.h"
#include "satnogs/ax25_encoder_mb.h" #include "satnogs/ax25_encoder_mb.h"
#include "satnogs/qb50_deframer.h"
#include "satnogs/waterfall_sink.h" #include "satnogs/waterfall_sink.h"
#include "satnogs/ogg_encoder.h" #include "satnogs/ogg_encoder.h"
#include "satnogs/ogg_source.h" #include "satnogs/ogg_source.h"
@ -78,15 +75,9 @@ GR_SWIG_BLOCK_MAGIC2(satnogs, tcp_rigctl_msg_source);
%include "satnogs/frame_decoder.h" %include "satnogs/frame_decoder.h"
GR_SWIG_BLOCK_MAGIC2(satnogs, frame_decoder); GR_SWIG_BLOCK_MAGIC2(satnogs, frame_decoder);
%include "satnogs/frame_encoder.h"
GR_SWIG_BLOCK_MAGIC2(satnogs, frame_encoder);
%include "satnogs/doppler_correction_cc.h" %include "satnogs/doppler_correction_cc.h"
GR_SWIG_BLOCK_MAGIC2(satnogs, doppler_correction_cc); GR_SWIG_BLOCK_MAGIC2(satnogs, doppler_correction_cc);
%include "satnogs/upsat_fsk_frame_encoder.h"
GR_SWIG_BLOCK_MAGIC2(satnogs, upsat_fsk_frame_encoder);
%include "satnogs/udp_msg_sink.h" %include "satnogs/udp_msg_sink.h"
GR_SWIG_BLOCK_MAGIC2(satnogs, udp_msg_sink); GR_SWIG_BLOCK_MAGIC2(satnogs, udp_msg_sink);
@ -96,9 +87,6 @@ GR_SWIG_BLOCK_MAGIC2(satnogs, coarse_doppler_correction_cc);
%include "satnogs/ax25_encoder_mb.h" %include "satnogs/ax25_encoder_mb.h"
GR_SWIG_BLOCK_MAGIC2(satnogs, ax25_encoder_mb); GR_SWIG_BLOCK_MAGIC2(satnogs, ax25_encoder_mb);
%include "satnogs/qb50_deframer.h"
GR_SWIG_BLOCK_MAGIC2(satnogs, qb50_deframer);
%include "satnogs/waterfall_sink.h" %include "satnogs/waterfall_sink.h"
GR_SWIG_BLOCK_MAGIC2(satnogs, waterfall_sink); GR_SWIG_BLOCK_MAGIC2(satnogs, waterfall_sink);