Código:
case 0xDC:
{
if(aRecv[0] == 0xC1 && aRecv[1] == 0x07 && (aRecv[2] == 0xD7 || aRecv[2] == 0x15) )
{
BYTE temp[4] = {aRecv[5],aRecv[6],aRecv[3],aRecv[4]};
memcpy(&aRecv[3],temp,4);
}
}break;
case 0xD7:
{
if(aRecv[0] == 0xC1 && aRecv[1] >= 0x0D && aRecv[1] <= 0x19 && aRecv[2] == 0xD7)
{
BYTE temp[9] = {aRecv[7],aRecv[8],aRecv[3],aRecv[4],aRecv[5],aRecv[6],aRecv[10],aRecv[11],aRecv[9]};
memcpy(&aRecv[3],temp,9);
if(aRecv[1] >= 0x10)
{
BYTE temp2[3] = {aRecv[13],aRecv[14],aRecv[12]};
memcpy(&aRecv[12],temp2,3);
}
if(aRecv[1] >= 0x13)
{
BYTE temp2[3] = {aRecv[16],aRecv[17],aRecv[15]};
memcpy(&aRecv[15],temp2,3);
}
if(aRecv[1] >= 0x16)
{
BYTE temp2[3] = {aRecv[19],aRecv[20],aRecv[18]};
memcpy(&aRecv[18],temp2,3);
}
if(aRecv[1] == 0x19)
{
BYTE temp2[3] = {aRecv[22],aRecv[23],aRecv[21]};
memcpy(&aRecv[21],temp2,3);
}
}
}break;
case 0x1E:
{
if(aRecv[0] == 0xC1 && aRecv[1] == 0x0E && aRecv[2] == 0x1E)
{
BYTE temp[10] = {aRecv[5],aRecv[6],aRecv[3],aRecv[4],aRecv[7],aRecv[8],aRecv[9],aRecv[11],aRecv[12],aRecv[10]};
memcpy(&aRecv[3],temp,10);
}
}break;
case 0x19:
{
if(aRecv[0] == 0xC1 && aRecv[1] == 0x09 && aRecv[2] == 0x19)
{
aRecv[1] = 0x08;
aRecv[5] = aRecv[6];
aRecv[6] = aRecv[7];
aRecv[7] = aRecv[8];
aRecv[8] = aRecv[9];
aLen = 0x08;
}
}break;