1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| USER_DATA: {
int pos_endof_user_payload = (pos_head_id_crc+(h_userLgth==0?1:0)+userLength);
if(pos_endof_user_payload >= payloadLen) { //index vs size
userDataStatus = UserDataStatus.DATA_ERROR;
break USER_DATA;
}
if(h_userCrcEn) {
if(crc8.calculate(payload, pos_head_id_crc+1, pos_endof_user_payload-pos_head_id_crc) != payload[pos_endof_user_payload+1]) {
userDataStatus = UserDataStatus.CRC_NOK;
break USER_DATA;
} else {
userDataStatus = UserDataStatus.CRC_OK;
}
} else {
userDataStatus = UserDataStatus.NO_CRC;
}
userPayload = new byte[userLength];
for(int i=0; i<userLength; i++) {
userPayload[i] = payload[pos_endof_user_payload-i];
}
} |