„DAQMX kártya példaprogram” változatai közötti eltérés

A Fizipedia wikiből
(Visszavontam Fuge (vita | szerkesztései) szerkesztését (oldid: 8472))
18. sor: 18. sor:
 
using System.Text;
 
using System.Text;
 
using System.Windows.Forms;
 
using System.Windows.Forms;
//a kovetkezo harom using direktivat hozza kell adni a fejlechez
+
//a kovetkezo ket using direktivat hozza kell adni a fejlechez
//az NI es ZedGraph referenciat hozza kell adni a projecthez
+
//az NI referenciat hozza kell adni a projecthez          
using ZedGraph;                   
+
 
using NationalInstruments.DAQmx;
 
using NationalInstruments.DAQmx;
 
using System.IO;
 
using System.IO;
62. sor: 61. sor:
 
//Bemeneti csatorna letrehozasa:  
 
//Bemeneti csatorna letrehozasa:  
 
InTask.AIChannels.CreateVoltageChannel("Dev1/ai0", "",
 
InTask.AIChannels.CreateVoltageChannel("Dev1/ai0", "",
                     AITerminalConfiguration.Rse, Minimumvoltage, Maximumvoltage,
+
                     AITerminalConfiguration.Differential, Minimumvoltage, Maximumvoltage,
 
                     AIVoltageUnits.Volts);
 
                     AIVoltageUnits.Volts);
 
reader = new AnalogSingleChannelReader(InTask.Stream);
 
reader = new AnalogSingleChannelReader(InTask.Stream);
87. sor: 86. sor:
 
         private void Form1_FormClosed(object sender, FormClosedEventArgs e)
 
         private void Form1_FormClosed(object sender, FormClosedEventArgs e)
 
         {
 
         {
             destroy();
+
             //eroforrasok felszabaditasa           
 +
    OutTask.Dispose();
 +
    InTask.Dispose();
 
         }
 
         }
        //eroforrasok felszabaditasa
+
        //Form bezarasakor hivjuk meg!
+
private void destroy()
+
{
+
OutTask.Dispose();
+
InTask.Dispose();
+
}
+
 
     }
 
     }
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>

A lap 2018. február 16., 16:47-kori változata

CSharp DAQMX.png

A Form tartalma:

  • Button startButton;
  • Button readButton;
  • TextBox inputBox;

Megjegyzés: a kártya azonosítója ("DevXX") a MAX listájában ellenőrizhető. Az alábbi kódban a "Dev1" stringet át kell írni a megfelelő értékre, amennyiben szükséges.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
//a kovetkezo ket using direktivat hozza kell adni a fejlechez
//az NI referenciat hozza kell adni a projecthez           
using NationalInstruments.DAQmx;
using System.IO;
 
namespace DAQMX
{
    public partial class Form1 : Form
    {
        //Global valtozok
        private Task OutTask;    //kimeneti Task: Dev1/ao0
        private AnalogSingleChannelWriter writer;  
        private Task InTask;    //bemeneti Task: Dev1/ai0
        private AnalogSingleChannelReader reader;
 
        double Minimumvoltage = 0;
        double Maximumvoltage = 5;
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            //a masodik gomb le van tiltva, amig nem nyomjuk meg a felsot
            readButton.Enabled=false;
        }
 
	//Inicializalas a meres megkezdese elott
	//peldaul gombnyomasra 
        private void startButton_Click(object sender, System.EventArgs e)
        {
			//Kimenet
			OutTask = new Task();  //Task konstruktora
			//Kimeneti csatorna letrehozasa: 
			OutTask.AOChannels.CreateVoltageChannel("Dev1/ao0", "",
                    Minimumvoltage, Maximumvoltage,
                    AOVoltageUnits.Volts);		
			writer = new AnalogSingleChannelWriter(OutTask.Stream);
			//Bemenet
			InTask = new Task();  //Task konstruktora
			//Bemeneti csatorna letrehozasa: 
			InTask.AIChannels.CreateVoltageChannel("Dev1/ai0", "",
                    AITerminalConfiguration.Differential, Minimumvoltage, Maximumvoltage,
                    AIVoltageUnits.Volts);		
			reader = new AnalogSingleChannelReader(InTask.Stream);
                        //miutan inicializaltuk a merest, megnyomhatjuk a masodik gombot is
                        readButton.Enabled=true;
	}
        private void readButton_Click(object sender, System.EventArgs e)
        {
                        Double input = 0;
                        //a feszultseg kiadasat es visszaolvasasat az alabbi fuggveny vegzi
                        input=write_And_Read();
                        //az eredmeny kiirasa
                        inputBox.Text=input.ToString("0.000");
        }
        //data nagysagu feszultseg kiadasa
        //es a bemenet beolvasasa
	private Double write_And_Read()
	{
			Double data=0.2;   //mindig 0 es 5V kozott!
			writer.WriteSingleSample(true,data);
                        //a fuggveny a beolvasott ertekkel ter vissza
			return reader.ReadSingleSample();
	}
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            //eroforrasok felszabaditasa            
	    OutTask.Dispose();
	    InTask.Dispose();
        }
 
     }
}