Jump to content

Recommended Posts

Hi all

I am starting to look at OOP in LV (8.2.1) and been looking through the examples.

I wondering why the oop solution in the example "Board testing" is much slower than the traditional solution?

In my company we would chose the traditional solution regarding to speed!

regards Bjarne

Hi Bjarne

I just ran the two demo's on my machine running LV 8.6.1 and the difference between the Traditional and the LVOOP implementations is that the LVOOP solution takes 100 msec longer to test 148 boards, each board having 13 tests. So 0.7 msec per board overhead using LVOOP, not too bad

I tested under 8.2.1 and I get 350 msec to do the 148 tests, so a bit longer, I suspect LVOOP has been optimized a bit since then.

Note that these tests were performed on my crusty but trusty 5 year old Dell Inspiron 1150 2.4GHz Celeron laptop.

For me, the benefits of implementing LVOOP would greatly outweigh the performance hit, especially when I wanted to implement new tests and new boards. The code is simpler and self documenting, easier to farm out within a team of developers and easier to debug.

  • Like 1
Link to comment

Hi Bjarne

I just ran the two demo's on my machine running LV 8.6.1 and the difference between the Traditional and the LVOOP implementations is that the LVOOP solution takes 100 msec longer to test 148 boards, each board having 13 tests. So 0.7 msec per board overhead using LVOOP, not too bad

I tested under 8.2.1 and I get 350 msec to do the 148 tests, so a bit longer, I suspect LVOOP has been optimized a bit since then.

Note that these tests were performed on my crusty but trusty 5 year old Dell Inspiron 1150 2.4GHz Celeron laptop.

For me, the benefits of implementing LVOOP would greatly outweigh the performance hit, especially when I wanted to implement new tests and new boards. The code is simpler and self documenting, easier to farm out within a team of developers and easier to debug.

Hi SciWare

Thank you.

It seems to me that it takes longer than 350ms on my PC (HP-NW8440), but if it is faster with LV8.6, the future looks bright for LVoop by me.

According to my step into oop, I would like to start with a instrument driver for a DMM (agilent 34901A), but to do it right I have considered to make a instrument class that cover all my instruments (then the DMM would be a subClass). I was thinking of something like this:

Class: Instruments

SubClasses: DMMs

SubClass: AG34901A

SubClass: NI4070

etc.

SubClasses: Counters

SubClass: Agilentxxx

SubClass: Nixxx

etc.

etc.

Is this the right way

Does anyone got a oop instrumentdriver they would share (for learning)?

regards Bjarne

Link to comment

According to my step into oop, I would like to start with a instrument driver for a DMM (agilent 34901A), but to do it right I have considered to make a instrument class that cover all my instruments (then the DMM would be a subClass). I was thinking of something like this:

Class: Instruments

SubClasses: DMMs

SubClass: AG34901A

SubClass: NI4070

etc.

SubClasses: Counters

SubClass: Agilentxxx

SubClass: Nixxx

etc.

etc.

Is this the right way

Does anyone got a oop instrumentdriver they would share (for learning)?

Your class hierarchy looks fine.

I don't have any LVOOP based instrument drivers I could post, but I'm sure someone has one kicking around.

Link to comment
  • 4 weeks later...

Hi SciWare

Class: Instruments

SubClasses: DMMs

SubClass: AG34901A

SubClass: NI4070

etc.

SubClasses: Counters

SubClass: Agilentxxx

SubClass: Nixxx

etc.

etc.

I like to do something Similar thing. It will be a good Idea. Can I have your Exampel ?

I trying to get OOP into my head. But I'm frusty.gif

If someone can get my head to understand this I be a happy man.worshippy.gif

I have a thing I like to draw. An class with interface/protocols. But I don't know how to start.

I have Some protocols : MRP, FLP,Comp, SubL, xpcom, other

Interface : Serial, Ethernet

Thanx

Link to comment

I like to do something Similar thing. It will be a good Idea. Can I have your Exampel ?

I trying to get OOP into my head. But I'm frusty.gif

If someone can get my head to understand this I be a happy man.worshippy.gif

I have a thing I like to draw. An class with interface/protocols. But I don't know how to start.

I have Some protocols : MRP, FLP,Comp, SubL, xpcom, other

Interface : Serial, Ethernet

Thanx

Hi Clio75

Unfortunately I haven't started to use oop yet. I have the same problems as you and lag of time.

The only thing I have is what I already have posted.

regards Bjarne

PS. Why is your "name" Clio75? I thought Reanult Clio only was i version 3 (see my avatar)?biggrin.gif

Edited by Bjarne Joergensen
Link to comment

Your class hierarchy looks fine.

I don't have any LVOOP based instrument drivers I could post, but I'm sure someone has one kicking around.

Your class hierarchy looks basically the same as the one I'm using. Attached is my LVOOP'd driver for a Keithley 24xx Source Meter (which is a bread and butter instrument for us for any sort of electrical transport characterisation). I won't pretend that it's particularly well implemented, it was pretty much the first thing I wrote in LVOOP but it is now the basis of all the instrument communication I do. The base class provides essentially a wrapper for VISA along with some SCPI handling code and provision for realtime monitoring of what is being sent to the instrument. The source-meter intermediate class is rather tightly coupled to Keithley type instruments, but since that's what we mainly use... The actual Keithley 24xx class includes some pretty ropey code in places, but generally works as expected.

Anyway, "share and enjoy"

Keithley 24xx-LVOOP Driver.zip

[edit: 8.6.1]

Edited by gb119
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.