Jump to content

Jordan Kuehn

Members
  • Posts

    693
  • Joined

  • Last visited

  • Days Won

    21

Posts posted by Jordan Kuehn

  1. See snippet below.

    post-181-0-12225400-1319468915.png

    I have used this approach a few times to dequeue elements while they exist and to simply maintain the previous state when they don't. However, I cannot remember seeing this in any high level asynchronous communication approaches. Most everything I see only reacts to additional messages being sent to the 'slave' process (Daklu's slave loops, actor framework, even QMH). Correct me if I'm mistaken of course. Perhaps I'm over thinking this, but is there anything fundamentally wrong with an approach like this? Like I said, I've used this basic idea a few times before and it has served me well.

    The use case is when you want the other loop to continue it's previous command when nothing is left in the queue rather than pausing. A simple example could be a DAQ loop that is restartable/reconfigurable. You can send it all the configuration commands which will be transferred without loss, but then when you start the acquisition it simply continues acquiring without any help from the other loop.

  2. That makes sense, but what happens when a noob wires something out of a case structure? He gets a broken arrow, which pretty soon makes it obvious that the output tunnel either has to be connected from every case or be set to use default for unwired cases.

    But I guess there could be an easy solution for it. While a shift register could be automatically added when a ref or error is wired, may be it can also be automatically wired through the loop to the other end of the shift register.

    Another option could be to add this feature, but turn it off by default so noobs don't run into it.

    I would also again emphasize the point I was making that when they wire error wires out and they autoindex a broken wire appears when running it into another vi. Of course you could argue that n00bs don't use error wires...

  3. TIL.

    For a while, I was using a programmable Logitech trackball mouse becuause it's my personal preference, but more and more I found that the shortcuts I had programmed for the mouse wrecked my productivity when I was integrating on test stands. I got tired of having to code in two different styles so I use a normal optical mouse as much as possible.

    My SSD and large monitors have also done this. To counteract, I'll code on my laptop occasionally. The worst is having to code on a touch pad in the field.

    For an on topic response, no I don't use any of the extra buttons, though I do like having a wireless mouse. Logitech makes good products.

  4. I (hope not and) highly doubt that they would have made the exam easier, as that would water down the process.

    It may be the case the the new CLD exams are harder, or that they want to help streamline the marking protocol by providing these starter VIs etc...?

    The CLA Exam Preparation Guide has been updated as evident by the July 2011 footnote.

    If you are taking the exam and are unsure on changes I would be contacting certifications (certification@ni.com) for clarification.

    My friend went to a CLD prep session at NI week and I can confirm that they are providing the front panels now with the tests and you save your work to the flash drive.

    A bit frustrating to me as I took the "old" version seemingly a few months before the "new/easier" version. Maybe it's an effort to push existing CLDs to quit being lazy and prep for the CLA. *points at myself*

  5. I had created a task manager a while ago to address precisely these issues. I'm attaching the LabVIEW 2009 code for it. Please feel free to take this as the starting point and expand it further. I'd also love to work on this one more. Currently it:
    • Lists all VIs in memory
    • Displays basic information like VI state, path, data size, code size, FP Behavior, Reentrant? Reentrance Type, etc.
    • Let's you select multiple VIs and open FP or BD
    • Let's you select multiple VIs and Abort
    • let's you select a refresh rate and updates the lsit
    • sort by any column
    • let's you filter file types like vi, vit, and ctl
    What other functionality would you like to see in it?
    • select application instance?

    Should this be submitted to the repository or should we keep attaching versions to this discussion? Cheers! LabVIEW Task Manager.zip

    memory usage, and maybe cpu usage?

  6. PJM,

    That looks quite useful for replicating the cRIO code across units, and I will likely need to move towards making a cRIO image in addition to the image of the host machine that I'm also replicating. Right now it doesn't bother me much to manually configure each cRIO. The thing I am more concerned with is configuring the host machine to know what IP address to look for the cRIO at. (NSVs are hosted on the cRIO). Each unit has a cRIO and a laptop host. In addition to helping me set up each laptop, it would allow us to have a single backup laptop that could be quickly reconfigured in the field by a technician to target a different cRIO.

    The obvious answer may be to give each cRIO the same IP address and then it doesn't matter, but I think it's a legitimate concern that at some point we may be servicing multiple units and wanting to place them all on the same router to access from a single computer. If you have higher level suggestions that may eliminate the problem I have, I'd love to hear them.

  7. You can pretty easily expose the IP to connect to, either in the UI, as an INI setting, in the registry, by the command line ...

    I'm just using normal Network Shared Variables, no datasocket or anything. Does that change your assessment of the ability to configure what the SVE is looking for? I'm not entirely sure what steps to take to programmatically configure the NSVs. This is a unique use case for me as most systems we build are static.

  8. Hopefully this hasn't been addressed elsewhere, didn't see any relevant posts. We are wrapping up the software development phase of a project that involves the production of a few dozen units. Each one has a cRIO controlling it. We've chosen to give each cRIO a unique IP address so that in the event we have a couple units back for servicing, we won't have IP collisions.

    Now what I need to be able to do is take a built host executable and modify the IP address it thinks the cRIO target has. I've tried modifying the aliases file to no avail. Currently I'm stuck rebuilding the exe for each new IP address. Any thoughts or suggestions, or perhaps I'm simply modifying the file incorrectly?

  9. It doesn't just support integers, each cell is actually a string. You use property nodes to get/set these values. It's a very powerful control if used properly, go to Help > Find Examples... and search for listboxes. Check out the Properties Tutorial example.

    Very powerful also = very finicky and frustrating when not used properly.

  10. You can also take a look into Mercurial. That is the SCC we are currently using and is distributed. It doesn't really address the fundamental problem that is the source of all the others listed previously; VIs are binary files and all these tools are made for text files.

  11. Funny...I've only ever programmed in LabVIEW, yet I found mousing around in the palettes to be a huge bottleneck, as I know the name of almost every function I ever need. :)

    From my (limited) experience with C++/C#/Visual Studio palettes are far superior to the autotext thing they have. Palette + context help is great if you don't know exactly what you want.

    That's a relief, I thought there was something wrong with me. I get plenty of flak for using it so much (feel free to chime, hooovahh).

    On the other hand if you do know exactly what you want quick drop is awesome. I wouldn't be surprised if the people who give you flak for using it a lot are the same people who don't like the autotool.

  12. My only wish at this point is for a Developer Suite DS2 ISO image to be posted. It is a pain to install the individual packages compared to the DevSuite installer. Is there any rhyme or reason when and if NI publishes this ISO?

    I too would love for them to just put the iso's online. In addition to the annoyance of manually installing a dozen packages, I always seem to miss something.

  13. They do claim some good improvements regarding FPGA. I'm excited to try these out. Perhaps I won't have to schedule my lunch around compiles anymore.

    I do agree tremendously though that moving to a new version can have dramatic effects on existing projects. Especially when the customer has their own LV license and plans to do work on their own. Stung me a bit when I got an SSD and only had 2010 on it.

  14. A graph was presented at NI Week. I'll see if I can dig up the reference or maybe someone else here knows. I just got in from my flight back home and it's REALLY late....wacko.gif

    I love how both the graph in this article and the one presented at NI Week have no Y-Axis labels. Also love the bar graph during the Tuesday keynote that was only upwards trending. No title or labels. Don't get me wrong, a lot of the features seem cool. It's just hard to buy into a better bug reporter as a key feature...

  15. I must be missing something. Isn't 8bits at 100MHz = 100MB/s? Generally, the MB is megabytes, while Mb is megabits.

    I'll point out that if you use 100MiB/s I think you are correct. 800,000,000 b/s = 95.367MB/s where B = 8 b, KB = 1024 B, MB = 1024 KB. Not sure where 800MB/s came from.

    //Ah I have it backwards. Technically 100MB/s is correct while traditionally 95.367MB/s would be used and 95.367MiB provides clarity. http://en.wikipedia.org/wiki/Mebibyte

×
×
  • Create New...

Important Information

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