Számítógépes mérésvezérlés

Hasonló dokumentumok
Mérési adatgyűjtés és adatfeldolgozás. BME TTK Fizika Tanszék 2013/2014 tavaszi félév Copyright Geresdi Attila, Halbritter András

Fizika Laboratórium KF 2011/2012 őszi félév. BME TTK Fizika Tanszék

Mérési adatgyűjtés és adatfeldolgozás 2. előadás

Informatika terméktervezőknek

A Microsoft Visual Studio 2005 fejlesztőkörnyezet

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

A C# PROGRAMOZÁSI NYELV

A C# programozási nyelv alapjai

1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt:

Access adatbázis elérése OLE DB-n keresztül

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba

Sorosítás (szerializáció) és helyreállítás. 1. Bináris sorosítás és helyreállítás Szükséges névterek Attribútumok. 1.3.

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben

Johanyák Zsolt Csaba: Grafikus felület programozása. Copyright 2008 Johanyák Zsolt Csaba

BME MOGI Gépészeti informatika 1.

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović

BME MOGI Gépészeti informatika 13.

A szerzõrõl... xi Bevezetés... xiii

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

BME MOGI Gépészeti informatika 18. Grafika, fájlkezelés gyakorló óra. 1. feladat Készítsen alkalmazást az = +

C# gyorstalpaló. Készítette: Major Péter

BME MOGI Gépészeti informatika 6.

Vizuális, eseményvezérelt programozás I.

BME MOGI Gépészeti informatika 7.

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

ESEMÉNY VEZÉRELT ALKALMAZÁSOK FEJLESZTÉSE I. Bevezetés. Készítette: Gregorics Tibor

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

Objektumorientált Programozás III.

Objektumorientált programozás C# nyelven

Bánsághi Anna 2014 Bánsághi Anna 1 of 35

AWK programozás, minták, vezérlési szerkezetek

C#, OOP. Osztályok tervezése C#-ban

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Szoftvertechnológia alapjai Java előadások

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Programozás I. Első ZH segédlet

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

hiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget

BME MOGI Gépészeti informatika 5.

Segítség a megoldáshoz: 1. Készítse el a Window-t az ábrának és az osztálydiagramnak megfelelően.

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

C# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei

II. Programozási technológiák

A C programozási nyelv II. Utasítások. A függvény.

Pénzügyi algoritmusok

Objektum Orientált Programozás IV.

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Objektumorientált programozás C# nyelven

BME MOGI Gépészeti informatika 4.

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Szoftvertervezés és -fejlesztés I.

Objektumorientált Programozás IV.

Programozási nyelvek JAVA EA+GY 1. gyakolat

components : IContainer dx : int dy : int tmidőzítő : Timer toolstripseparator1 : ToolStripSeparator tsmikilépés : ToolStripMenuItem

Programozás 2., II. kötet Windows form alkalmazások

Eseményvezérelt alkalmazások

Ugráló gomb oktatási segédlet Ugráló gomb

Programozási nyelvek Java

Bánsághi Anna 2015 Bánsághi Anna 1 of 31

Programozási nyelvek II.: JAVA

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

INFORMATIKAI ALAPISMERETEK

Kalapácsvetés 2016 szöveges

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

AWK programozás, minták, vezérlési szerkezetek

Programozás BMEKOKAA146. Dr. Bécsi Tamás 10. Előadás

Programozás II. 2. Dr. Iványi Péter

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

2018, Funkcionális programozás

GenerikusOsztály<objektumtípus> objektum = new GenerikusOsztály<objektumtípus>();

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

BME MOGI Gépészeti informatika 14.

Programozási nyelvek II.: JAVA

I. fejezet Hello Világ! Programozás tankönyv. II. Fejezet. Helló Világ! avagy a Miért?-ek elkezdődnek

PROGRAMOZÁS ALAPFELADATOK

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

1. Alapok. Programozás II

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Programozási nyelvek II.: JAVA, 4. gyakorlat

C# 6 - a Gyakorlat Windows Form alkalmazások

Java Programozás 5. Gy: Java alapok. Adatkezelő 1.rész

A Java nyelv. Dialógus ablakok. Elek Tibor

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

A C programozási nyelv I. Bevezetés

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Széchenyi István Egyetem

3. Gyakorlat Ismerkedés a Java nyelvvel

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Segédanyag: Java alkalmazások gyakorlat

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Maximum kiválasztás tömbben

Felhasználó által definiált adattípus

Átírás:

Számítógépes mérésvezérlés Előadók: Gubicza Ágnes, Magyarkuti András BME TTK Fizika Tanszék 2014/2015 tavaszi félév Copyright 2008-2015 Magyarkuti András, Geresdi Attila, Halbritter András

Tartalom Alapok Objektumorientált programozás koncepciója Mérésvezérlés számítógéppel Adatok feldolgozása, ábrázolása Programozási feladatok Visual Studio 2005 környezetben Grafikus felület fejlesztése Soros porti műszer programozása Kommunikáció a műszerrel Adatok grafikus megjelenítése Összetett mérésvezérlési és -kiértékelési feladat önálló megoldása Digitális multiméter használata Mérőkártya programozása USB porton

Honlap Információk http://fizipedia.bme.hu/index.php/számítógépes_mérésvezérlés Visual Studio 2005 Beszerzés egyetemi hálózatról: ftp://szoftver.eik.bme.hu/microsoftcampus/regi_verziok/visualstudio/visualstudio2005/ (javasolt: *files.zip, ne *image.zip) Segítség az egyetemi hálózat eléréséhez kívülről: http://www.hszk.bme.hu/mittegyek.html#bmevpnproxy John Sharp: Microsoft Visual C# 2008 Tutorial: http://www.tutorialspoint.com/csharp/index.htm

Tárgykövetelmények Jelenléti követelmények: A félévközi jegy megszerzésének szükséges feltétele az összes laborgyakorlat teljesítése. Félévközi számonkérések: A laboratóriumi gyakorlatok elvégzése előzetes önálló felkészülést igényel. A gyakorlatok elején a hallgatók felkészültségét rövid írásbeli számonkéréssel ellenőrizzük. Osztályzat: ZH 20 pont + jegyzőkönyv 100 pont 40% alatt elégtelen (1) 40% és 55% között elégséges (2) 55% és 70% között közepes (3) 70% és 85% között jó (4) 85% felett jeles (5) Amennyiben egy leadott jegyzőkönyv, program vagy írásbeli dolgozat vagy ezeknek egy része bizonyíthatóan nem önálló munka eredménye, akkor azt automatikusan - a másolás mértékétől függetlenül - az adott munkára adható maximális pontszám mínusz egyszeresével értékeljük!

Számítógépes mérésvezérlés Feladatok: automatizált mérés, adatgyűjtés valósidejű kiértékelés Eszközök: Mérőműszer: valamilyen fizika mennyiség mérésére; Számítógép: adatok gyűjtése, megjelenítése, feldolgozása

Számítógépes mérésvezérlés Feladatok: automatizált mérés, adatgyűjtés valósidejű kiértékelés Eszközök: Mérőműszer: valamilyen fizika mennyiség mérésére; Számítógép: adatok gyűjtése, megjelenítése, feldolgozása

Számítógépes mérésvezérlés Feladatok: automatizált mérés, adatgyűjtés valósidejű kiértékelés Eszközök: Mérőműszer: valamilyen fizika mennyiség mérésére; Számítógép: adatok gyűjtése, megjelenítése, feldolgozása Kommunikáció: szabványos csatolófelületek: - RS-232 - USB - LPT - GPIB

Objektumorientált programozás - alapok Mi is az az objektum? A program olyan egysége, ami kommunikál a többi objektummal: üzeneteket kap, adatokat dolgoz fel, üzeneteket küld. Forrás: Wikipédia Előnyök: - gyors fejlesztés - modularitás - eseményvezérelt működés

Objektumorientált programozás - Példa: rajzolóprogram alapok Osztály Alakzat Property: color Method: draw Event: onclick Property: thickness Objektumok: téglalap kör... Property: a, b Property: r - gyors fejlesztés - modularitás - eseményvezérelt működés

C# - C sharp Objektumorientált, eseményvezérelt, általános, programnyelv.net Framework Class Library CLR Common Language Runtime MONO (LINUX)

Objektumorientált programozás - alapok Példa: véletlenszám generálása: Class: az objektum típusa Random rand01; rand01 = new Random(); Az egyedi objektum Constructor: az objektum létrehozása Double FloatRandomNumber = rand01.nextdouble(); Int32 IntRandomNumber = rand01.next(maxrandomnumber); Method: visszaadja a következő véletlenszámot.

Objektumorientált programozás - alapok Példa: nyomógomb: Property: a StartButton objektum egyik tulajdonsága StartButton.Text= Start! private void StartButton_Click(object sender, EventArgs e) Event: a StartButtonhoz kötődő esemény bekövetkezésekor fut le

Objektumorientált programozás Visual Studio 2005

Objektumorientált programozás Visual Studio 2005

Objektumorientált programozás Hello World! program: Visual Studio 2005 namespace proba public partial class Form1 : Form public Form1() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) StartButton.Text = "Start!"; private void StartButton_Click(object sender, EventArgs e) MessageBox.Show("Hello World!");

Objektumorientált programozás Visual Studio 2005 event Hello World! program: namespace namespace proba public partial class Form1 : Form public Form1() function InitializeComponent(); private void Form1_Load(object sender, EventArgs e) StartButton.Text = "Start!"; property private void StartButton_Click(object sender, EventArgs e) MessageBox.Show("Hello World!"); method

Objektumorientált programozás - alapok Példa: rajzolóprogram Osztály Alakzat Property: color Method: draw Event: onclick Objektumok: téglalap kör... Property: a, b Property: r Összefoglalás: - Class: az objektum típusa; - Object: az egyedi objektum; - Method: az objektumra jellemző képesség; - Property: az objektum egyik tulajdonsága; - Event: az objektumhoz kötődő esemény.

Objektumok Button: using System.Windows.Forms; Properties Name Az objektum azonosítója Text A gomb felirata Methods Hide Elrejti a gombot Show Megmutatja a gombot Events Click Kattintáshoz tartozó esemény

Objektumok Form: using System.Windows.Forms; Properties Name Az objektum azonosítója Text A Form fejléce Methods Show Megnyitja a Formot Close Bezárja a Formot Events Load Close A Form megjelenésekor fut le A Form bezárásakor fut le

Objektumok TextBox: using System.Windows.Forms; Properties Name Az objektum azonosítója Text A szövegdoboz tartalma Methods Hide Elrejti a szövegdobozt Show Megmutatja a szövegdobozt Events TextChanged Click A szövegdoboz tartalmának változásakor fut le A szövegdobozra kattintáskor fut le

Objektumok Label: using System.Windows.Forms; Properties Name Az objektum azonosítója Text A címke tartalma Methods Hide Elrejti a címkét Show Megmutatja a címkét Events VisibleChanged Click A címke elrejtésekor/megjelenésekor fut le A címkére kattintáskor fut le

Objektumok StreamWriter, StreamReader: using System.IO; Constructor StreamWriter FileWriter = new StreamWriter( File Neve ); StreamReader FileReader = new StreamReader( File Neve ); Methods Write( Text ) Szöveget ír a megnyitott file-ba WriteLine( Text ) Szöveget ír és új sort kezd Read() Beolvassa a következő karaktert ReadLine() Egy egész sort olvas be Close() Bezárja a file-t Properties EndOfStream Jelzi, ha elértük a file végét

Objektumok OpenFileDialog, SaveFileDialog : using System.Windows.Forms; Methods ShowDialog() Reset() Properties FileName Title InitialDirectory DefaultExt Megnyitja az ablakot Törli az objektum beállításait A kiválasztott file elérési útja Az ablak fejléce Alapértelmezett elérési út Alapértelmezett kiterjesztés

Objektumok StreamReader példa: using System.IO;... StreamReader reader = new StreamReader("filename.txt"); string line; while ((line = reader.readline())!= null) TextBox1.AppendText(line); reader.close();

Objektumok StreamWriter, SaveFileDialog példa using System.IO;... // a SaveFileDialog objektum létrehozva a designer-ben, vagy: // SaveFileDialog sfdialog = new SaveFileDialog();... if(sfdialog.showdialog() == DialogResult.OK) StreamWriter writer = new StreamWriter(sfDialog.FileName); writer.writeline("your text"); writer.close();

C# alapok Deklaráció: int i; Inicializáció: i = 5; Egyszerre: double j=1.5; Int32 int, Int64 long Tömbök: double[] data = new double[16]; data[0]=1.5; data[15]=2.3;

C# alapok Függvények: private Int32 Function(arglist)... Függvényhívás: Int32 x = Function(arglist); private: csak az adott osztályon belülről érhető el public: kívülről is elérhető Típuskonverzió: x = Convert.ToDouble(Object); string = Convert.ToString(Object); i = Convert.ToInt(Object);... Stringek: string Text = Hello ; int length = Text.Length; string Part = Text.Substring(start, hossz); int index = Text.IndexOf(char); Text = Object.ToString( Format );

string manipuláció string Text = alma ; string hossza: int length = Text.Length; C# alapok Trim(): eltávolítja a white space-t a string elejéről és végéről (tovább paraméterezhető) TrimStart(), TrimEnd(): hasonlóan, de csak a string elejéről vagy végéről newtext = Text.Trim(); // alma newtext = Text.TrimStart(); // alma newtext = Text.TrimEnd(); // alma Substring(): // Text.Substring(start,length); newtext = Text.Substring(0,4) // al Split(): string text = 6+3; string [] numbers = text.split('+'); // numbers[0] = 6 // numbers[1] = 3

C# alapok string manipuláció Stringek összefűzése: Hello World! = Hello + + World! IndexOf(): a keresett karakter indexét adja vissza (ha nincs találat, -1-et) int index = Text.IndexOf( m ); // index=4 ToString(): // Text = Object.ToString( Format ); double szam = 5.0133; Text = szam.tostring( 0.00 ); // fix 2 tizedesjegy, 5.01

C# alapok Karakterek: char c= g ; c=(char)103; //ASCII g karakter string Text=c.ToString(); char[] Text2=Text.ToCharArray(); //string->karakterlánc Text2[0]=c; //karakterlánc feltöltése Speciális karakterek: char c; c= \t ; c= \n ; c= \r ; c= \\ ; c= \ ; c= \ ; //Tabulátor //új sor //Carriage return //Backslash //Idézőjel //Dupla idézőjel

C# alapok if elágazás: int seconds = 0; int minutes = 0;... if (seconds == 59) seconds = 0; minutes++; else seconds++; Másik példa: if (day == 0) dayname = Sunday ; else if (day == 1) dayname = Monday ;... else if (day == 6) dayname = Saturday ; else dayname = unknown ; switch elágazás : switch (day) case 0 : dayname = Sunday ; break; case 1 : dayname = Monday ; break; case 2 : dayname = Tuesday ; break;... default : dayname = Unknown ; break; Csak beépített adattípusokra (pl. int, string) A felvett értéket konstanshoz kell hasonlítani

C# alapok while ciklus: int i = 0; while (i < 10) MessageBox.Show(i.ToString()); i++; do ciklus: int i = 0; do MessageBox.Show(i.ToString()); i++; while (i < 10); for ciklus: for (int i = 0; i < 10; i++) Console.WriteLine(i); Példa több inicializációra: for (int i = 0, j = 10; i <= j; i++, j--)...

C# alapok Math osztály Matematikai függvények: Math.Cos(rad): koszinusz függvény Math.Sin(rad): szinusz függvény Math.Min(szám1, szám2): a kisebbik számot adja vissza Math.Abs(szám): abszolútérték függvény Math.Pow(alap, kitevő): hatványfüggvény Math.Exp(x): e x Math.Round(szám, tizedesjegyek): kerekítés Math.Sqrt(szám): négyzetgyökvonás... Beépített állandók: Math.PI: π Math.E: e

Buktatók C# alapok 1. Egész számok osztása: double d; d = 4/5; // d = 0 d = (double) 4/5; // d = 0.8 2. A Convert.ToDouble() érzékeny a Windows területi beállításaira (tizedes elválasztójel). 3. Textbox.Textchanged() lefut már egyetlen karakter begépelése után. 4. Összetett objektumok nem konvertálhatók, pl. Convert.ToDouble(TextBox1). Helyesen: TextBox1.Text. 5. A SubString() metódus argumentumában nem a kezdő- és végindex et kell megadni, hanem a kezdőindex-et és a kivágni kívánt string hosszát. 6. Két darab, közvetlenül egymás után konstruált Random objektum ugyanazt az álvéletlen számsorozatot fogja szolgáltatni.

Hibakeresés (debugging) Debug QuickWatch: kifejezések kiértékelése objektumok manipulálása breakpoint Változó nyomon követése: debug módban jobb klikk a változóra > Add watch

Változók hatásköre (scope-ja) namespace helloworld az osztályon belül minden függvényből elérhető public partial class Form1 : Form string globaltext = "Hello World!"; public Form1() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) MessageBox.Show(globalText); private void button1_click(object sender, EventArgs e) string text = "Message"; MessageBox.Show(text); csak a button1_click() függvényből érhető el

Listák C#-ban: <list> Listák: a C# dinamikus tömbjei Példa: egész számokból álló lista List<int> szamlista = new List<int>(); szamlista.add(20); szamlista.add(30); szamlista.add(50); szamlista.add(70); int hossz = szamlista.count; // hossz = 4 int elem = szamlista[2]; // elem = 50 szamlista.removeat(3); További metódusok: Clear(), Find(), Sort()

Önálló feladatok 1. Módosítsuk a Hello World! programot úgy, hogy gombnyomásra egy TextBox szövegét írja ki a MessageBox! 2. Írjuk ki valamely tulajdonságát a StartButton-nak a gomb lenyomásának hatására (pl.: Text, Font, TextAlign...) 3. Kérjünk be két számot plusz jellel elválasztva TextBoxba, majd írjuk ki az eredményt egy másik TextBoxba! 4. Írjuk ki az egész számokat 1-től 100-ig, vesszővel elválasztva egy file-ba felhasználva egy SaveFileDialog objektumot! 5. Az XY_data.txt file összetartozó [X,Y] adatokat tartalmaz. Olvassuk be a tartalmát és számoljuk ki külön-külön az X és Y adatok átlagát és szórását! Használjuk az OpenFileDialog objektumot! A szórás számítása: