📄 rsencoding.cpp
字号:
#include "rsEncoding.h"
#include "typedef.h"
//#include "codetable.h"
void rsEncoding(Uint8 *pRsEncodingIn,
Uint16 rsEncodingInLengthK,
Uint16 rsParityBytes,
Uint8 *pRsEncodingOut,
Uint16 rsEncodingOutLength)
{
Uint8 shiftRegs[16] = {0}; // shifting register with the maximum length in encoding.
Uint8 lenOfShiftReg = 16; //g_pDlBurstProfile->rsParityBytes;
Uint8 feedBack;
Uint8 i;
Uint16 bitIdx;
for (bitIdx = 0; bitIdx < rsEncodingInLengthK; bitIdx++)
{
feedBack = pRsEncodingIn[bitIdx] ^ shiftRegs[lenOfShiftReg-1];
if (feedBack != 0)
{
for (i = lenOfShiftReg-1; i > 0; i--)
{
shiftRegs[i] = shiftRegs[i-1] ^ AlfaOf[(IndexOf[genFunc[i]] + IndexOf[feedBack])%255];
}
shiftRegs[0] = AlfaOf[(IndexOf[genFunc[0]] + IndexOf[feedBack])%255];
}
else
{
for (i = lenOfShiftReg-1; i > 0;i--)
{
shiftRegs[i] = shiftRegs[i-1];
}
shiftRegs[0] = 0;
}
}
for (i = 0; i < rsParityBytes; i++)
{
pRsEncodingOut[i] = shiftRegs[lenOfShiftReg - 1 - i];
}
for (i = 0; i < rsEncodingInLengthK; i++)
{
pRsEncodingOut[i + rsParityBytes] = pRsEncodingIn[i];
}
// *rsEncodingOutLength = rsEncodingInLengthK + rsParityBytes;
//g_dlTxBurstParam.status = RSENCODE_DONE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -