Convert all blocks from XML to YAML
This commit is contained in:
parent
cd5dfc69c9
commit
073df24112
|
@ -1,5 +1,5 @@
|
|||
variables:
|
||||
GITLAB_CI_IMAGE_DEBIAN: 'debian:buster'
|
||||
GITLAB_CI_IMAGE_DEBIAN: 'debian:bullseye'
|
||||
stages:
|
||||
- style
|
||||
- test
|
||||
|
@ -7,6 +7,7 @@ stages:
|
|||
- deploy
|
||||
|
||||
style:
|
||||
image: ${GITLAB_CI_IMAGE_DEBIAN}
|
||||
stage: style
|
||||
before_script:
|
||||
- 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
|
||||
|
||||
test:
|
||||
image: ${GITLAB_CI_IMAGE_DEBIAN}
|
||||
stage: test
|
||||
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:
|
||||
- mkdir -p build
|
||||
- cd build
|
||||
- cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr ..
|
||||
- make
|
||||
- make CTEST_OUTPUT_ON_FAILURE=1 test
|
||||
- make install
|
||||
- ldconfig
|
||||
- python -c "import satnogs"
|
||||
- python3 -c "import satnogs"
|
||||
- rm -rf *
|
||||
- cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DINCLUDE_DEBUG_BLOCKS=OFF -DCMAKE_INSTALL_PREFIX=/usr ..
|
||||
- make
|
||||
- make CTEST_OUTPUT_ON_FAILURE=1 test
|
||||
- make install
|
||||
- ldconfig
|
||||
- python -c "import satnogs"
|
||||
- python3 -c "import satnogs"
|
||||
|
||||
debian:
|
||||
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.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)
|
||||
message(FATAL_ERROR "Boost required to compile satnogs")
|
||||
|
|
|
@ -17,47 +17,46 @@
|
|||
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||
# Boston, MA
|
||||
|
||||
add_subdirectory(satellites)
|
||||
|
||||
list(APPEND debug_blocks
|
||||
satnogs_morse_debug_source.xml
|
||||
satnogs_debug_msg_source.xml
|
||||
satnogs_debug_msg_source_raw.xml
|
||||
satnogs_cw_encoder.xml
|
||||
satnogs_cw_encoder.block.yml
|
||||
satnogs_cw_to_symbol.block.yml
|
||||
satnogs_debug_msg_source_raw.block.yml
|
||||
satnogs_debug_msg_source.block.yml
|
||||
satnogs_morse_debug_source.block.yml
|
||||
)
|
||||
|
||||
list(APPEND enabled_blocks
|
||||
satnogs_block_tree.xml
|
||||
satnogs_amsat_duv_decoder.xml
|
||||
satnogs_ax25_encoder_mb.xml
|
||||
satnogs_ax25_decoder.xml
|
||||
satnogs_frame_decoder.xml
|
||||
satnogs_frame_file_sink.xml
|
||||
satnogs_iq_sink.xml
|
||||
satnogs_json_converter.xml
|
||||
satnogs_lrpt_decoder.xml
|
||||
satnogs_lrpt_sync.xml
|
||||
satnogs_morse_decoder.xml
|
||||
satnogs_multi_format_msg_sink.xml
|
||||
satnogs_ogg_encoder.xml
|
||||
satnogs_cw_to_symbol.xml
|
||||
satnogs_udp_msg_source.xml
|
||||
satnogs_tcp_rigctl_msg_source.xml
|
||||
satnogs_doppler_correction_cc.xml
|
||||
satnogs_udp_msg_sink.xml
|
||||
satnogs_coarse_doppler_correction_cc.xml
|
||||
satnogs_waterfall_sink.xml
|
||||
satnogs_ogg_source.xml
|
||||
satnogs_noaa_apt_sink.xml
|
||||
satnogs_whitening.xml
|
||||
satnogs_whitening_ccsds.xml
|
||||
satnogs_ieee802_15_4_variant_decoder.xml
|
||||
satnogs_ax100_decoder.xml
|
||||
satnogs_amsat_duv_decoder.block.yml
|
||||
satnogs_ax25_decoder.block.yml
|
||||
satnogs_ax25_encoder_mb.block.yml
|
||||
satnogs_ax100_decoder.block.yml
|
||||
satnogs_coarse_doppler_correction_cc.block.yml
|
||||
satnogs_doppler_correction_cc.block.yml
|
||||
satnogs_frame_decoder.block.yml
|
||||
satnogs_frame_file_sink.block.yml
|
||||
satnogs_ieee802_15_4_variant_decoder.block.yml
|
||||
satnogs_iq_sink.block.yml
|
||||
satnogs_json_converter.block.yml
|
||||
satnogs_lrpt_decoder.block.yml
|
||||
satnogs_lrpt_sync.block.yml
|
||||
satnogs_morse_decoder.block.yml
|
||||
satnogs_multi_format_msg_sink.block.yml
|
||||
satnogs_noaa_apt_sink.block.yml
|
||||
satnogs_ogg_encoder.block.yml
|
||||
satnogs_ogg_source.block.yml
|
||||
satnogs_tcp_rigctl_msg_source.block.yml
|
||||
satnogs_udp_msg_sink.block.yml
|
||||
satnogs_udp_msg_source.block.yml
|
||||
satnogs_waterfall_sink.block.yml
|
||||
satnogs_whitening_ccsds.block.yml
|
||||
satnogs_whitening.block.yml
|
||||
satnogs.tree.yml
|
||||
)
|
||||
|
||||
if(${INCLUDE_DEBUG_BLOCKS})
|
||||
list(APPEND enabled_blocks ${debug_blocks})
|
||||
endif()
|
||||
|
||||
install(FILES
|
||||
${enabled_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
|
||||
########################################################################
|
||||
list(APPEND DEBUG_HEADER_FILES
|
||||
morse_debug_source.h
|
||||
cw_encoder.h
|
||||
debug_msg_source_raw.h
|
||||
debug_msg_source.h
|
||||
cw_encoder.h
|
||||
morse_debug_source.h
|
||||
)
|
||||
|
||||
list(APPEND HEADER_FILES
|
||||
ax100_decoder.h
|
||||
amsat_duv_decoder.h
|
||||
api.h
|
||||
ax25.h
|
||||
ax25_decoder.h
|
||||
ax25_encoder_mb.h
|
||||
ax100_decoder.h
|
||||
base64.h
|
||||
coarse_doppler_correction_cc.h
|
||||
config.h
|
||||
convolutional_deinterleaver.h
|
||||
log.h
|
||||
metadata.h
|
||||
morse_tree.h
|
||||
morse.h
|
||||
morse_decoder.h
|
||||
multi_format_msg_sink.h
|
||||
ogg_encoder.h
|
||||
crc.h
|
||||
cw_to_symbol.h
|
||||
utils.h
|
||||
udp_msg_source.h
|
||||
tcp_rigctl_msg_source.h
|
||||
decoder.h
|
||||
frame_decoder.h
|
||||
frame_encoder.h
|
||||
doppler_correction_cc.h
|
||||
doppler_fit.h
|
||||
freq_drift.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_decoder.h
|
||||
frame_file_sink.h
|
||||
iq_sink.h
|
||||
lrpt_sync.h
|
||||
lrpt_decoder.h
|
||||
shift_reg.h
|
||||
freq_drift.h
|
||||
golay24.h
|
||||
ax25_decoder.h
|
||||
json_converter.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})
|
||||
|
|
|
@ -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_fit.cc
|
||||
frame_decoder_impl.cc
|
||||
frame_encoder_impl.cc
|
||||
frame_file_sink_impl.cc
|
||||
freq_drift.cc
|
||||
golay24.cc
|
||||
|
@ -96,6 +95,7 @@ add_dependencies(gnuradio-satnogs fec)
|
|||
|
||||
target_link_libraries(gnuradio-satnogs PUBLIC
|
||||
${Boost_LIBRARIES}
|
||||
Boost::chrono
|
||||
gnuradio::gnuradio-runtime
|
||||
gnuradio::gnuradio-fft
|
||||
gnuradio::gnuradio-blocks
|
||||
|
@ -144,7 +144,7 @@ list(APPEND test_satnogs_sources
|
|||
qa_golay24.cc
|
||||
)
|
||||
# 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)
|
||||
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
|
||||
description here (python/__init__.py).
|
||||
'''
|
||||
from __future__ import unicode_literals
|
||||
import sys
|
||||
|
||||
# import swig generated symbols into the satnogs namespace
|
||||
try:
|
||||
# this might fail if the module is python-only
|
||||
from satnogs_swig import *
|
||||
from hw_settings import *
|
||||
from utils import *
|
||||
from .satnogs_swig import *
|
||||
from .hw_settings import *
|
||||
from .utils import *
|
||||
except ImportError as err:
|
||||
sys.stderr.write("Failed to import SatNOGS ({})\n".format(err))
|
||||
sys.stderr.write("Consider first to run 'sudo ldconfig'\n")
|
||||
|
|
|
@ -39,7 +39,10 @@ include(GrPython)
|
|||
########################################################################
|
||||
# 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_LIBRARIES gnuradio-satnogs)
|
||||
|
@ -50,6 +53,11 @@ else()
|
|||
set(INCLUDE_DEBUG_BLOCKS_BOOL_VAL 0)
|
||||
endif()
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/satnogs_swig.py.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/satnogs_swig.py
|
||||
@ONLY)
|
||||
|
||||
if(${INCLUDE_DEBUG_BLOCKS})
|
||||
set(SATONGS_SWIG_FILES
|
||||
satnogs_swig0
|
||||
|
@ -61,13 +69,24 @@ else()
|
|||
)
|
||||
endif()
|
||||
|
||||
set(GR_SWIG_DOC_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../include)
|
||||
|
||||
|
||||
foreach(swigfile ${SATONGS_SWIG_FILES})
|
||||
set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/${swigfile}_doc.i)
|
||||
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)
|
||||
set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/${swigfile}_doc.i)
|
||||
set(GR_SWIG_DOC_DIRS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../include
|
||||
${CMAKE_CURRENT_BINARY_DIR}/../include
|
||||
)
|
||||
|
||||
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)
|
||||
|
||||
install(
|
||||
|
@ -75,4 +94,9 @@ install(
|
|||
${SWIGFILES}
|
||||
${SWIGDOCFILES}
|
||||
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
|
||||
#
|
||||
# Copyright (C) 2018
|
||||
# Copyright (C) 2018, 2019
|
||||
# Libre Space Foundation <http://librespacefoundation.org/>
|
||||
#
|
||||
# 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/>
|
||||
#
|
||||
|
||||
from satnogs_swig0 import *
|
||||
from .satnogs_swig0 import *
|
||||
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/doppler_correction_cc.h"
|
||||
#include "satnogs/frame_decoder.h"
|
||||
#include "satnogs/frame_encoder.h"
|
||||
#include "satnogs/upsat_fsk_frame_encoder.h"
|
||||
#include "satnogs/whitening.h"
|
||||
#include "satnogs/udp_msg_sink.h"
|
||||
#include "satnogs/coarse_doppler_correction_cc.h"
|
||||
#include "satnogs/ax25_encoder_mb.h"
|
||||
#include "satnogs/qb50_deframer.h"
|
||||
#include "satnogs/waterfall_sink.h"
|
||||
#include "satnogs/ogg_encoder.h"
|
||||
#include "satnogs/ogg_source.h"
|
||||
|
@ -78,15 +75,9 @@ GR_SWIG_BLOCK_MAGIC2(satnogs, tcp_rigctl_msg_source);
|
|||
%include "satnogs/frame_decoder.h"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
GR_SWIG_BLOCK_MAGIC2(satnogs, waterfall_sink);
|
||||
|
||||
|
|
Loading…
Reference in New Issue