public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { ErroCode code = (ErroCode)value; string color; switch (code) { case ErroCode.Ok: color = "#42ab2a"; break; case ErroCode.ControlBit: color = "#4563CC"; break; case ErroCode.ControllBitError: color = "#8B0000"; break; case ErroCode.ErrorDetected: color = "#d48535"; break; case ErroCode.ErrorNotDetected: color = "#D63220"; break; case ErroCode.ErrorFixed: color = "#294F43"; break; case ErroCode.ControlBitFixed: color = "#242D72"; break; default: return(null); } return(new SolidColorBrush((Color)ColorConverter.ConvertFromString(color))); }
private ErroCode[] SetErrorCodes(byte[] data) { byte[] crc; bool isErrorDetected = !Check(data, out crc); this.Disturbed = new BitArray(BitHelper.ReverseBytes(crc.Concat(data.Skip(keyLength)).ToArray())); var codes = new ErroCode[Encoded.Count]; for (int i = 0; i < keyLength * 8; i++) { if (Decoded[i] == Encoded[i]) { codes[i] = ErroCode.ControlBit; } else { codes[i] = ErroCode.ControllBitError; } } for (int i = 0; i < Decoded.Count - keyLength * 8; i++) { if (isErrorDetected) { codes[i + keyLength * 8] = ErroCode.ErrorDetected; } else { if (Original[i] == Decoded[i + keyLength * 8]) { codes[i + keyLength * 8] = ErroCode.Ok; } else { codes[i + keyLength * 8] = ErroCode.ErrorNotDetected; } } } return(codes); }