File: sat_3cat_2.py

package info (click to toggle)
gr-satellites 5.8.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 10,836 kB
  • sloc: python: 29,546; cpp: 5,448; ansic: 1,247; sh: 118; makefile: 24
file content (40 lines) | stat: -rw-r--r-- 1,271 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# Copyright 2017,2020 Daniel Estevez <daniel@destevez.net>
#
# This file is part of gr-satellites
#
# SPDX-License-Identifier: GPL-3.0-or-later
#

from gnuradio import gr
import numpy
import pmt


class sat_3cat_2:
    def parse(self, packet):
        data = packet[17:].split()

        status = {b'1': 'Survival', b'2': 'Sun-safe', b'3': 'Nominal',
                  b'4': 'TX', b'5': 'RX', b'6': 'Payload', b'7': 'Payload'}
        adcs = {b'0': 'auto', b'1': 'manual'}
        if data[5] == b'0':
            detumbling = (
                'Detumbling  ({},{},{})nT'.format(
                    float(data[7]), float(data[8]), float(data[9])))
        else:
            detumbling = (
                'SS-nominal  Sun: ({:.2f},{:.2f},{:.2f})'.format(
                    float(data[7]), float(data[8]), float(data[9])))

        string = (
            status[data[0]]
            + '  {:.2f}V  {}mA'.format(int(data[1])/1000.0, int(data[2])) +
            '  EPS: {}ºC   Ant: {}ºC'.format(data[3], data[4]) +
            '  ADCS ' + adcs[data[6]] + '  ' + detumbling +
            '  Control: ({:.1e},{:.1e},{:.1e})V'.format(
                float(data[10]), float(data[11]), float(data[12])))

        return string