Yamcs, CCSDS, and CFS

308 views
Skip to first unread message

Sultan Mesmar

unread,
Aug 9, 2023, 8:50:18 AM8/9/23
to yamcs
Hi,

I'm trying to have CCSDS work with the Yamcs project. For the ccsds-frames example, specifically in the simulator-ccsds mdb, where did you get the packet structure under ccsds-tc?
And regarding CFS, I tried to generate the command first but since it requires function code, I tried to add it to ccsds-tc and I think what I am doing is wrong. What should function code be? (I believe it should be in the secondary header)

If you need any more information to help in answering my question, do not hesitate in contacting me.
Best Regards,
SM

Nicolae Mihalache

unread,
Aug 10, 2023, 11:11:57 AM8/10/23
to ya...@googlegroups.com
The simulator we use in the examples resembles packet structure used in ISS/Columbus (where Yamcs originated). If you want to use it with cFS you can modify the simulator-ccsds.xls, remove everything after timeId and add the function code in there. Pay attention to the "position" field which is the offset in bits from the previous entry.

--
You received this message because you are subscribed to the Google Groups "yamcs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to yamcs+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/yamcs/b4b68e4c-d02c-4877-bb8d-6978fcd95f60n%40googlegroups.com.

Sultan Mesmar

unread,
Aug 29, 2023, 7:06:19 AM8/29/23
to yamcs
Thank you for the reply.

What is timeid supposed to be? and is function code similar to packet-id?

Another question is for the insance.yaml, should I use the org.yamcs.tctm.ccsds.UdpTmFrameLink and  org.yamcs.tctm.ccsds.UdpTcFrameLink? What if I used updtcdatalink and udptmdatalink?

Lastly, will cop-1 work for both options or only the first?

Best Regards,
SM

Nicolae Mihalache

unread,
Aug 29, 2023, 7:31:31 AM8/29/23
to ya...@googlegroups.com
timeid is a parameter they use in ISS to indicate if the time inside the secondary header is the time of the command generation or a future time (to execute the command in the future).
But that has nothing to do with the cFS, you have to get rid of all those parameters.

I plan to have a Yamcs example for cFS in the upcoming months. Then you can just start from there instead of starting from the ISS based simulator. But I cannot give a precise time yet, I'm waiting for a colleague to produce an easy to start cFS simulator.

Sultan Mesmar

unread,
Sep 20, 2023, 6:00:24 AM9/20/23
to yamcs
Thank you for the reply, looking forward to the example.

I have another question regarding CFDP. I added the service to the instance.yaml file, but I'm not sure how the streams work. The example on github used sql. What should I add to make CFDP work?

Best Regards,
SM

Sultan Mesmar

unread,
Sep 27, 2023, 5:18:42 AM9/27/23
to yamcs
Hi,

Did you get a chance in finding an answer to my previous question?

I have another question regarding CFDP. In the yaml file, how does the localEntities and remoteEntities work and can there be one of each?

Best Regards,
SM

Nicolae Mihalache

unread,
Sep 27, 2023, 9:39:22 AM9/27/23
to ya...@googlegroups.com
Hi Sultan,

So I got a standalone copy of cFS but then I discovered it uses a MDB (Mission Database) in EDS (electronic data sheet) format . So I thought it would be nice to load that directly into Yamcs (rather than converting it to XTCE). So I'm doing a loader but it will take a few weeks more.


As for CFDP, did you look at this example:

"entity" is something from the standard - people use that for example when having multiple on-board systems (computers) they allocate an id for each so the CFDP can distinguish between them. You need at least one local and one remote.

Sultan Mesmar

unread,
Oct 10, 2023, 5:31:32 AM10/10/23
to yamcs
Hi,

Thank you for the reply.

I am working on a custom file listing service. The idea is when we click on the refresh button in the file transfer page, we send a command to fetch the files from the device we are using. How can I send a command from the service?

Best Regards,
SM

Loric Vandentempel

unread,
Oct 12, 2023, 4:52:17 AM10/12/23
to yamcs
Hi Sultan,

You can create your own class to plug into the file transfer service to implement your own file listing capabilities: https://docs.yamcs.org/yamcs-server-manual/services/instance/file-listing/

Hope this helps

Kind regards,
Loric

Sultan Mesmar

unread,
Oct 18, 2023, 7:24:42 AM10/18/23
to yamcs
Hi,

Thank you for the previous suggestion.

I was able to deal with my previous issue regarding the file list command. I am currently facing a problem with downloading a file. The CFDP service code uses the "PutRequest" for both upload and download and I cannot seem to understand why. 

The upload works successfully but download doesn't. Is my understanding correct? Is there any reference for this download request or any documentation?

Best Regards,
SM

Loric Vandentempel

unread,
Oct 18, 2023, 7:34:20 AM10/18/23
to yamcs
Hi,
Great to hear.

The download behaviour comes from the CFDP standard (see Proxy Operations: https://public.ccsds.org/Pubs/727x0b5.pdf) which initiates a "metadata-only" upload to the remote entity with the download request embedded. The remote entity then has to respond to it by executing the put request thus uploading the file to the other entity (and additionally issuing a Proxy Put Response, although I believe we do not do anything with this information so it may not be needed for Yamcs).
Hope this clarifies things.

Kind regards,
Loric
Reply all
Reply to author
Forward
0 new messages