Example #1
0
    def __init__(self, *args, **kwargs):
        """Creates a new PacketDefinition."""
        for slot in PacketDefinition.__slots__:
            name = slot[1:] if slot.startswith("_") else slot
            setattr(self, slot, kwargs.get(name, None))

        if self.ccsds:
            import ccsds
            self.ccsds = ccsds.CcsdsDefinition(**self.ccsds)

        if self.derivations is None:
            self.derivations = []
            self.derivationmap = {}
        else:
            self.derivations = handle_includes(self.derivations)
            self.derivationmap = {defn.name: defn for defn in self.derivations}

        if self.fields is None:
            self.fields = []
            self.fieldmap = {}
        else:
            self.fields = handle_includes(self.fields)
            self.fieldmap = {defn.name: defn for defn in self.fields}

        if self.history:
            self.history = PacketHistory(self, names=self.history)

        if self.ccsds:
            self.uid = self.ccsds.apid
        else:
            self.uid = PacketDefinition.NextUID
            PacketDefinition.NextUID += 1

        self._update_globals()
        self._update_bytes(self.fields)
Example #2
0
    def __init__(self, *args, **kwargs):
        """Creates a new Command Definition."""
        for slot in CmdDefn.__slots__:
            name = slot[1:] if slot.startswith("_") else slot
            setattr(self, slot, kwargs.get(name, None))

        if self.ccsds:
            import ccsds
            self.ccsds = ccsds.CcsdsDefinition(**self.ccsds)

        if self.argdefns is None:
            self.argdefns = []