Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
39880bb
Bump tar from 6.1.0 to 6.1.11 in /yamcs-web/src/main/webapp
dependabot[bot] Sep 2, 2021
1482573
Allow specification of generation time in set parameter value requests
Sep 18, 2021
d13ce8e
Merge pull request #606 from merose/master
xpromache Sep 21, 2021
f01b487
Merge pull request #596 from yamcs/dependabot/npm_and_yarn/yamcs-web/…
xpromache Sep 21, 2021
1d825ed
Bump nth-check from 2.0.0 to 2.0.1 in /yamcs-web/src/main/webapp
dependabot[bot] Sep 21, 2021
676e2e1
Merge pull request #607 from yamcs/dependabot/npm_and_yarn/yamcs-web/…
xpromache Sep 21, 2021
6490f09
remove unneeded argument
xpromache Oct 9, 2021
ebffb73
Delete old overlapping segments in ParameterArchive
xpromache Oct 9, 2021
4f47db7
Fix realtime parameter archive filler
xpromache Oct 9, 2021
acbec97
RealtimeFiller fixes
xpromache Oct 12, 2021
3c98215
docs update
xpromache Oct 20, 2021
a7c41d7
allow configuring the number of threads serving HTTP requests
xpromache Oct 20, 2021
483ee52
Add dimension info to parameter MDB calls
fqqb Oct 12, 2021
cf8f668
Upgrade web deps
fqqb Oct 19, 2021
51941fa
Set TC sequence number equal to stack execution counter
fqqb Oct 20, 2021
2a260f4
Merge pull request #623 from fqqb/misc
xpromache Oct 20, 2021
edc55c1
Prepare release yamcs-5.5.4
xpromache Oct 20, 2021
5b90104
Prepare next development iteration
xpromache Oct 20, 2021
b0b9a2c
Fix args not visible in "Command History" view
fqqb Oct 20, 2021
16a617c
Prepare release yamcs-5.5.5
xpromache Oct 20, 2021
33126f6
Prepare next development iteration
xpromache Oct 25, 2021
e1ae05e
fixed typo
xpromache Nov 4, 2021
faf43de
added some logging
xpromache Nov 6, 2021
4275710
Fix #628. Fix segment queue and realtime archiver problems
Nov 1, 2021
233b5f7
Merge branch 'merose-bugfix/yamcs-628-segment-queue-fixes'
xpromache Nov 6, 2021
4ce8672
Move dependency version to root pom
fqqb Nov 6, 2021
f68ec0e
Fix Sphinx 3 incompatibility with recent docutils
fqqb Nov 6, 2021
4082ce0
Spreadsheet MDB improvements
xpromache Nov 11, 2021
f83cebf
Added the checkSequence argument to CfsPacketPreprocessor
mbenson1 Jan 25, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 13 additions & 2 deletions Changelog
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
Version 5.5.4
- fixed the CLTU randomization sequence to conform to CCSDS 231.0 issue 4 when LDPC coding is enabled.
Version 5.5.5 released 20-Oct-2021
- yamcs-web: fixed display of command arguments in the command history

Version 5.5.4 released 20-Oct-2021
- Fixed the CLTU randomization sequence to conform to CCSDS 231.0 issue 4 when LDPC coding is enabled.
- Accept numeric value of an enumeration command argument
- Fixed lost frame count calculation
- Allow DataSource=ground for parameters
- Fixed CFDP reliable option not showing
- Fixed duplicate data in the parameter archive
- Allow specification of generation time in set parameter value requests
- minor tweaks and fixes


Version 5.5.3 released 30-Jul-2021
- first version of the Yamcs Timeline
Expand Down
2 changes: 1 addition & 1 deletion distribution/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<parent>
<groupId>org.yamcs</groupId>
<artifactId>yamcs</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>
</parent>

<artifactId>distribution</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Sphinx==3.0.3
Sphinx
sphinxcontrib-fulltoc
protobuf
pyyaml
Expand Down
16 changes: 11 additions & 5 deletions docs/server-manual/links/ccsds-frame-processing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,12 @@ clcwStream (string)
Can be used to specify the name of the stream where the Command Link Control Words (CLCW) will be sent. The CLCW is the mechanism used by COP-1 to acknolwedge uplinked frames. For TM and USLP frames, there is an OCF flag part of the frame header indicating the presence or not of the CLCW. For AOS frames it has to be configured with the ``ocfPresent`` flag below.
If present, the CLCW is also extracted from idle frames (i.e. frames that are inserted when no data needs to be transmitted in order to keep the constant bitrate required for downlink).

goodFrameStream (string)
If specified, the good frames will be sent on a stream with that name. The stream will be created if it does not exist.

badFrameStream (string)
If specified, the bad frames will be sent on a stream with that name. Bad frames are conisdered as those that fail decoding for various reasons: length in the header does not match the size of the data received, frame version does not match, bad CRC, bad spacecraft id, bad vcid.

virtualChannels (map)
**Required.** Used to specify the Virtual Channel specific configuration.

Expand Down Expand Up @@ -139,6 +145,7 @@ packetPreprocessorClassName and packetPreprocessorArgs

vcaHandlerClassName:
**Required if the service = VCA** Specifies the name of the class which handles data for this virtual channel. The class has to implement :javadoc:`~org.yamcs.tctm.ccsds.VcDownlinkHandler` interface. Optionally it can implement :javadoc:`~org.yamcs.tctm.Link` interface to appear as a data link (e.g. in yamcs-web). An example implementation of such class can be found in the ccsds-frames example project.



Telecommand Frame Processing
Expand Down Expand Up @@ -206,6 +213,9 @@ virtualChannels (map)

errorDetection (string)
One of ``NONE`` or ``CRC16``. Specifies the error detection scheme used. If present, the last 2 bytes of the frame will contain an error control field.

frameMaxRate (double)
maximum number of command frames to send per second. This option is specific to the UDP TC link.

For each Virtual Channel in the ``virtualChannels`` map, the following parameters can be used:

Expand Down Expand Up @@ -242,11 +252,7 @@ cop1TxLimit (integer)
bdAbsolutePriority (false)
If COP-1 is enabled, this specifies that the BD frames have absolute priority over normal AD frames. This means that if there are a number of AD frames ready to be uplinked and a TC with ``cop1Bypass`` flag is received (see below for an explanation of this flag), it will pass in front of the queue so ti will be the first frame uplinked (once the multiplexer decides to uplink frames from this Virtual Channel). This flag only applies when the COP-1 state is active, if the COP-1 synchnoziation has not taken place, the BD frames are uplinked anyway (because all AD frames are waiting).

goodFrameStream (string)
If specified, the good frames will be sent on a stream with that name. The stream will be created if it does not exist.

badFrameStream (string)
If specified, the bad frames will be sent on a stream with that name. Bad frames are conisdered as those that fail decoding for various reasons: length in the header does not match the size of the data received, frame version does not match, bad CRC, bad spacecraft id, bad vcid.



Priority Schemes
Expand Down
3 changes: 3 additions & 0 deletions docs/server-manual/services/global/http-server.rst
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,9 @@ webSocket (map)
cors (map)
Configure cross-origin resource sharing for the HTTP API. Detailed below. If unset, CORS is not supported.

nThreads (int)
Configure the number of threads that will serve HTTP requests. 0 (default) means two times the number of CPU cores.


WebSocket sub-configuration
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down
2 changes: 1 addition & 1 deletion examples/ccsds-frames/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.yamcs.examples</groupId>
<artifactId>examples</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>
</parent>

<artifactId>ccsds-frames</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion examples/cfdp/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.yamcs.examples</groupId>
<artifactId>examples</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>
</parent>

<artifactId>cfdp</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion examples/perftest1/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.yamcs.examples</groupId>
<artifactId>examples</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>
</parent>

<artifactId>perftest1</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion examples/perftest2/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.yamcs.examples</groupId>
<artifactId>examples</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>
</parent>

<artifactId>perftest2</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion examples/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.yamcs</groupId>
<artifactId>yamcs</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>
</parent>

<groupId>org.yamcs.examples</groupId>
Expand Down
2 changes: 1 addition & 1 deletion examples/pus/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.yamcs.examples</groupId>
<artifactId>examples</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>
</parent>

<artifactId>pus</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion examples/replication1/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.yamcs.examples</groupId>
<artifactId>examples</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>
</parent>

<artifactId>replication1</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion examples/replication2/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.yamcs.examples</groupId>
<artifactId>examples</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>
</parent>

<artifactId>replication2</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion examples/replication3/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.yamcs.examples</groupId>
<artifactId>examples</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>
</parent>

<artifactId>replication3</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion examples/simulation/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.yamcs.examples</groupId>
<artifactId>examples</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>
</parent>

<artifactId>simulation</artifactId>
Expand Down
2 changes: 2 additions & 0 deletions examples/simulation/src/main/yamcs/etc/yamcs.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# System-wide services
services:
- class: org.yamcs.http.HttpServer
args:
nThreads: 0

#instances (or domains). One yarch database will be created for each of them
# instance specific properties go into the file yamcs.{instance}.yaml
Expand Down
2 changes: 1 addition & 1 deletion examples/snippets/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.yamcs.examples</groupId>
<artifactId>examples</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>
</parent>

<artifactId>snippets</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion examples/templates/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.yamcs.examples</groupId>
<artifactId>examples</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>
</parent>

<artifactId>templates</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion packet-viewer/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<parent>
<groupId>org.yamcs</groupId>
<artifactId>yamcs</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>
</parent>

<artifactId>packet-viewer</artifactId>
Expand Down
7 changes: 6 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<groupId>org.yamcs</groupId>
<artifactId>yamcs</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>

<packaging>pom</packaging>

Expand Down Expand Up @@ -160,6 +160,11 @@
<artifactId>janino</artifactId>
<version>2.7.6</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.python</groupId>
<artifactId>jython-standalone</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion simulator/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.yamcs</groupId>
<artifactId>yamcs</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>
</parent>

<artifactId>simulator</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion yamcs-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.yamcs</groupId>
<artifactId>yamcs</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>
</parent>

<artifactId>yamcs-api</artifactId>
Expand Down
9 changes: 8 additions & 1 deletion yamcs-api/src/main/proto/yamcs/protobuf/mdb/mdb.proto
Original file line number Diff line number Diff line change
Expand Up @@ -294,9 +294,16 @@ message ArgumentMemberInfo {
optional ArgumentTypeInfo type = 6;
}

message ParameterDimensionInfo {
optional int64 fixedValue = 1;
optional ParameterInfo parameter = 2;
optional int64 slope = 3;
optional int64 intercept = 4;
}

message ArrayInfo {
optional ParameterTypeInfo type = 1;
optional int32 dimensions = 2;
repeated ParameterDimensionInfo dimensions = 3;
}

message UsedByInfo {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,10 @@ message SetParameterValueRequest {

// The new value.
optional Value value = 4;

// The generation time of the value. If specified, must be a date
// string in ISO 8601 format.
optional google.protobuf.Timestamp generationTime = 5;
}

message BatchGetParameterValuesRequest {
Expand All @@ -342,6 +346,10 @@ message BatchSetParameterValuesRequest {
message SetParameterValueRequest {
optional NamedObjectId id = 1;
optional Value value = 2;

// The generation time of the value. If specified, must be a date
// string in ISO 8601 format.
optional google.protobuf.Timestamp generationTime = 3;
}

// Yamcs instance name.
Expand Down
2 changes: 1 addition & 1 deletion yamcs-client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<parent>
<groupId>org.yamcs</groupId>
<artifactId>yamcs</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>
</parent>

<artifactId>yamcs-client</artifactId>
Expand Down
Binary file modified yamcs-core/mdb/refmdb.xls
Binary file not shown.
7 changes: 6 additions & 1 deletion yamcs-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<parent>
<groupId>org.yamcs</groupId>
<artifactId>yamcs</artifactId>
<version>5.5.4-SNAPSHOT</version>
<version>5.5.6-SNAPSHOT</version>
</parent>

<artifactId>yamcs-core</artifactId>
Expand Down Expand Up @@ -80,6 +80,11 @@
<artifactId>jython-standalone</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
Expand Down
6 changes: 5 additions & 1 deletion yamcs-core/src/main/java/org/yamcs/http/HttpServer.java
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,8 @@ public class HttpServer extends AbstractYamcsService {
// we want to give the possiblity to make request-scoped instances
private Map<String, Supplier<Handler>> extraHandlers = new HashMap<>();

private int nThreads;

@Override
public Spec getSpec() {
Spec gpbSpec = new Spec();
Expand Down Expand Up @@ -191,6 +193,7 @@ public Spec getSpec() {
spec.mutuallyExclusive("tlsKey", "bindings");

spec.requireTogether("tlsCert", "tlsKey");
spec.addOption("nThreads", OptionType.INTEGER).withDefault(0);
return spec;
}

Expand Down Expand Up @@ -264,6 +267,7 @@ public void init(String yamcsInstance, String serviceName, YConfiguration config
HttpHeaderNames.AUTHORIZATION, HttpHeaderNames.ORIGIN);
corsConfig = corsb.build();
}
nThreads = config.getInt("nThreads");

addApi(new AlarmsApi());
addApi(new BucketsApi());
Expand Down Expand Up @@ -359,7 +363,7 @@ public void startServer() throws InterruptedException, SSLException, Certificate

// Note that by default (i.e. with nThreads = 0), Netty will limit the number
// of worker threads to 2*number of CPU cores
workerGroup = new NioEventLoopGroup(0,
workerGroup = new NioEventLoopGroup(nThreads,
new ThreadPerTaskExecutor(new DefaultThreadFactory("YamcsHttpServer")));

for (Binding binding : bindings) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,10 @@ public void setParameterValue(Context ctx, SetParameterValueRequest request, Obs
pv = new PartialParameterValue(p, pid.getPath());
}
pv.setEngValue(v);
if (request.hasGenerationTime()) {
pv.setGenerationTime(TimeEncoding
.fromProtobufTimestamp(request.getGenerationTime()));
}
try {
mgr.updateParameters(Arrays.asList(pv));
} catch (IllegalArgumentException e) {
Expand Down Expand Up @@ -386,6 +390,10 @@ public void batchSetParameterValues(Context ctx, BatchSetParameterValuesRequest
pv = new PartialParameterValue(p, pid.getPath());
}
pv.setEngValue(ValueUtility.fromGpb(r.getValue()));
if (r.hasGenerationTime()) {
pv.setGenerationTime(TimeEncoding
.fromProtobufTimestamp(r.getGenerationTime()));
}
List<org.yamcs.parameter.ParameterValue> l = pvmap.computeIfAbsent(p.getDataSource(),
k -> new ArrayList<>());
l.add(pv);
Expand Down
Loading