예제 #1
0
        public void DataSampleDataFrameTest()
        {
            bool result = false;

            try
            {
                var data = Data();
                DataSampleDataFrame sample = new DataSampleDataFrame(Data());
                result = true;
            }
            catch (InvalidDataFrameException)
            {
            }
            Assert.AreEqual(true, result);
        }
예제 #2
0
 private DataFrame ReturnFrame(Type FrameType, byte[] buffer)
 {
     if (FrameType == typeof(DataFrames.DSO068.CurrConfigDataFrame))
     {
         DataFrames.DSO068.CurrConfigDataFrame CurrConfig = new DataFrames.DSO068.CurrConfigDataFrame(buffer);
         return(CurrConfig);
     }
     else if (FrameType == typeof(DataFrames.DSO112.CurrConfigDataFrame))
     {
         DataFrames.DSO112.CurrConfigDataFrame CurrParam = new DataFrames.DSO112.CurrConfigDataFrame(buffer);
         return(CurrParam);
     }
     else if (FrameType == typeof(CurrParamDataFrame))
     {
         CurrParamDataFrame CurrParam = new CurrParamDataFrame(buffer);
         return(CurrParam);
     }
     else if (FrameType == typeof(DataBlockDataFrame))
     {
         DataBlockDataFrame CurrData = new DataBlockDataFrame(buffer);
         return(CurrData);
     }
     else if (FrameType == typeof(DataSampleDataFrame))
     {
         DataSampleDataFrame CurrData = new DataSampleDataFrame(buffer);
         return(CurrData);
     }
     else if (FrameType == typeof(DataFrames.ScopeControlDataFrames.ScopeReady))
     {
         DataFrames.ScopeControlDataFrames.ScopeReady ready = new DataFrames.ScopeControlDataFrames.ScopeReady(buffer);
         return(ready);
     }
     else
     {
         throw new InvalidOperationException("Wrong object type");
     }
 }
예제 #3
0
파일: Measurements.cs 프로젝트: nrmtmt/DSO
 ///<summary>
 ///Returns scaled measurements from buffer. If buffer is not contain measurements, null is returned.
 ///<param name="data">Raw buffer data</param>
 ///<param name="voltsPerDiv">Voltage per division (in volts)</param>
 ///<param name="pointsPerDiv">Points per division (from scope Config class)</param>
 ///<param name="recordLength">Current scope record length</param>
 ///</summary>
 ///
 public static float[] GetFromBuffer(byte[] data, float voltsPerDiv, int pointsPerDiv, int recordLength, int vertPos, bool VposChangeable)
 {
     try
     {
         var DataFrame = new DataBlockDataFrame(data);
         if (DataFrame != null)
         {
             byte[] rawData = new byte[DataFrame.Data.Count() - 14]; //4 reserved
             for (int i = 5; i < DataFrame.Data.Count() - 9; i++)    //[syncChar][frameID][frameSize][frameSize][frameFunc][data1]...[dataN][8][0][0][0][0][0][0][0][0]
             {
                 rawData[i - 5] = DataFrame.Data[i];
             }
             if (rawData.Count() == recordLength - 5)
             {
                 return(getScaledMeasurements(rawData, voltsPerDiv, pointsPerDiv, vertPos, VposChangeable) ?? null);
             }
         }
     }
     catch (InvalidDataFrameException ex)
     {
         try
         {
             var DataFrame = new DataSampleDataFrame(data);
             if (DataFrame != null)
             {
                 byte[] rawData = new byte[1];
                 rawData[0] = DataFrame.Data[5];
                 return(getScaledMeasurements(rawData, voltsPerDiv, pointsPerDiv, vertPos, VposChangeable) ?? null);
             }
         }
         catch (InvalidDataFrameException ex2)
         {
         }
     }
     return(null);
 }
예제 #4
0
        private void btnApply_Click(object sender, EventArgs e)
        {
            foreach (var cb in this.Controls)
            {
                if (cb is CheckBox)
                {
                    ((CheckBox)cb).Checked = false;
                }
            }

            txtBufferOutput.Clear();
            var port = GetSerialPort();


            if (port != null)
            {
                if (txtEditCommand.Text != "")
                {
                    var         bytes  = txtEditCommand.Text.Split(' ');
                    List <byte> proper = new List <byte>();
                    foreach (var value in bytes)
                    {
                        if (value != "")
                        {
                            proper.Add(byte.Parse(value, System.Globalization.NumberStyles.HexNumber));
                        }
                    }
                    port.Write(proper.ToArray(), 0, proper.ToArray().Count());
                }
                else
                {
                    // WriteFrame((DataFrame)cbxCommandSelect.SelectedItem, port);
                }
                System.Threading.Thread.Sleep(Convert.ToInt16(cbxReadDelay.Text));
                output = InstReadBuffer(port);
                port.Dispose();
                var tempText = "";
                foreach (byte val in output)
                {
                    tempText += val + ", ";
                }
                if (tempText.Length > 0)
                {
                    txtBufferOutput.Text = (tempText.Remove(tempText.Length - 2));
                }
                port.Close();
                port.Dispose();

                try
                {
                    DSO.DataFrames.DSO068.CurrConfigDataFrame config = new DSO.DataFrames.DSO068.CurrConfigDataFrame(output);
                    cbCurrConf.Checked = true;
                }
                catch (InvalidDataFrameException)
                {
                    cbCurrConf.Checked = false;
                }
                try
                {
                    DSO.DataFrames.DSO112.CurrConfigDataFrame config = new DSO.DataFrames.DSO112.CurrConfigDataFrame(output);
                    cbCurrConf.Checked = true;
                }
                catch (InvalidDataFrameException)
                {
                    cbCurrConf.Checked = false;
                }
                try
                {
                    CurrParamDataFrame config = new CurrParamDataFrame(output);
                    SetParamToComboboxes(config);
                    EnableConfigComboboxes(false);
                    cbCurrParam.Checked = true;
                }
                catch (InvalidDataFrameException)
                {
                    cbCurrParam.Checked = false;
                }
                try
                {
                    DataBlockDataFrame config = new DataBlockDataFrame(output);
                    cbDataBlock.Checked = true;
                }
                catch (InvalidDataFrameException)
                {
                    cbDataBlock.Checked = false;
                }
                try
                {
                    DataSampleDataFrame config = new DataSampleDataFrame(output);
                    cbDataSample.Checked = true;
                }
                catch (InvalidDataFrameException)
                {
                    cbDataSample.Checked = false;
                }
                try
                {
                    ScopeReady config = new ScopeReady(output);
                    cbScopeReady.Checked = true;
                }
                catch (InvalidDataFrameException)
                {
                    cbScopeReady.Checked = false;
                }
                try
                {
                    USBScopeModeExited config = new USBScopeModeExited(output);
                    cbExitedScope.Checked = true;
                }
                catch (InvalidDataFrameException)
                {
                    cbExitedScope.Checked = false;
                }
                try
                {
                    CommandAcknowledgedDataFrame config = new CommandAcknowledgedDataFrame(output);
                    cbCommandAck.Checked = true;
                }
                catch (InvalidDataFrameException)
                {
                    cbCommandAck.Checked = false;
                }
            }
        }