Skip to content

Commit

Permalink
AEPEX: Decoder Created
Browse files Browse the repository at this point in the history
  • Loading branch information
adbr6125 committed Oct 24, 2024
1 parent e51c225 commit 3cf61f1
Show file tree
Hide file tree
Showing 5 changed files with 517 additions and 0 deletions.
20 changes: 20 additions & 0 deletions python/satyaml/AEPEX.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: AEPEX
norad: 98864
data:
&tlm Telemetry:
telemetry:
transmitters:
9k6 FSK downlink:
frequency: 437.325e+6
modulation: FSK
baudrate: 9600
framing: AX.25 G3RUH
data:
- *tlm
19k6 FSK downlink:
frequency: 437.325e+6
modulation: FSK
baudrate: 19200
framing: AX.25 G3RUH
data:
- *tlm
2 changes: 2 additions & 0 deletions python/telemetry/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ GR_PYTHON_INSTALL(
FILES
__init__.py
aausat4.py
aepex_70cm.py
aepex_sw_stat.py
amicalsat.py
au03.py
ax25.py
Expand Down
1 change: 1 addition & 0 deletions python/telemetry/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import construct

from .aausat4 import aausat4
from .aepex_70cm import aepex_70cm
from .amicalsat import amicalsat
from .au03 import au03
from .ax25 import ax25
Expand Down
48 changes: 48 additions & 0 deletions python/telemetry/aepex_70cm.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Copyright 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024 Daniel Estevez
# <[email protected]>
# Copyright 2024 The Regents of the University of Colorado
#
# This file is part of gr-satellites
#
# SPDX-License-Identifier: GPL-3.0-or-later
#

from datetime import datetime
from construct import Adapter, BitsInteger, BitStruct, Container, Enum, \
Flag, GreedyBytes, If, Int8ub, Int16ub, Int32ub, \
Padding, RawCopy, Struct, Switch
from .ax25 import Header
from ..ccsds import space_packet as ccsds_space_packet

from .aepex_sw_stat import aepex_sw_stat

PrimaryHeader = BitStruct(
'VERSION' / BitsInteger(3),
'TYPE' / BitsInteger(1),
'SEC_HDR_FLAG' / BitsInteger(1),
'PKT_APID' / BitsInteger(11),
'SEQ_FLGS' / BitsInteger(2),
'SEQ_CTR' / BitsInteger(14),
'PKT_LEN' / BitsInteger(16),
)

SecondaryHeader = BitStruct(
'SHCOARSE' / BitsInteger(32),
'SHFINE' / BitsInteger(16)
)

aepex_70cm = Struct(
'ax25_header' / Header,
'primary_header' / PrimaryHeader,
'secondary_header' / If(
lambda c: c.primary_header.SEC_HDR_FLAG,
SecondaryHeader
),
'packet' / Switch(
lambda c: c.primary_header.PKT_APID,
{
0x01: aepex_sw_stat
}
)

)
Loading

0 comments on commit 3cf61f1

Please sign in to comment.