/// <summary>
/// XRC校验
/// </summary>
/// <param name="data">二进制数据</param>
/// <param name="datalen">数据长度</param>
/// <param name="sidx">校验开始位置</param>
/// <param name="endidx">校验结束位置</param>
/// <returns></returns>
public byte XORCheck(byte[] inbuf, int datalen, int sidx, int endidx)
{
byte xrc = new byte();
try
{
if (endidx < sidx)
{
endidx += datalen;
}
xrc = inbuf[sidx % datalen];
for (int i = sidx + 1; i < endidx; i++)
{
xrc ^= inbuf[i % datalen];
}
}
catch (Exception ex)
{
DebugOutput.ProcessMessage(string.Format("[ERROR][XORCheck]ex:{0}", ex.ToString()));
}
return xrc;
}