Gå til innhold

generere en strøm av random sensor verdier?


Anbefalte innlegg

Er ganske fersk i C# så sliter veldig nå. :hm:

Lager et program som simulerer funskjonen til en DAQ(Data Aqusition)

Skal egentlig ha 6-analoge sensorer og 3-digitale som skal generere kontinuerlig strøm av tilfeldige målinger. Analoge er i området 0-1V og digitale er selvsagt enten 0 eller 1.

Har lekt litt med dette, men møtt veggen egentlig. 

 

Det jeg lurer på er egnetlig relativt enkelt for en erfaren programmerer. 

Jeg ønsker å lage en Array av 10 sensorer som generer tilfeldige anmaloge verdier 0-1V og boolske 0 eller 1 states.

I tillegg ønsker jeg tid og dato når de repsektive sensorene har generert verdiene. 

 

Jeg har greid å feks få dato og tid til å komm i tekstboks, men kun ved at jeg trykker en knapp. Hvordan får jeg det automatisk i det jeg kompilerer applikasjonen??

 

Under er programmet mitt, altså Windows Form og Sensor klassen jeg har opprettet.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace DAQ_Simulator
{
    public partial class Form1 : Form
    {


        int counter; 
        int maxSid = 10;
        string sTxt;
        private DateTime datetime;
        
      
public Form1()
        {
            InitializeComponent();
        }




        private void displaySensorData(object sender, EventArgs e)
        {
            // Create an array of 10 sensor objects
            Sensor[] sObj = new Sensor[10];




            for (counter = 0; counter < maxSid; counter++)
            {
                sObj[counter] = new Sensor(counter);
            }
            
            for (counter = 0; counter < 10; counter++)
            {
                
                sTxt = sObj[counter].GetValue().ToString("F3");
             }
          
           /* Random slumpGenerator = new Random();
            // Or whatever limits you want... Next() returns a double
            int tal = slumpGenerator.Next(0, 100);
             textSensorValues.Text = tal.ToString();*/
      
        }
        private void groupSampl_Enter(object sender, EventArgs e)
        {


        }


        private void textSampling_TextChanged(object sender, EventArgs e)
        {
            
        }


        private void btnSampling_Click(object sender, EventArgs e)
        {
    
        }


        private void groupLogg_Enter(object sender, EventArgs e)
        {


        }


        private void txtLogging_TextChanged(object sender, EventArgs e)
        {


        }


        private void labelLoggingText_Click(object sender, EventArgs e)
        {


        }


        private void btnLogging_Click(object sender, EventArgs e)
        {


        }


        private void labelSensorValues_Click(object sender, EventArgs e)
        {


        }


        private void textSensorValues_TextChanged(object sender, EventArgs e)
        {
           
        }


        private void btnStart_Click(object sender, EventArgs e)
        {


            datetime = DateTime.Now;
            string time = datetime.Hour + ":" + datetime.Minute + ":" + datetime.Second;
            textSensorValues.Text = time;
        }


        private void timer1_Tick(object sender, EventArgs e)
        {
           
        }
    }
}
 

Her er Sensor klassen min:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace DAQ_Simulator
{
    public class Sensor
    {
        double dVal;
        int sId;
        
        Random rSensVal;


        public Sensor(int id)
        {
            sId = id;
            rSensVal = new Random(id);
            dVal = 0.0F;
     
        }


        public double GetValue()
        {
            dVal += rSensVal.NextDouble();
            return dVal;
        }
        public int GetSensId()
        {
            return sId;
        }
    }
}

Håper noen kan ta en titt  :ohmy:

 

 

 

Endret av Tesla1856
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...