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)));
        }
Ejemplo n.º 2
0
        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);
        }