Jump to content

shoneill

Members
  • Content Count

    858
  • Joined

  • Last visited

  • Days Won

    25

Posts posted by shoneill


  1. 29 minutes ago, Mads said:

    Any tricks to this? (I'm using LV2018)

    I love it when old posts come up and I simply can't remember writing them, but my name is on it, so it must have been me..... No, no tricks. Haven't done that in years. It was for simply LVLibs, no classes, no hierarchies. LLBs don't play well with classes (no sub-folders, no ability to store multiple VIs with the same name).

    I suppose the PPL is the proper replacement for this now, although that's not source code....

    • Like 1

  2. Hmm, of course I run into problems at the target boundary. The Probes don't execute in the same context as the FPGA code.

    Using a FP control of the cluster I want to investigate (hopefully all Abstract classes have been re-assigned) I run into problems.  Concrete classes become abstract classes because the abstract classes are the only ones included with the Probe (On the FP).

    I thought I saw yesterday that the information is passed as part of the TypeDescriptor of the Variant resulting from a conversion but I don't see that any more.

    I suppose this is ultimately a serialisation / deserialisation problem across context boundaries. Unfortunately, I can't use Variant or String directly on the FPGA.......


  3. I've actually gotten it to work with general refnums.

    One note: If the actual value of the items is not important (which is the case for me - I just want to make sure all elements in a cluster have actually been assigned) then all the information required is contained within the TypeDefinition returned when performing a "Flatten Variant to String".  I've written parsers for this before, but that was like 15 years ago in LV 6.1....


  4. On 9/3/2019 at 2:42 PM, styrum said:

    😂He knew what was coming:

    " I expect some sort of reaction from the defenders of OOP"

    I refuse to accept the OPs idea of all people opposing his childish rant as being a "defender of OOP". I'm a defender of intelligence and critical thinking.  I'm an engineer. The OP is a petulant fool.  Of course some things are true, some things of OOP are good, some are bad. Judgement is required. Being intellectually lazy and understanding "OOP is a framework" is just not worth even arguing against. If he was working with me, I'd make sure the guy is fired.  Dead weight.

    I've had several beers. This means this post is completely honest. If possibly not accurate.... ☺️


  5. It's a rubbish post.

    OOP is not a framework, as the author claims it is. He / she has clearly not understood what OOP is, what it's supposed to do, how it's supposed to work and when it's NOT best suited to the job.

    Yes, OOP needs to be used wisely. No, it's not a band-aid for people who still don't know what they're doing.

    And the claim that OOP does not map to the human mind..... well, darling, back when OOP was introduced, it's still better than completely unstructured code.

    As with all software tools, if you don't understand it, it will hurt you.

    Statefulness, messaging and concurrent code organisation actually has nothing to do with OOP. Yes, OOP can be used to get that working, but the two are completely unrelated topics. They can both co-exist without each other.


  6. I my test (After setting all to disable debugging) User Events are second only to Queues and Notifiers. They're 20% faster than Channel (High Speed Stream). And Notifiers and User Events are very close in performance.  Sometimes User Events win, other times Notifiers, depends on which other methods are running concurrently.

    This is in a VM with only 2 cores.


  7. I would always recommend wiring up the output of the read nodes to an array indicator (outside the sequence so that it has no effect on timing).  Compiler optimisations can do weird things when you're not actually wiring up certain outputs.  For example, you're not using the data output of the variant but you are of the map. Not saying it explains the differences, but I've seen things like that wildly affect performance in the past.

    I would look at the code, but I'm currently trying to get 2019 installed in a VM.

    • Like 1

  8. On 5/4/2019 at 4:29 PM, ShaunR said:

    It's a conjugation. I think Americans are the biggest perpetrators especially for "setted". They do other funny stuff like leaving out letters and putting dates the wrong way round :D

    Even God appears to agree with Shaun....

    Mark 1:34 “And he healed many who were sick with various diseases, and cast out many demons. And he would not permit the demons to speak, because they knew him.”


  9. 16 hours ago, rscott9399 said:

    It is simply a test bench to develop and test different functions. This is just the main place to select different VI's you want to test is all.

    Again, i appreciate your help and concerns. I fully agree, im not teaching anyone labview lol im a matlab guy truthfully 

    No problems. I understood from the previous post you were teaching LabVIEW as opposed to using LabVIEW to teach something else.

    All clear now. And either way, the community is always ready to help.


  10. Also, I don't mean to be mean, but are you sure you're in the position to create code to teach people LabVIEW?

    This isn't advanced LabVIEW. If this is the quality of material students will be using to learn LabVIEW it might be best not doing it at all.

    Again, I'm not being mean, I'm being honest (and if anything I'm being diplomatic). Don't you have access to people who have (a lot) more experience in LabVIEW to help you out?


  11. Your sub-VI does not have a loop. It will run once and once only per Event. If you leave the FP of the sub-VI open, you can click on the boolean when it is not running and it will be applied whenever it is run.

    If you want your sub-VI to keep running, it also needs a while loop around it(either in the sub-VI itself or ourside). Just make sure you have a stop criterium for the loop.

    If you go into the properties of the sub-VI you can also set the FP to open when called. This still won't make it keep running, but it will at least make sure the FP is opened.


  12. 18 hours ago, X___ said:

    Sure. But then you cannot move the elements independently. Unless you ungroup, move, regroup.

    A modular object (such as a Graph) should be moveable as a whole, but its components should ideally be moveable individually. I have no idea how NI does that with their native controls, but this is obviously feasible. This is for instance something that was completely destroyed in XControls (an XControlled-Graph is frozen solid if I recall my now forgotten attempts to expand Graphs, unless you rebuild the whole independent component grabing and moving, as I was told by NI).

    Something can't be in a peer group and not be in a peer group at the same time. This is how the LV diagram "Group" works.

    What NI has is a parent-child grouping which is something different.  Not saying this couldn't be an interesting idea, just that it's not comparing apples with apples.


  13. You are setting your offset to 0.001 of a single sample. That's not going to be visible.

    The top value in your clsuter is your offset (zero X value). The second top value is the time spacing between adjacent data points (not the entire length of the plot).

    If you need 100 data points before the trigger, try

    Top: 0.001, Middle 0.00001, Bottom, your data

    You SHOULD use proper timing data.  If your data is recorded at 1MHz, the middle value should be 1/millionth in order to have your X-axis in seconds.

    Please note this also only changes the DISPLAY of your data, it has nothing to do with the data's ACTUAL position relative to your trigger. You need to set up your acquisition properly in order to guarantee that.

×
×
  • Create New...

Important Information

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