labview oo programming presentation

33
NI LabVIEW Object-Oriented Programming ni.com/labviewzone

Upload: hectorlopez

Post on 17-Jul-2016

19 views

Category:

Documents


4 download

DESCRIPTION

LabVIEW OO Programming Presentation

TRANSCRIPT

Page 1: LabVIEW OO Programming Presentation

NI LabVIEW Object-Oriented Programming

ni.com/labviewzone

Page 2: LabVIEW OO Programming Presentation

2

Agenda

• Object-oriented programming• Benefits of object-oriented programming • Object-oriented development in LabVIEW

Page 3: LabVIEW OO Programming Presentation

3

Object-Oriented Programming

• An approach to application development• Appropriate for large-scale applications with teams of

developers

Page 4: LabVIEW OO Programming Presentation

4

Benefits of Object-Oriented Development

• Promotes code reuse• Reduces code maintenance• Simplifies extending applications

Page 5: LabVIEW OO Programming Presentation

5

Modular Development in LabVIEW

• VIs and subVIs• Project libraries (LabVIEW 8)• Classes (LabVIEW 8.20)

Page 6: LabVIEW OO Programming Presentation

6

• SubVIs improve code readability and maintainability

• You need subVIs if:– The same code appears twice on the block diagram– Block diagram is larger than one screen– You repeatedly use sequence structures

SubVIs

Page 7: LabVIEW OO Programming Presentation

7

Project Library

• Set of related VIs and other LabVIEW files• Information on library is stored in a text file (.lvlib)

Page 8: LabVIEW OO Programming Presentation

8

Advantages of Project Libraries

• Reduced naming conflicts– Namespace applied to VI

names• Restricted access to specific

VIs– Public VIs – Private VIs

• Consistent icon appearance

Public Private

Page 9: LabVIEW OO Programming Presentation

9

Object-Oriented Programming

•For power programmers and large-scale application development

Parent Class

Child Class

Encapsulation

Classes and objects

Inheritance

Page 10: LabVIEW OO Programming Presentation

10

Classes and Objects

• Objects are actors in your application– Refer to individual pieces of data

• A class defines the data and behavior of objects– Objects in your application are instances of a class

Page 11: LabVIEW OO Programming Presentation

11

OO Design – Testing Cell Phones • Test cell phones and camera phones by the cell phone placing

calls and the camera phone placing calls and taking pictures• Break the application into “nouns” and “action verbs”

– Camera phones are types of cell phones that also contain a camera– Cell phones make calls– Camera phones make calls and take pictures– To test a cell phone, a call must be placed and verified– To test a camera phone, the cell phone and camera functionality must be tested– To test a camera, an image must be taken and compared to a reference

• Nouns generally map to classes or objects• Verbs generally map to functions

Page 12: LabVIEW OO Programming Presentation

12

Creating Classes in LabVIEW

• Create a class in the project• Specify the data with the .ctl for the class

– Defining a class in effect defines a new data type• Additional features

– Specify the class icon– Specify a VI icon template– Specify the wire color

Page 13: LabVIEW OO Programming Presentation

13

Classes Demonstration

Page 14: LabVIEW OO Programming Presentation

14

Testing Cell Phones – Classes

• Cell phone• Camera phone• Camera

Page 15: LabVIEW OO Programming Presentation

15

Creating Methods for a Class

• Methods– Actions or requests– Performed by objects– Generally verbs

• Create a VI• Specify scope

– Public– Private– Protected

Page 16: LabVIEW OO Programming Presentation

16

Testing Cell Phones – Methods

• Cell phone– Data

• Phone Type (CDMA, GSM)

– Methods• Initialize• Turn On• Place Call• Verify Call• Test

Page 17: LabVIEW OO Programming Presentation

17

Methods Demonstration

Page 18: LabVIEW OO Programming Presentation

18

Inheritance

• Defines subclasses• Creates “is a” relationship

– Example: Camera phone “is a” cell phone– Reuse common functionality

• Specialization– Extend or override common functionality for specific

needs

Page 19: LabVIEW OO Programming Presentation

19

Testing Cell Phones – Inheritance

• Camera Phone Class– Inherits from cell phone– Data

• Camera– Methods

• Test – Extends “Cell Phone Class” Test method to test camera functionality

Page 20: LabVIEW OO Programming Presentation

20

Inheritance Demonstration

Page 21: LabVIEW OO Programming Presentation

21

Encapsulation

• Treat each object as a black box– Well-defined interface of data and

methods– Must use this interface in the application

• All data is private• Methods can be public, private, or

protected

Page 22: LabVIEW OO Programming Presentation

22

Testing Cell Phones – Encapsulation

• Top-level application only needs to initialize phone and test it– Init and Test methods are public

• Camera phone needs to be able to turn on the phone– Turn On method is protected

Page 23: LabVIEW OO Programming Presentation

23

Encapsulation Demonstration

Page 24: LabVIEW OO Programming Presentation

24

Class Composition

• Defining a class creates a new data type• A class can be made up of other classes

Page 25: LabVIEW OO Programming Presentation

25

Testing Cell Phones – Class Composition

• Camera Phone Class– Inherits from Cell Phone– Data

• Camera Class– Methods

• Test (Cell Phone and Camera)• Camera Class

– Data• Camera Type

– Methods• Take Image• Verify Image• Test Camera

Page 26: LabVIEW OO Programming Presentation

26

Class Composition Demonstration

Page 27: LabVIEW OO Programming Presentation

27

LabVIEW Application Using Classes

• Call methods on objects• Reduce code rework with inheritance and

dynamic dispatching

Page 28: LabVIEW OO Programming Presentation

28

Testing Cell Phones – Calling Test Methods

Page 29: LabVIEW OO Programming Presentation

29

Top-Level Application Demonstration

Page 30: LabVIEW OO Programming Presentation

30

Resources

• LabVIEW Object-Oriented Programming FAQ• A Note on Learning Object-Oriented Programming• LabVIEW Object-Oriented Programming: The

Decisions Behind the Design• Graphical Object-Oriented Programming (GOOP)• www.ni.com/info - objectoriented

Page 31: LabVIEW OO Programming Presentation

31

Certified LabVIEW Architect Exam

Skills tested:• LabVIEW application development

mastery

Certified LabVIEW Developer Exam

Skills tested:• LabVIEW application development

expertise

Certifications

Certified LV Associate Developer Exam

Skills tested:• LabVIEW environment knowledge

Skills learned:• Modular application development• Structured design and

development practices• Interapplication communication

and connectivity techniques

New User

LabVIEW Basics I

LabVIEW Basics II

Experienced User

LabVIEW Intermediate I

LabVIEW Intermediate II

Advanced User

LabVIEW Advanced I

Skills learned:• LabVIEW environment navigation• Basics of application creation

using LabVIEW• Basics of data acquisition and

instrument control

Skills learned:• Large application design• Advanced development

techniques• Multideveloper project

implementation

Courses

Page 32: LabVIEW OO Programming Presentation

32

Connect with the LabVIEW Community

Page 33: LabVIEW OO Programming Presentation

Questions?

Thank You