Giter Site home page Giter Site logo

ait-dsn's People

Contributors

aywaldron avatar fabianburger avatar futabay avatar jasonmlkang avatar kmarwah avatar lorsposto avatar mejiro-mcqueen avatar mjjoyce avatar nttoole avatar phailey avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ait-dsn's Issues

Requires bliss-core 0.23.0

I'm trying to install AIT-DSN and when I run pip install I get an error that it can't find bliss-core==0.23.0. I'm currently on 0.35.0. Would you recommend reverting to the older version or can I modify the setup script to 0.35.0?

Default SLE config parameters should be functional / provide sane defaults

The current SLE config parameters don't provide sane defaults where options exist.

sle:
            initiator_id: uname
            password: pw
            responder_id: uname
            peer_password: pw
            version: 5
            downlink_frame_type: TMTransFrame
            heartbeat: heartbeat
            deadfactor: deadfactor
            buffer_size: buffer_size
            responder_port: responder_port
            auth_level: auth_level

These have defaults in common.py if they're not present in config.yaml but preference is given to config values. All of these need updated to mirror the default if they're going to be included or they need removed. I'm +1 to including them as an FYI for what can be adjusted.

sle:
            initiator_id: LSE
            # password only matters if we're doing auth and can stay as 'pw'
            password: pw
            responder_id: SSE
            # peer password only matters if we're doing auth and can stay as 'pw'
            peer_password: pw
            version: 5
            downlink_frame_type: TMTransFrame
            heartbeat: 25
            deadfactor: 5
            buffer_size: 256000
            responder_port: 'default'
            auth_level: 'none'

Repo Rename

The current repository name is agency specific and we should considering updating to something more generic. The CCSDS specification implementations that we have are generic and we should reflect that in our naming.

That being said, I don't have any great ideas for generic names at the moment. Let's brainstorm a bit.

Add SLE docs

Add overview of SLE protocols and AIT implementations.

Hostname / Port configuration options

Hostname / port configuration options were removed from the config in 28ae827ee05095216c9e1ef8928eed9d72c4da8c and justification / tracking ticket seems lacking. Investigate and document here or revert if necessary.


Per conversation below, let's update SLE.__init__ to pull from the config as it was before. Default config values can be left as whatever placeholder makes sense.

Default CFDP config paths point to invalid directory structure

The default CFDP config paths evaluate to paths that don't exist in the repo on a clean checkout. We should update the handling of this so that we emit a warning when a path doesn't exist and automatically create it as needed or we should fail loudly and early. Any config that should be kept and versioned (probably the MIB?) should end up in the config/ directory somewhere as well.

            mib:
                path: ../tmp/mib
            outgoing:
                path: ../tmp/outgoing
            incoming:
                path: ../tmp/incoming
            temp:
                path: ../tmp/temp
            pdu:
                path: ../tmp/pdu
            test:
                path: ../tmp/test

Tests break on clean checkout of repo

The majority of the tests fail on a clean checkout due to an assumed directory structure that isn't present.

======================================================================
ERROR: Write MD to file, then read back to header
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/mjjoyce/Coding/AIT/AIT-DSN/bliss/cfdp/test/pdu_test.py", line 131, in test_md_read_write
    write_outgoing_pdu(self.fixture, pdu_filename=test_file, output_directory=TEST_DIRECTORY)
  File "/Users/mjjoyce/Coding/AIT/AIT-DSN/bliss/cfdp/cfdp.py", line 316, in write_outgoing_pdu
    write_to_file(pdu_file_path, bytearray(pdu_bytes))
  File "/Users/mjjoyce/Coding/AIT/AIT-DSN/bliss/cfdp/util.py", line 66, in write_to_file
    with open(out_path, 'wb') as f:
IOError: [Errno 2] No such file or directory: '/Users/mjjoyce/Coding/AIT/ait-dsn/tmp/test/test_md.pdu'

----------------------------------------------------------------------
Ran 14 tests in 0.492s

FAILED (errors=11)

@lorsposto, could you update this so that it uses existing directories and/or makes and cleanups folders as necessary for testing?

Implement AOS Transfer Frames

Small sat missions use AOS transfer frames rather than TM transfer frames.

class AOSTransFrame(object):

  • Configuration of transfer frame also needs to be defined in sle_tlm.yaml
    https://github.com/NASA-AMMOS/AIT-DSN/blob/master/ait/dsn/sle/frames.py
  • TMTransFrame referenced in raf.py and rcf.py - these would need to be changed (also in ait_sle_bridge.py example)
  • RAF sends frame._data to telem socket in RAF._transfer_data_invoc_handler - needs to be changed either by sub-classing or explicitly overwriting self._handlers for that handler type (frame._data is filled in frame class in frames.py)
    tmf = frames.TMTransFrame(tm_data)

Specify multiple DSN hostnames; connect to active one

Currently the AIT SLE protocols require one DSN hostname to connect to. The correct procedure is to take in a list of hostnames, test them for activity, and connect to whichever one is active. Details on how to test for connectivity can be obtained from Michael Stoloff.

Drop packet processing from transfer frames

Frame objects should contain the raw data that was in the frame without splitting it into packets. The _transfer_data_invoc_handler should also be updated to just print all the raw data that was in the transfer frame and not send to the telemetry socket - this handler will be updated at a later point to incorporate independent packet processing.

Update README

README needs the following updates:

  • Rebranding of BLISS to AIT
  • Updating of docs links to ReadTheDocs

TM Transfer Frame Header Parsing is incorrect

TMTransFrame is incorrectly masking out values for the Version and Spacecraft Id fields

Currently

  • version is being masked out of the first byte with 0xA0
  • spacecraft_id is being masked out of the first 2 bytes with 0x3F00

Screen Shot 2018-05-03 at 09.36.55.png

This should be:

  • version should mask out 1100 0000 or 0xC0
  • spacecraft_id should mask out 0011 1111 1111 0000 or 0x3FF0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.