14e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi/* This function wraps around the fixed 8-bit encoder, performing the
24e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * basis transformations necessary to meet the CCSDS standard
34e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi *
44e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * Copyright 2002, Phil Karn, KA9Q
54e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * fixed bug Aug 2007
64e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi * May be used under the terms of the GNU Lesser General Public License (LGPL)
74e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi */
84e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi#include "ccsds.h"
94e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi#include "fec.h"
104e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi
114e213d510f437769f8a28578dd4f786fb7d16c4Bill Yivoid encode_rs_ccsds(data_t *data,data_t *parity,int pad){
124e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi  int i;
134e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi  data_t cdata[NN-NROOTS];
144e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi
154e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi  /* Convert data from dual basis to conventional */
164e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi  for(i=0;i<NN-NROOTS-pad;i++)
174e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi    cdata[i] = Tal1tab[data[i]];
184e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi
194e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi  encode_rs_8(cdata,parity,pad);
204e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi
214e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi  /* Convert parity from conventional to dual basis */
224e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi  for(i=0;i<NROOTS;i++)
234e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi    parity[i] = Taltab[parity[i]];
244e213d510f437769f8a28578dd4f786fb7d16c4Bill Yi}
25