public static BinaryMessage correct(BinaryMessage msg){
  int residual=(int)(0xFF & getResidual(msg));
switch (residual) {
case 1:
case 136:
    msg.flip(67);
  break;
case 3:
case 138:
msg.flip(66);
msg.flip(67);
break;
case 2:
case 139:
msg.flip(66);
break;
case 140:
msg.flip(65);
msg.flip(67);
break;
case 153:
msg.flip(67);
break;
case 142:
msg.flip(65);
msg.flip(66);
msg.flip(67);
break;
}
return msg;
}

public static BinaryMessage correct ( BinaryMessage msg ) { int residual = ( int ) ( 0xFF & getResidual ( msg ) ) ; switch ( residual ) { case 1 : case 136 : msg . flip ( 67 ) ; break ; case 3 : case 138 : msg . flip ( 66 ) ; msg . flip ( 67 ) ; break ; case 2 : case 139 : msg . flip ( 66 ) ; break ; case 140 : msg . flip ( 65 ) ; msg . flip ( 67 ) ; break ; case 153 : msg . flip ( 67 ) ; break ; case 142 : msg . flip ( 65 ) ; msg . flip ( 66 ) ; msg . flip ( 67 ) ; break ; } return msg ; }
initial take on error correction . the majority of the errors detected are in the final 2 bits , owing to the forward looking soft bit detection used in the decoder . for right now , correct any messages where the residual indicates that the final 1 or 2 bits are bad .
