Selecting a TC VCID in YAMCS TMTC Datalinks

28 views
Skip to first unread message

Patrick Dohmen

unread,
Apr 2, 2025, 1:56:34 PMApr 2
to yamcs
Hi all,

I am struggling selecting the appropriate VCID when generating a TC in a UDP TC Datalink, configured as described below:

```yaml=
dataLinks:
- name: UDP_FRAME_OUT
class: org.yamcs.tctm.ccsds.UdpTcFrameLink
host: localhost # host and port where to send the frames to
port: 10018
spacecraftId: 0x0016
maxFrameLength: 64
virtualChannels:
- vcId: 5 # VCID_MANAGEMENT
service: "PACKET"
commandPostprocessorClassName: org.yamcs.examples.erminaz.MyCommandPostprocessor
stream: "tc_realtime" # which yamcs stream to get the data from
useCop1: true # enable FOP1 (the transmitter part of COP1, see CCSDS 232.1-B-2) for this VC
clcwStream: "clcw" # the name of the stream where the CLCW is received from, mandatory if FOP1 is used
initialClcwWait: 3600 # how many seconds to wait at startup for an initial CLCW, before going to state 6(initial). If not configured or negative, start directly in state 6
cop1T1: 1
cop1TxLimit: 5
slidingWindowWidth: 50
bdAbsolutePriority: true
mapId: 0
- vcId: 2 # VCID_REQ_TM
service: "PACKET"
commandPostprocessorClassName: org.yamcs.examples.erminaz.MyCommandPostprocessor
stream: "tc_realtime" # which yamcs stream to get the data from
useCop1: true # enable FOP1 (the transmitter part of COP1, see CCSDS 232.1-B-2) for this VC
clcwStream: "clcw" # the name of the stream where the CLCW is received from, mandatory if FOP1 is used
initialClcwWait: 3600 # how many seconds to wait at startup for an initial CLCW, before going to state 6(initial). If not configured or negative, start directly in state 6
cop1T1: 1
cop1TxLimit: 5
slidingWindowWidth: 50
bdAbsolutePriority: true
mapId: 0

When generating the packets the only VCID that is "available" is the first one configured in the settings above!

Is there a way to define which one is used?

Best regards and thanks in advance for any help,
Patrick, DL4PD

Nicolae Mihalache

unread,
Apr 2, 2025, 2:04:10 PMApr 2
to yamcs
Please use a different stream for each vc. You have to define the additional streams in the the streamConfig section. There you can also specify a list of patterns for commands that should go over that stream.
I believe in the latest Yamcs versions you can select the stream on the web interface when sending the command.

Maybe set useCop1: false to start with,  it will be simpler to debug.
Note that if useCop1 is true, the Sent ack will be populated only when the command has been confirmed via COP1. This is confusing and we want to change this behavior but has not yet been implemented.

Patrick Dohmen

unread,
Apr 8, 2025, 11:43:18 AMApr 8
to yamcs
Nicolae,

Thanks for this hint, I've been already expecting something like that.
I will give it a try in the next days!

Best regards,
Patrick, DL4PD
Reply all
Reply to author
Forward
0 new messages