Example #1
0
        public IActionResult SelfShrinkingGenerate([FromBody] LfsrGeneratorsViewModel viewModel)
        {
            var numOfRegisters = viewModel.Registers.Length;

            Lfsr[] registers = new Lfsr[numOfRegisters];

            for (int i = 0; i < numOfRegisters; i++)
            {
                registers[i] = new Lfsr(viewModel.Registers[i]);
                registers[i].SetFeedbackFunction(viewModel.FeedbackFunctions[i]);
            }

            SelfShrinkingGenerator generator = new SelfShrinkingGenerator(registers);

            SeriesMode mode = (SeriesMode)viewModel.Mode;

            try
            {
                switch (mode)
                {
                case SeriesMode.Binary:
                {
                    var data = generator.GenerateBitsAsChars(viewModel.Length);
                    var r    = LfsrHelper.GetRegisterAsStringArray(generator.Registers);
                    return(Json(new { data = new string(data), registers = r }));
                }

                case SeriesMode.Hex:
                {
                    var data = generator.GenerateBytes(viewModel.Length);
                    var r    = LfsrHelper.GetRegisterAsStringArray(generator.Registers);
                    return(Json(new { data = BitConverter.ToString(data), registers = r }));
                }

                case SeriesMode.Base64:
                {
                    var data = generator.GenerateBytes(viewModel.Length);
                    var r    = LfsrHelper.GetRegisterAsStringArray(generator.Registers);
                    return(Json(new { data = data, registers = r }));
                }
                }
            }
            catch (Exception e)
            {
                return(BadRequest(new { Result = false, Message = e.Message }));
            }



            return(Json(""));
        }
Example #2
0
        public IActionResult SelfDecimationGenerate([FromBody] LfsrGeneratorsViewModel viewModel)
        {
            var numOfRegisters = viewModel.Registers.Length;

            Lfsr[] registers = new Lfsr[numOfRegisters];

            for (int i = 0; i < numOfRegisters; i++)
            {
                registers[i] = new Lfsr(viewModel.Registers[i]);
                registers[i].SetFeedbackFunction(viewModel.FeedbackFunctions[i]);
            }

            SelfDecimationGenerator generator = new SelfDecimationGenerator(registers);

            generator.K_value = (int)viewModel.K_value;
            generator.D_value = (int)viewModel.D_value;

            SeriesMode mode = (SeriesMode)viewModel.Mode;

            switch (mode)
            {
            case SeriesMode.Binary:
            {
                var data = generator.GenerateBitsAsChars(viewModel.Length);
                var r    = LfsrHelper.GetRegisterAsStringArray(generator.Registers);
                return(Json(new { data = new string(data), registers = r }));
            }

            case SeriesMode.Hex:
            {
                var data = generator.GenerateBytes(viewModel.Length);
                var r    = LfsrHelper.GetRegisterAsStringArray(generator.Registers);
                return(Json(new { data = BitConverter.ToString(data), registers = r }));
            }

            case SeriesMode.Base64:
            {
                var data = generator.GenerateBytes(viewModel.Length);
                var r    = LfsrHelper.GetRegisterAsStringArray(generator.Registers);
                return(Json(new { data = data, registers = r }));
            }
            }

            return(Json(""));
        }