All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.yamcs.simulator.pus.PusTmTimePacket Maven / Gradle / Ivy

package org.yamcs.simulator.pus;

import java.nio.ByteBuffer;

import org.yamcs.simulator.SimulatorCcsdsPacket;
import org.yamcs.tctm.ccsds.error.CrcCciitCalculator;

/**
 * PUS time packet APID = 0 no secondary header
 * data is composed of
 * 
 * 
 * rate exponential value - 1 byte = 2 (reporting time every 2^2 = 4 seconds)
 * time - 8 byes
 * crc - 2 bytes
 * 
* * @author nm * */ public class PusTmTimePacket extends SimulatorCcsdsPacket { static final CrcCciitCalculator crcCalculator = new CrcCciitCalculator(); public PusTmTimePacket() { super(ByteBuffer.allocate(6 + 1 + PusTime.LENGTH_BYTES + 2)); setHeader(0, 1, 0, 3, getSeq(0)); bb.position(6); bb.put((byte)2); PusTime now = PusTime.now(); now.encode(bb); fillChecksum(); } public PusTmTimePacket(byte[] packet) { super(packet); } @Override public ByteBuffer getUserDataBuffer() { bb.position(6); return bb.slice(); } @Override protected void fillChecksum() { int crc = crcCalculator.compute(bb.array(), bb.arrayOffset(), bb.capacity() - bb.arrayOffset()-2); bb.position(bb.capacity()-2); bb.putShort((short)crc); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy