Jump to content

TG

Members
  • Posts

    225
  • Joined

  • Last visited

Posts posted by TG

  1. Based on the responses (Thanks BTW) I take it a simple timeout value on the

    "Preview queue element" would cover any potential issue

    since 'Preview queue element" will wait for valid data before timing out with an error.

    BTW I am using only one ref to this Queue. It is obtained once in the object's Create method and then stored as an attribute. I wasnt sure if this mattered so just playing it safe.

    I am using a Named object and use the Name to create a unique queue inside the object. Again just playing it safe.

    The whole idea is to have a memory location that is specific to the process (object) instance and only that instance. This way two or three process's can operate independently and each process can have a method for doing/updating and seperate (reentrant) methods for monitoring.

    I understand the notifier but admittedly

    the behavior of notifiers is something I seldom can think of a "use case" for in my programming.

    Whats a really good use case for a Notifier (over a queue) anyway?

    Thank You

    JR

  2. I want to use a named queue with a size of one (1) that is "written to" from one place at a time but

    is also monitored from 1+ places at a time without concern for timing.

    Like a simulated memory location referred to by name.

    To "Write" to this "Memory location" requires a quick "Dequeue" then an "Enqueue element at Opposite End" to update.

    That means there is a chance that the queue could be empty for a very short time, however

    would a simple timeout value on the reader side "Preview queue element" be capable to handle this blip in the read only access?

    I need to avoid having "Preview queue element" returning corrupted data or no data at all.

  3. Give ya my best guess.

    Looks like you are controlling solenoid and reading the meter using express VI's while creating tasks outside the loop for the digital I/O.

    This is permitted but probably not efficient if you don't need it in the loop.

    Also you might bernefit from tying all error IO together or at least combining error I/O. This way the first error would be available for help with troubleshooting.

    Id try to clean it up first (Get express out of the loop if you can to minimize potential overhead.) Create the tasks for analog in and analog out

    the same way you did for the digital I/O.

    You might also (if permitted) relax the loop timing to 50ms or better but that is just a guess.

    Good luck

    JR

  4. QUOTE(Jim Kring @ Jun 26 2007, 07:33 PM)

    Sorry

    They are zip files on my machine. If they were OGP files somehow my OP system (or IE)

    inperpret them as zip files.

    Stranger things have happened. Hehe WinXP.

    Anyway that was the reason why nothing was making any sense

    I'll try to see if its on my end.

    Thank You

    JR

    [EDIT]

    Apparently WinXP takes the liberty of interpreting the file type not the extension.

    Id be suprised if my rig was the only one doing this.

    I have installed the templates now.

    Q is how do I get Endevo tool to 'see' them What directory are they in?

    Thank You

    JR

    I found it

    C:\Program Files\National Instruments\LabVIEW 8.2\resource\OpenG\openg_object\class_templatess

  5. QUOTE(Tomi Maila @ Jun 11 2007, 06:15 PM)

    Thanks for all the hard work on the OpenG Class templates. I am really looking forward to seeing the templates in action on my rig.

    and also to learn. I want to see the active object template the most (it fits into what I am looking to do)

    I am having some difficulty installing correctl them however.

    I installed the class folders files into the ...Resource\framework\providers\Endevo\ClassProviders\Provider_EndevoGOOP300\Templates.. folder and manage to get the Endevo tool to register them but when I try to create a class in the project I get a lot of file searching then

    some errors and sometimes crashes.

    Here are the names of the files I DLed from OPENG

    oglib_openg_object-1.0beta4-1.zip

    ogrsc_val_obj_tmpl-1.0beta2-1.zip

    ogrsc_ref_obj_tmpl-1.0beta1-1.zip

    ogrsc_pure_abstract_ref_class_tmpl-1.0beta1-1.zip

    ogrsc_active_obj_tmpl-1.0beta1-1.zip

    Q is where should I put these class folders so that Endevo tool sees them and loads then proper?

  6. QUOTE(Jeffrey Habets @ Jun 22 2007, 06:33 PM)

    You can name your objects..

    The private "New" method that is used in the Create method to construct the object has inputs Create method and Object name. Set the latter to some unique name for your object and set Create method to Create or lookup existing. This way a first call to the create method will create the object, but every subsequent call will return a reference to the existing object.

    Thanks guys for the comments. I think I figured it out. Sorry I am not always clear about what I am looking for because Im not sure myself sometimes ;)

    I am using the singleton nature of a Named object and also the "Create or look up existing" feature.

    What I couldn't figure out (until today) is how to keep from initializing my object attributes from its external ini file in the create method.

    I guess the only obvious solution is to have a boolean attribute such as "Active" that I could set to TRUE once the object is created and properly initialized.

    Then, when creating it again elsewhere check on the "Active" boolean to determine what to do next.

    If "Active is True, pass the ref through and do nothing else.

    If "Active" is False, Load the attributes from disk file and do whatever other setup it needs.

    The destructor will set the "Active" back to False before storing the object state back to the disk file.

    I think this will work.

  7. Sorry , posted to 8.xx discussion forum by mistake.

    Reposting an edited version here.

    Let me try to re-phrase this Q since its possible I am looking at this the wrong way.

    GOOP 3.0.5

    1) Create object (x)

    2) Use object (x) in VI(a) : ( VI(a) runs independently using object(x) methods to do some task )

    3) Start VI(b) : (ALso an independent process)

    4) Inside VI(b) obtain a valid reference to object (x)

    How to get this ref in VI(b) without a direct wire connection?

    Thank you

    JR

  8. A (simple?) GOOP Q for anyone who knows this

    I wish to create AN object with Endevo GOOP3 toolkit and then later on

    create it again without having to check if it already exists so that I can get at the reference in another part of the program.

    The Goop3 create method seems to indicate that this is possible since it has 3 choices.

    1) Create

    2) Create or look up existing

    3) Look up existing

    I wish to use 2)

    Problem is I cannot figure out a way to tell that the ref already exists. I can see it when I use the objects in memory tool

    but that is as far as I can get with it for now.

    IS there a way to tell that the reference already exists in GOOP and can it be tested in the create Method that Goop3 makes?

    I hope that was clear enough..

    Thanks in advance for any replies.

    J

  9. Thanks Jan

    Q:

    Can this tool be activated on a non networked machine?

    I have two rigs that are forbidden to be connected and have 8.2.1 instaslled on them.

    I wanted to ask here bafore I go ahead and try it anyway.

    Regards

    John

    Thanks Jan

    Q:

    Can this tool be activated on a non networked machine?

    I have two rigs that are forbidden to be connected and have 8.2.1 instaslled on them.

    I wanted to ask here bafore I go ahead and try it anyway.

    Regards

    John

  10. QUOTE(tpereira @ Feb 9 2007, 07:33 AM)

    :oops: Didnt notice the dot on the side. Still getting used to 8.2 :wacko:

    I actually thought this was taken away to include the scroll bar feature

    I too have not seen the new handles. I was just living with it.

    Gees ; :wacko:

    hEHe Ill be looking for these handles now .

    Thanks for bringing it up.

  11. QUOTE(Michael_Aivaliotis @ May 29 2007, 03:55 PM)

    If you could ask anyone at National Instruments any question. Who would you ask and what would the question be?

    (Except this question: What is the password for the locked diagram of VI xyz.)

    I might have more than one Q for NI.

    But I can think of this one right now.

    Why is it so difficult to get really good (in depth) learning material about LabVIEW and why after all these years and versions (not to mention the cost of LV ownership) are there as of this day only several published books even worth reading about LabVIEW?

    Im not talking about NI help or on line resources which are fine for when you are programming, Im talking about the "real" stuff;

    The stuff that you can actually learn from. Old timers call it Book learning.

    I've learned more from one decent about LV in 6 mo than in over 10 years of looking at all of NI's help files, web content, Discussion forums etc etc and that includes many courses given by NI which are (IMO) little more than exercise books.

    NI s help is sufficient but lacks depth. There is no depth to any of NI's teaching, on line aids and such. why is this so and what could NI ultimately do about it?

  12. QUOTE(Eugen Graf @ May 18 2007, 03:42 PM)

    Hi Eugen I am eavesdropping on your thread.

    It looks OK to me except the data read must be stored somewhere no?

    (In the diagram the data goes nowhere but I suspect you know this already and just make an example for discussion?)

    John

    QUOTE(Eugen Graf @ May 19 2007, 09:53 PM)

    My read-task should be universal, undependent from interface. And as I know DAQmx is created for analogue data aquisition and it doesn't support interfaces like serial, CAN or TCP/IP with NI-unknown protocolls.

    Eugen

    Hi Eugen

    I am intermediate LV programmer who is reading your threads with interest.

    Making a universal read task function

    I (think) that to get a universal read function would require some form inheritance OO (GOOP) where the parent would be an abstract class (HWdev) and the

    children would do the actual implementation, (HWDev.Serial) (HWDev.GPIB) (HWdev.DAQ) etc..

    But the child implementations would still have to be written and tested etc. Assuming all of this was done it should be (in principal) easy to

    implement the read-task by pumping in the desired child object into the abstract parent function (lets call it "HWdev_readTask")

    You probably already know this. Perhaps this is too off topic to your immediate concern.

    On the events thing

    I like the "possible" solution Michael uploaded. Thanks Michael for putting that (very nice) example up. :worship:

    I do not know if this is tightly related to your issue but I work with serial devices too and wanted to add to discussion.

    The thing about reading from an RS232 device is I do not know a way to have the device tell me (my LV APP ) that new data is available as an event.

    Thus all I know how to do is poll the receive buffer for characters and extract them when they are available. But it is still polling and thus every so many milliseconds I have to use that resource to check.

    I've never been able to figure out by myself how to have the serial device generate an event to LV when fresh data is available.

    so I always have to poll the device serially to detect any change in the data. If the serial device is configured to send data contiuously into your receive buffer you still have to check the buffer to see if new data is available.

    In your final example you are invoking the read from your UI no? I remember you asking before about getting events also from serial device as well as UI and how to do this. I also wish I knew. To anyone with a clue I offer my :worship: again..

  13. I don't mean to barge in but

    Personally I have never understood why the legacy serial support has to be removed in later versions of LabVIEW.

    Its one thing to hide it but remove it is quite another.

    Why can't the customer decide what he needs to get his Application working?

    Serial communications (as bad a bus as it is) is not going away any time soon in my world where instruments

    in Laboratories still use it.

  14. I found it is not so easy to supply a VI regarding this issue because the one I wanted to upload had many dependencies and the one I

    was going to use worked fine :wacko:

    It Turns out Controls on a FP that are linked to Enumerated type definitions will not document properly in HTML printout feature.

    They must be disconnected first (I have no idea why)

    :headbang:

    Im angry at my (less than stellar) troubleshooting skills because it took me at least two hours to isolate this.

    I think there are other issues remaining but if disconnecting makes it work I'll use it and move on.

    (just don't actually save the VI LOL)

    Nevertheless, thanks for the tip JFM and I do appreciate the attempt to help tcplomp

  15. Thanks JFM

    YEp

    Did everything I could think of and tried to see it it helped.

    Thing is the controls exist just fine but the descriptions seem to be blanked out for most of them.

    I tried entering the documentation info in the control instance on the VI's front panel and saving the VI.

    I Also Tried changing it to a control and then later a type def and then a strict type def just sto see if it

    would work.

    I just know its something silly so I'll go ahead and post a VI here. Perhaps it will expose something not obvious.

    brb thanks

    I got it working fine on a VI outside my project using your selections so there is some help to your answer. At least a lead..

    thx still woring on it...

  16. QUOTE(tcplomp @ May 7 2007, 01:40 PM)

    No, that's not what I meant.

    Are you using code to print, or manual via File>>Print

    Ton

    Sorry didnt' understand.

    A Simple file save to HTML file in the print dialog of the VI.

    The thing I am finding is that some of "my" controls get descriptions and most do not, for reasons

    unknown to me.

    Regards

  17. QUOTE(tcplomp @ May 7 2007, 01:00 PM)

    Sorry John,

    not so quick.

    Are you programmatically printing? or manually?

    Ton

    Appreciate tcplomp

    Good thinking.

    Actually I am not connected to a printer. I have not tried making the files on the one rig I have with a printer driver.

    I was using the HTML feature so I wasn't thinking it was needed.

    Could it be that not having a printer would disable certain parts of the HTML file feature?

    Regards

  18. QUOTE(crelf @ May 6 2007, 04:42 PM)

    I think that's esoterically true for any upgrade of any software - you need to consider the motivation behind upgrading, and not do it "just because a new version came out". I had a customer once (no names) who we about a week away from production (yes, that's right, I said production), and a new major version of LabVIEW came out - they thought it was kind-of like using Adobe Acrobat Reader: all you need to do is install the new version and everything will work just fine, right? Sure enough, it didn't, and the production timetable needed to be adjusted :)

    So, here's the start of a list of what I consider to be valid reasons for upgrading any software (it's just a start, so please feel free to add your own suggestions!)

    1. You've got an issue that the new version will fix (and hopefully not create other issues that you can't workaround)
    2. There's features in the new version that you need to use
    3. You need support from the software company, and they don't support the older version anymore
    4. Newer required external components (drivers, OS's, hardware, etc) don't work with your old version, forcing your hand to upgrade

    To this list I would also add

    * You've had a good "read" of comments on stability and features (or from a lack of bad comments) on independent forums.

    * You have carefully considered the benefits (or the implications of not keeping up), and compared this to the potential risk of upgrading

    and are comfortable with taking the plunge.

    At the end of the day, upgrading LV is tedious (would take at least several hours to upgrade 5 legal rigs here) but also prone to some form of risk.

    The "unknown" is a fearful thing. I am aware this is not a courageous approach, :unsure:

    however past experience with upgrades from "All" software vendors usually translates into going slow and carefully.

  19. QUOTE(psdv @ May 5 2007, 10:35 PM)

    obscure library? ….you could more be detailed…

    Can't say since Im not familiar with Xnodes.

    I'll try it at my work rig and see if it works there. My home rig has a skeletal version of XP's background services running.

  20. It somehow doesn't even load on LV 8.2. I've tried different ways to load it.

    Does it require some obscure library to run correctly?

    QUOTE(psdv @ May 4 2007, 08:15 PM)

    if you have any comment on this Xnode Example contact me,

    we could collaborate together.

    bye

    NP I am interested in anything submitted to this very good forum

×
×
  • Create New...

Important Information

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