Beispiel #1
0
        private void vectorDecodeButton_Click(object sender, EventArgs e)
        {
            if (!Regex.IsMatch(mVectorTextBox.Text, "^[0-9]{1,}$"))
            {
                mLengthVectorLabel.Text = $"m should be a numeric value";
                return;
            }

            _mVector = int.Parse(mVectorTextBox.Text);

            mLengthVectorLabel.Text = $"Expected vector length is {Vector.GetExpectedVectorLength(_mVector)}";

            this.Refresh();

            if (_encodedVector.Bits.Length != vectorFromChannelText.Text.Length)
            {
                vectorFromChannelError.Text = $"Length of vector to decode should be {_encodedVector.Bits.Length}." +
                                              $" Actual length is {vectorFromChannelText.Text.Length}";
                return;
            }

            if (!Regex.IsMatch(vectorFromChannelText.Text, "^[0-1]{1,}$"))
            {
                vectorFromChannelError.Text = $"Vector from channel should contain 0s and 1s";
                return;
            }

            vectorFromChannelError.Text = "";

            _vectorFromChannel = new Vector(vectorFromChannelText.Text.Select(c => int.Parse(c.ToString())).ToArray(), _mVector);
            var decodedVector = _vectorHelpers.DecodeVector(_vectorFromChannel);

            decodedVectorLabel.Visible = true;
            decodedVectorText.Visible  = true;
            decodedVectorText.Text     = decodedVector.ToString();
        }