public imsSerialParamData getMatchingSPD(int packIDin, string SPDName, Type DataTypeIn, int arrayLenIn)
 {
     if (StaticSPDPackets.Count > 0)
     {
         SerialParameterPacket tempPacket = StaticSPDPackets.Find(x => x.PackID == packIDin);
         if (tempPacket != null)
         {
             imsSerialParamData tempSPD = tempPacket.PacketSPDs.Find(x => ((x.getNodeName == SPDName) && (x.getDataType == DataTypeIn) && (x.getArrayLength == arrayLenIn)));
             if (tempSPD != null)
             {
                 tempSPD.setcyclicCommSysLink = this;
                 tempSPD.setTxPacket(packIDin);
                 return(tempSPD);
             }
             else
             {
                 throw new Exception("Failed to find matching SPD: " + SPDName);
             }
         }
         else
         {
             throw new Exception("Failed to find matching SPD: No Matching Packet ID");
         }
     }
     else
     {
         throw new Exception("Failed to find matching SPD: No Packets Defined");
     }
 }
 public void AddTxPack2TXQueue(SerialParameterPacketHeader txHeaderIn, List <byte> SerialDataOut_in)
 {
     if (StaticSPDPackets.Count > 0)
     {
         SerialParameterPacket tempPacket = StaticSPDPackets.Find(x => x.PackID == txHeaderIn.PacketID);
         if (tempPacket != null)
         {
             AddTxPack2TXQueueNoStatic(txHeaderIn, SerialDataOut_in);
         }
     }
 }