C# Датчик вибрации с использованием внешнего акселерометра - PullRequest
0 голосов
/ 29 января 2020

Прошло почти 4 года с тех пор, как я запрограммировал в c#, поэтому я действительно ржавый. Мне дали проект по созданию программы, которая сможет считывать вибрацию с внешнего датчика вибрации, подключенного через 2x микро-USB-кабель. Однако я могу получить значения x, y вибрации от внешнего устройства; Теперь мне нужно построить необработанные данные, полученные на графике, показывающем амплитуду в зависимости от времени Пример изображения, приведенного! показать амплитуду сырых данных в зависимости от времени . Мне также нужно иметь возможность получать эти построенные точки на графике и экспортировать их в Excel или любые другие средства хранения для последующего анализа. Ребята, пожалуйста, помогите или укажите мне правильное направление. Спасибо Результаты вибрации

Пример кода `

using Hardware.PR49;

using System;

using System.Collections.Generic;

using System.Threading;

namespace PR49SensorExample

{
    class Program

{
    static void Main(string[] args)

    {
        var task = PR49Detection.GetSerialPortSensorInfos();


        if (!task.Wait(5000))
        {
            Console.WriteLine("Searching PR49 timed out.");
            return;
        }

        var all49 = task.Result;

        if (all49.Count == 0)
        {
            Console.WriteLine("No PR49 connected.");
            return;
        }

        var port = all49[0].Port;
        var sensor = new SerialDevice49(port);
        var sources = sensor.SignalSources;
        var xAxisSource = sources[0];
        var yAxisSource = sources[1];
        var xData = new List<double>();
        var yData = new List<double>();

        try
        {
            sensor.Connect();
            sensor.StartDAQ();
        }
        catch
        {
            Console.WriteLine("Failed to connect or start sensor.");
            return;
        }

        while (xData.Count < 20000)
        {
            xData.AddRange(xAxisSource.ReadDecodedData());
            yData.AddRange(yAxisSource.ReadDecodedData());

            Console.WriteLine($"data points: X: {xData.Count}, Y: {yData.Count}");
            Thread.Sleep(200);
        }

        try
        {
            sensor.StopDAQ();
            sensor.Disconnect();
        }
        catch
        {
            Console.WriteLine("Failed to stop or disconnect sensor.");
            return;
        }

        Console.WriteLine("\nSensor stopped.");
        Console.ReadKey();
    }
}
}

`

...