private static void AssertBlock(BlockBase block)
        {
            var blockList = new BlockList {
                block
            };

            foreach (var inputNode in block.InputNodes)
            {
                var signalBlock = new GenerateSignalBlock
                {
                    TemplateName     = "Binary",
                    Start            = 0,
                    Finish           = 4,
                    SamplingRate     = 1,
                    IgnoreLastSample = true
                };
                signalBlock.OutputNodes[0].ConnectTo(inputNode);
                blockList.Add(signalBlock);
            }
            blockList.ExecuteAll();
            var clone = block.CloneWithLinks();

            foreach (var outputNode in clone.OutputNodes)
            {
                Assert.IsNotNull(outputNode.Object[0].Samples);
            }

            Assert.IsNotNull(block.Name);
            Assert.IsNotNull(block.Description);
            Assert.IsNotNull(block.ProcessingType);
        }
Esempio n. 2
0
        public void OpenFileByPath(string filename)
        {
            try
            {
                Cursor = Cursors.WaitCursor;
                if (!Path.IsPathRooted(filename))
                {
                    filename = Path.Combine(WaveletStudio.Utils.AssemblyDirectory, filename);
                }

                var documentModel = new DocumentSerializer().Load(filename);
                documentModel.OnSaveChanged = OnSavedChanged;

                var diagramForm = Designer.Document.Elements.Count > 0 ? new DiagramForm() : this;
                diagramForm.Cursor        = Cursors.WaitCursor;
                diagramForm.DocumentModel = documentModel;
                diagramForm.Designer.SetDocument(documentModel.Document);
                diagramForm.CurrentFile = filename;
                diagramForm.Show();
                diagramForm.Focus();
                diagramForm.ConfigureDesigner();
                diagramForm.ZoomTrackBar.Value = Convert.ToInt32(Designer.Document.Zoom * 10);
                AddRecentFile(filename, diagramForm.Designer);

                var blockList = new BlockList();
                foreach (var element in diagramForm.Designer.Document.Elements)
                {
                    if (element is DiagramBlock == false)
                    {
                        continue;
                    }

                    var block = (BlockBase)((DiagramBlock)element).State;
                    block.CurrentDirectory = CurrentDirectory;
                    blockList.Add(block);
                }
                blockList.ExecuteAll();
                diagramForm.Cursor = Cursors.Default;
            }
            catch (Exception exception)
            {
                MessageBox.Show(string.Format("{0}:{1}{2}", DesignerResources.FileCouldntBeOpened, Environment.NewLine, exception.Message), DesignerResources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                Cursor = Cursors.Default;
            }
        }
Esempio n. 3
0
        public double Run(double[] data, int detailLevel)
        {
            var sb = new StringBuilder();

            for (int i = 0; i < data.Length; i++)
            {
                sb.Append(data[i]);
                if (i < data.Length - 1)
                {
                    sb.Append(",");
                }
            }

            string datastring = sb.ToString();

            var textBlock = new ImportFromTextBlock
            {
                Text                    = datastring,
                ColumnSeparator         = ",",
                SignalStart             = 0,
                SignalNameInFirstColumn = false
            };

            var dwtBlock = new DWTBlock
            {
                WaveletName   = "db10",
                Level         = detailLevel,
                ExtensionMode = SignalExtension.ExtensionMode.ZeroPadding
            };


            var b = new BlockList();

            b.Add(textBlock);
            b.Add(dwtBlock);

            textBlock.ConnectTo(dwtBlock);

            b.ExecuteAll();

            int length = dwtBlock.OutputNodes[dwtBlock.OutputNodes.Count - 1].Object[detailLevel - 1].Samples.Length;

            double val = dwtBlock.OutputNodes[dwtBlock.OutputNodes.Count - 1].Object[detailLevel - 1].Samples[length - 1];

            return(val);
        }
Esempio n. 4
0
        public double Run(double[] data, int detailLevel)
        {
            var sb = new StringBuilder();
            for (int i = 0; i < data.Length; i++)
            {
                sb.Append(data[i]);
                if (i < data.Length - 1) sb.Append(",");
            }

            string datastring = sb.ToString();

            var textBlock = new ImportFromTextBlock
            {
                Text = datastring,
                ColumnSeparator = ",",
                SignalStart = 0,
                SignalNameInFirstColumn = false
            };

            var dwtBlock = new DWTBlock
            {
                WaveletName = "db10",
                Level = detailLevel,
                ExtensionMode = SignalExtension.ExtensionMode.ZeroPadding
            };


            var b = new BlockList();
            b.Add(textBlock);
            b.Add(dwtBlock);

            textBlock.ConnectTo(dwtBlock);

            b.ExecuteAll();

            int length = dwtBlock.OutputNodes[dwtBlock.OutputNodes.Count-1].Object[detailLevel - 1].Samples.Length;

            double val = dwtBlock.OutputNodes[dwtBlock.OutputNodes.Count-1].Object[detailLevel - 1].Samples[length - 1];

            return val;
        }
 public static List<double> FFTTransform(List<double> serie)
 {
     //Declaring the blocks
     var inputSeriesBlock = new InputSeriesBlock();
     inputSeriesBlock.SetSeries(serie);
     var outputSeriesBlock = new OutputSeriesBlock();
     var fFTBlock = new FFTBlock
     {
         Mode = ManagedFFTModeEnum.UseLookupTable
     };
     //Connecting the blocks
     inputSeriesBlock.OutputNodes[0].ConnectTo(fFTBlock.InputNodes[0]);
     fFTBlock.OutputNodes[1].ConnectTo(outputSeriesBlock.InputNodes[0]);
     //Appending the blocks to a block list and execute all
     var blockList = new BlockList();
     blockList.Add(inputSeriesBlock);
     blockList.Add(fFTBlock);
     blockList.Add(outputSeriesBlock);
     blockList.ExecuteAll();
     return outputSeriesBlock.GetSeries();
 }
Esempio n. 6
0
        public void TestBlockList()
        {
            var signalBlock1 = new GenerateSignalBlock {
                Cascade = false, Offset = 1, TemplateName = "Binary", Start = 0, Finish = 3, SamplingRate = 1
            };
            var signalBlock2 = new GenerateSignalBlock {
                Cascade = false, Offset = 2, TemplateName = "Binary", Start = 0, Finish = 3, SamplingRate = 1
            };
            var signalBlock3 = new GenerateSignalBlock {
                Offset = 3, TemplateName = "Binary", Start = 0, Finish = 3, SamplingRate = 1
            };
            var convolutionBlock1 = new ConvolutionBlock();
            var convolutionBlock2 = new ConvolutionBlock();
            var blockList         = new BlockList {
                signalBlock1, signalBlock2, signalBlock3, convolutionBlock1, convolutionBlock2
            };

            signalBlock1.ConnectTo(convolutionBlock1);
            signalBlock2.ConnectTo(convolutionBlock1);
            convolutionBlock1.ConnectTo(convolutionBlock2);
            signalBlock2.ConnectTo(convolutionBlock2);
            blockList.ExecuteAll();

            Assert.AreEqual("4 20 45 78 111 114 103 74 33 18", convolutionBlock2.OutputNodes[0].Object.ToString(0));

            convolutionBlock1 = new ConvolutionBlock();
            convolutionBlock1.InputNodes.Clear();
            signalBlock1.ConnectTo(convolutionBlock1);
            signalBlock1.Execute();
            Assert.AreEqual(0, convolutionBlock1.OutputNodes[0].Object.Count);

            convolutionBlock1 = new ConvolutionBlock();
            signalBlock1      = new GenerateSignalBlock();
            signalBlock2.OutputNodes.Clear();
            signalBlock2.ConnectTo(convolutionBlock1);
            signalBlock1.ConnectTo(convolutionBlock1);
            signalBlock1.Execute();
            Assert.AreEqual(0, convolutionBlock1.OutputNodes[0].Object.Count);
        }
Esempio n. 7
0
        private List<double> processOneSeries(List<double> serie)
        {
            //Declaring the blocks
            var inputSeriesBlock = new InputSeriesBlock();
            inputSeriesBlock.SetSeries(serie);
            var dWTBlock = new DWTBlock
            {
                WaveletName = "Daubechies 10 (db10)",
                Level = 1,
                Rescale = false,
                ExtensionMode = WaveletStudio.SignalExtension.ExtensionMode.AntisymmetricWholePoint
            };
            var outputSeriesBlock = new OutputSeriesBlock();

            //Connecting the blocks
            inputSeriesBlock.OutputNodes[0].ConnectTo(dWTBlock.InputNodes[0]);
            dWTBlock.OutputNodes[1].ConnectTo(outputSeriesBlock.InputNodes[0]);

            //Appending the blocks to a block list and execute all
            var blockList = new BlockList();
            blockList.Add(inputSeriesBlock);
            blockList.Add(dWTBlock);
            blockList.Add(outputSeriesBlock);
            blockList.ExecuteAll();
            return outputSeriesBlock.GetSeries();
        }
        public static List<double> WaveletTransform(List<double> serie)
        {
            //Declaring the blocks
            var inputSeriesBlock = new InputSeriesBlock();
            inputSeriesBlock.SetSeries(serie);
            var dWTBlock = new DWTBlock
            {
                WaveletName = "coif4",
                Level = 1,
                Rescale = false,
                ExtensionMode = SignalExtension.ExtensionMode.AntisymmetricWholePoint
            };
            var outputSeriesBlock = new OutputSeriesBlock();

            //Connecting the blocks
            inputSeriesBlock.OutputNodes[0].ConnectTo(dWTBlock.InputNodes[0]);
            // dWTBlock.OutputNodes[1].ConnectTo(dWTBlock2.InputNodes[0]);
            dWTBlock.OutputNodes[1].ConnectTo(outputSeriesBlock.InputNodes[0]);

            //Appending the blocks to a block list and execute all
            var blockList = new BlockList();
            blockList.Add(inputSeriesBlock);
            blockList.Add(dWTBlock);
            //blockList.Add(dWTBlock2);
            blockList.Add(outputSeriesBlock);
            blockList.ExecuteAll();
            return outputSeriesBlock.GetSeries();
        }