Git Product home page Git Product logo

ccsds's People

Contributors

dariol83 avatar lucas-bremond avatar markjohndoyle avatar sv5d avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar

ccsds's Issues

Many objects in the library are not implementing Serializable

As per title.

Caused by: java.io.NotSerializableException: eu.dariolucia.ccsds.tmtc.datalink.pdu.TmTransferFrame

Another example is the eu.dariolucia.ccsds.tmtc.transport.pdu.SpacePacket class that also would require some helper method to handle the annotations.

Protocol abort at high rate

Attached the logs from the ReatMetric system:

INFO: sagr=abc.spack=xyz.fsl-fg=1.cltu=cltu01: State transition from READY to START_PENDING
ago 08, 2020 7:27:41 PM eu.dariolucia.ccsds.sle.utl.si.ServiceInstance setServiceInstanceState
INFO: sagr=abc.spack=xyz.fsl-fg=1.cltu=cltu01: State transition from START_PENDING to ACTIVE
ago 08, 2020 7:27:41 PM eu.dariolucia.ccsds.sle.utl.si.cltu.CltuServiceInstance handleCltuScheduleStatusReportReturn
INFO: sagr=abc.spack=xyz.fsl-fg=1.cltu=cltu01: Schedule status report return received, positive result
ago 08, 2020 7:28:36 PM eu.dariolucia.ccsds.sle.utl.network.tml.TmlChannel protocolErrorDetected
SEVERE: Protocol error detected on channel TmlChannelClient[192.168.0.129:23233]@1579782619 with reason UNKNOWN_TYPE_ID, header=[-53, -9, 29, 0, 32, 0, -80, 39]
ago 08, 2020 7:28:36 PM eu.dariolucia.ccsds.sle.utl.si.ServiceInstance setServiceInstanceState
INFO: sagr=abc.spack=xyz.rsl-fg=1.raf=onlc91: State transition from ACTIVE to UNBOUND
ago 08, 2020 7:28:36 PM eu.dariolucia.reatmetric.driver.spacecraft.sle.RafServiceInstanceManager handleOperation
WARNING: sagr=abc.spack=xyz.rsl-fg=1.raf=onlc91: Discarding unhandled RAF operation: eu.dariolucia.ccsds.sle.generated.ccsds.sle.transfer.service.raf.outgoing.pdus.RafTransferBuffer
ago 08, 2020 7:28:36 PM eu.dariolucia.reatmetric.driver.spacecraft.sle.RafServiceInstanceManager handleOperation
WARNING: sagr=abc.spack=xyz.rsl-fg=1.raf=onlc91: Discarding unhandled RAF operation: eu.dariolucia.ccsds.sle.generated.ccsds.sle.transfer.service.raf.outgoing.pdus.RafTransferBuffer

ago 08, 2020 7:28:36 PM eu.dariolucia.ccsds.sle.utl.network.tml.TmlChannel sendHbtMessage
WARNING: Cannot send HBT on channel TmlChannelClient[192.168.0.129:23233]@1579782619, disconnected
ago 08, 2020 7:28:36 PM eu.dariolucia.reatmetric.driver.spacecraft.sle.SleServiceInstanceManager onPduDecodingError
SEVERE: sagr=abc.spack=xyz.rsl-fg=1.raf=onlc91: SLE PDU decoding error
ago 08, 2020 7:30:29 PM eu.dariolucia.reatmetric.api.transport.AbstractTransportConnector disconnect
INFO: Transport connector sagr=abc.spack=xyz.fsl-fg=1.cltu=cltu01 disconnecting
ago 08, 2020 7:30:29 PM eu.dariolucia.ccsds.sle.utl.si.ServiceInstance setServiceInstanceState
INFO: sagr=abc.spack=xyz.fsl-fg=1.cltu=cltu01: State transition from ACTIVE to STOP_PENDING
ago 08, 2020 7:30:29 PM eu.dariolucia.ccsds.sle.utl.si.ServiceInstance setServiceInstanceState
INFO: sagr=abc.spack=xyz.fsl-fg=1.cltu=cltu01: State transition from STOP_PENDING to READY
ago 08, 2020 7:30:29 PM eu.dariolucia.ccsds.sle.utl.si.ServiceInstance setServiceInstanceState

TC Frames lost once processed in the FopEngine

I'm trying to send the same TC packet as fast as possible (in my example 100 TC packets) that they are encoded in TC frames. It seems that once the TC frame is passed to the FOP engine (eu.dariolucia.ccsds.tmtc.cop1.fop.FopEngine#transmit(eu.dariolucia.ccsds.tmtc.datalink.pdu.TcTransferFrame, int)) it gets lost and the Fop Engine only gives back (via callback) a smaller amount of frames

Transmitted to FOP: 100
Frame out from FOP: 61
CLTU sent (SI):     61

Looking at the FOP implementation it seems that this can return "false" in case the frame is not accepted. What is the correct behavior in this case?

Space packet frames to SLE

Hi @dariol83,
i am currently working on a Validation for Uplink and Downlink for a small, scientific, environmental monitoring Satellite.
For that i need to convert output from a Software Radio to SLE format. The Radio i currently have set up is qRadio from Kratos, but that can be changed if need be. The output from qRadio is provided as CCSDS Space Packets with either Raw or T501 Data Header Type.
I was thinking your TM/TC and SLE Packages might be of great help, since your repository seems to be quite complete, well documented and maintained.
Since it is my first time working with TT&C and i´m only moderately proficient with Java i was hoping maybe you could give me some pointers on how to get started. What general architecture might work, which objects from your packages might be useful or maybe if you know someone, who has already built a similar application.
If it interests you, i could share my repository for the project with you to keep you updated on progress. Also let me know, should you prefer to message privately.
I´d be really grateful for your help and look forward to your answer.
Yours Sincerely,
Nicolas

Convolutional coding support

Hi,

Great project!

Do you support Convolutional coding, Turbo Codes and LDPC (CCSDS 131.0-B-4 Section 3, 6, 7)? If not, is it because of possible performance issues when doing them from Java?

Anyway can be a great addition. Especially if users can do something like this:

new ViterbiDecoder(ConvolutionalAlgorithm.ALG_12_7)

Or something similar. I have it implemented in jradio: https://github.com/dernasherbrezon/jradio/tree/fcb8f5d8cd8cb79376a72e2006c711e523e87016/src/main/java/ru/r2cloud/jradio/fec but it is less structured and doesn't fully cover the spec. I.e. punctured codes, LDPC and Turbo Codes are missing. Thus much harder to add new satellites to the list. Especially commercial.

AOS Bitstream extraction bug

In the AosReceiverVirtualChannel, method extractBitstream: the bitstreamDataPointer must be checked for 0x3FFF value (all valid data) or 0x3FFE (idle data) or none of the two.
In the first case, the returned data shall be the completed size of the AOS data field.
In the second case, the returned data shall be an empty byte.
Otherwise, the returned data shall be as currently computed.

SLE_E_CONFIG error in RCF configuration

Hey I am trying to implement RcF configuration for SLE. I am getting an SLE_E_CONFIG error. I am setting permitted global vcid for rcf too. how can I know due to which parameter I am getting this error?

[Question/Thoughts] Splitting TX and RX over different CFDP layers

Hey Dario,

I was looking into splitting TX and RX over different CFDP layers. Looking through the code, nothing jumped out that would suggest this wouldn't work and the good news is that it does work fine!
Hopefully, this explains it:
image

However, I did have to perform what you might call a little hack, that is, setting the intial availability of the layers for rx and tx on both layers. So even though one layer was only used the tx it need to be flagged available for rx and vice versa for the receiving layer.

This raises the question, is this an abuse of the standard or is it just a little quirk of the lib when creating transactions?
The CfdpTransaction will check it's own rxAllowed/txAllowed flags (isFrozen) so I think these can be set independently after the transaction is created. This means it might just be the fact the library constructs the outgoing (or incoming) transaction using the current availability of only the layer specified by the remote see here

In a split layer scenario with an outgoing transaction there isn't an obvious way to link the rx layer availability to the transaction because there is no way for the local entity to know what layer the remote entity will use to respond. Maybe it can just check if any "local" layer is available for rx on that target remote?

Hope that makse sense!

Help for example TMProcessor

Hi (again),
Despite several hours of efforts, I could not use TMProcessor.java.
I specified --in_port and --definition as argument but nothing occurs.

Somebody has already run that file ? I need some help.

Bests.
Eren

deploy problem?

I've tried packaging it as an executable JAR,But the jar has some problem.

Where can I get the SLE API

Hello, here I go again:
Where can I get the SLE API of ASN1-based? such as the ASN1 file in this java project. Do I need more ASN1 interface files if I want to implement the provider role ?

COP-1 Frame Acking Question

👋

As I was looking at the COP-1 implementation, I stumbled across the following code:

int currentNNR = next.getFrame().getVirtualChannelFrameCount();
Set<Integer> expander = new HashSet<>();
for(int i = 0; i < fopSlidingWindow; ++i) {
    expander.add((currentNNR + 1 + i) % 256); // <-- Why the +1 here?
}
// If the set contains the clcw report, all fine
if(expander.contains((int) clcw.getReportValue())) {
    ...
}

Do you have a rationale for the +1: shouldn't the expander set contain the frame count itself, to be acked?

If fopSlidingWindow = 2, getFrame().getVirtualChannelFrameCount() = 5 and clcw.getReportValue() = 5,
don't we end up with expander = {6, 7}, which does not contain 5 and therefore that frame wouldn't get acked?

I guess I'm probably missing something here, but I thought I'd rather ask ;)

Pretty cool library by the way!

Compilation failure

Hello,
I am not expert in Java but I could not launch the compilation with "mvn clean install". Everytime I have build failed error.
Can anybody explain step by step how to compile it ?

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.