On neosim01-5 (rhel-8.1, vmmoc, amd64):
once(ish):
make stop clean uninstallin ./scripts/fsw/fsw_cfs_launch.sh radio and CryptoLib where placed before GSW:
echo $SC_NUM " - Create spacecraft network..."
$DNETWORK create $SC_NETNAME 2> /dev/null
echo ""
gnome-terminal --tab --title=$SC_NUM" - Radio Sim" -- $DFLAGS -v $SIM_DIR:$SIM_DIR --name $SC_NUM"-radio-sim" -h radio-sim --network=$SC_NETNAME --network-alias=radio-sim -w $SIM_BIN $DBOX ./nos3-single-simulator $SC_CFG_FILE generic-radio-sim
echo $SC_NUM " - CryptoLib..."
gnome-terminal --tab --title=$SC_NUM" - CryptoLib GSW" -- $DFLAGS -v $BASE_DIR:$BASE_DIR --name $SC_NUM"_cryptolib_gsw" -h cryptolib --network=$SC_NETNAME --network-alias=cryptolib -w $BASE_DIR/gsw/build $DBOX ./support/standalone
echo ""
echo $SC_NUM " - Connect GSW " "${GSW:-cosmos-openc3-operator-1}" " to spacecraft network..."
$DNETWORK connect $SC_NETNAME "${GSW:-cosmos-openc3-operator-1}" --alias cosmos --alias active-gs
echo ""in ./scripts/gsw/gsw_yamcs_launch.sh the invocation of yamcs was changed to:
gnome-terminal --tab --title="YAMCS" -- $DFLAGS -e COMPONENT_DIR=$COMPONENT_DIR \
-v $BASE_DIR:$BASE_DIR -v $USER_NOS3_DIR:$USER_NOS3_DIR -p 127.0.0.1:8090:8090 -p 5012:5012 --name cosmos-openc3-operator-1 \
-h cosmos --network=nos3-core --network-alias=cosmos \
-w $USER_NOS3_DIR/yamcs $DBOX mvn ${MAVEN_HTTPS_PROXY} -Dmaven.repo.local=$USER_NOS3_DIR/.m2/repository -DCOMPONENT_DIR=$COMPONENT_DIR yamcs:runin order to support ${MAVEN_HTTPS_PROXY} and permitting ingress only from 127.0.0.1
then:
make stop clean prep; make config; make; cp /opt/neo/etc/settings.xml ~/.nos3/yamcs/
make launchWhile yamcs timestamp is 0001-01-01:
15:41:27.624 _global [1] WebPlugin Website deployed at http://localhost:8090
15:41:41.967 _global [30] YamcsServer Uncaught exception 'java.lang.ArrayIndexOutOfBoundsException: Index 337 out of bounds for length 13' in thread Thread[UdpTmDataLink-truth42-in,5,main]: [org.yamcs.utils.TaiUtcConverter$DateTimeComponents.<init>(TaiUtcConverter.java:474), org.yamcs.nos3.Truth42PacketPreprocessor.process(Truth42PacketPreprocessor.java:42), org.yamcs.tctm.UdpTmDataLink.getNextPacket(UdpTmDataLink.java:137), org.yamcs.tctm.UdpTmDataLink.run(UdpTmDataLink.java:92), java.base/java.lang.Thread.run(Thread.java:840)]When commanding while yamcs timestamp is 0001-01-01::
15:48:38.535 _global [47] HttpRequestHandler c4f67355 POST /api/processors/nos3/realtime/commands/%2FGENERIC_ADCS%2FCMD%2FGENERIC_ADCS_SET_MODE_CC 200
15:48:38.619 _global [47] RouteHandler 23: Responding '400 Bad Request': Invalid command id
15:48:38.619 _global [47] HttpRequestHandler c4f67355 GET /api/archive/nos3/commands/-64576823461689-192.168.41.1-0 400When yamcs timestamp is 1970-01-01:
18:28:46.084 _global [1] WebPlugin Website deployed at http://localhost:8090
18:28:59.059 _global [30] YamcsServer Uncaught exception 'java.lang.ArrayIndexOutOfBoundsException: Index 109 out of bounds for length 13' in thread Thread[UdpTmDataLink-truth42-in,5,main]: [org.yamcs.utils.TaiUtcConverter$DateTimeComponents.<init>(TaiUtcConverter.java:474), org.yamcs.nos3.Truth42PacketPreprocessor.process(Truth42PacketPreprocessor.java:42), org.yamcs.tctm.UdpTmDataLink.getNextPacket(UdpTmDataLink.java:137), org.yamcs.tctm.UdpTmDataLink.run(UdpTmDataLink.java:92), java.base/java.lang.Thread.run(Thread.java:840)]
18:28:59.059 _global [30] CrashHandler type: UncaughtException, msg: Uncaught exception 'java.lang.ArrayIndexOutOfBoundsException: Index 109 out of bounds for length 13' in thread Thread[UdpTmDataLink-truth42-in,5,main]: [org.yamcs.utils.TaiUtcConverter$DateTimeComponents.<init>(TaiUtcConverter.java:474), org.yamcs.nos3.Truth42PacketPreprocessor.process(Truth42PacketPreprocessor.java:42), org.yamcs.tctm.UdpTmDataLink.getNextPacket(UdpTmDataLink.java:137), org.yamcs.tctm.UdpTmDataLink.run(UdpTmDataLink.java:92), java.base/java.lang.Thread.run(Thread.java:840)]When yamcs timestamp is 2025-10-20:
15:55:46.700 _global [1] WebPlugin Website deployed at http://localhost:8090
15:55:47.697 nos3 [15] InternalStream [sys_param] Exception received when emitting tuple to subscriber StreamParameterProvider [RUNNING]: java.lang.UnsupportedOperationException: Cannot use getSint32Value() for SINT64 valuesWhen commanding is not Sent the following is observed in the yamcs logs:
13:19:37.780 nos3 [31] UdpTcDataLink [radio-out] Error when sending command: : java.lang.NullPointerException: Cannot invoke "java.net.DatagramSocket.send(java.net.DatagramPacket)" because "this.socket" is null
org.yamcs.tctm.UdpTcDataLink.uplinkCommand(UdpTcDataLink.java:71)
org.yamcs.tctm.AbstractThreadedTcDataLink.run(AbstractThreadedTcDataLink.java:142)
java.base/java.lang.Thread.run(Thread.java:840)
13:19:37.780 _global [31] YamcsServer Uncaught exception 'java.lang.RuntimeException: java.lang.NullPointerException: Cannot invoke "java.net.DatagramSocket.send(java.net.DatagramPacket)" because "this.socket" is null' in thread Thread[UdpTcDataLink-radio-out,5,main]: [org.yamcs.tctm.AbstractThreadedTcDataLink.run(AbstractThreadedTcDataLink.java:148), java.base/java.lang.Thread.run(Thread.java:840)]
13:19:37.780 _global [31] CrashHandler type: UncaughtException, msg: Uncaught exception 'java.lang.RuntimeException: java.lang.NullPointerException: Cannot invoke "java.net.DatagramSocket.send(java.net.DatagramPacket)" because "this.socket" is null' in thread Thread[UdpTcDataLink-radio-out,5,main]: [org.yamcs.tctm.AbstractThreadedTcDataLink.run(AbstractThreadedTcDataLink.java:148), java.base/java.lang.Thread.run(Thread.java:840)]
13:19:37.788 _global [45] HttpRequestHandler 0a2b8543 POST /api/processors/nos3/realtime/commands/%2FGENERIC_ADCS%2FCMD%2FGENERIC_ADCS_SET_MODE_CC 200due to cryptolib container not running! cryptolib container shows:
Starting CryptoLib in standalone mode!
CryptoLib using TCP sockets
tcp_init: Connect failed to radio-sim:8010
crypto_standalone_socket_init tc_apply.write failed with status -1 if cryptolib starts but is not receiving commands, it's usually because of this in yamcs:
14:01:38.217 nos3 [33] UdpTcDataLink [radio-out] Failed to startUp: java.net.UnknownHostException: cryptolib: Temporary failure in name resolution
java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(InetAddress.java:934)
java.base/java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1543)
java.base/java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:852)
java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1533)
java.base/java.net.InetAddress.getAllByName(InetAddress.java:1385)
java.base/java.net.InetAddress.getAllByName(InetAddress.java:1306)
java.base/java.net.InetAddress.getByName(InetAddress.java:1256)
org.yamcs.tctm.UdpTcDataLink.startUp(UdpTcDataLink.java:45)
org.yamcs.tctm.AbstractThreadedTcDataLink.run(AbstractThreadedTcDataLink.java:123)
java.base/java.lang.Thread.run(Thread.java:840)a successful cryptolib container should have the following:
Starting CryptoLib in standalone mode!
CryptoLib using TCP sockets
Gcrypt Version: 1.11.0 ERROR: gcrypt version mismatch!
TC Apply
Read, UDP - cryptolib : 6010
Write, TCP - radio-sim : 8010
TM Process
Read, TCP - cryptolib : 8011
Write, UDP - cosmos : 6011
cryptolib> when a command is successfully sent from yamcs via cryptolib the following should be exhibited in cryptolib container:
cryptolib> crypto_standalone_tc_apply - received[9]: 0x19400001000202a700
crypto_standalone_tc_apply - framed[15]: 0x2003000e00c019400001000202a700
crypto_standalone_tc_apply - status = 0, encrypted[29]: 0x2003001c00c0000100000000000000000000000019400001000202a700radio-sim container is running and not exhibiting any errors.