Convert all blocks from XML to YAML
This commit is contained in:
parent
cd5dfc69c9
commit
073df24112
|
@ -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
|
||||||
|
|
|
@ -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")
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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
|
|
@ -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>
|
|
|
@ -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})
|
||||||
|
|
|
@ -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 */
|
|
||||||
|
|
|
@ -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")
|
||||||
|
|
|
@ -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 */
|
|
||||||
|
|
|
@ -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 */
|
|
||||||
|
|
|
@ -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")
|
||||||
|
|
|
@ -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
|
||||||
)
|
)
|
|
@ -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 *
|
|
@ -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);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue