Jump to content

Manudelavega

Members
  • Posts

    282
  • Joined

  • Last visited

  • Days Won

    10

Everything posted by Manudelavega

  1. I think that's the key. I spent a lot of time tinkering around but thanks to that I now have a good understanding of the TDMS API and how to optimize the R/W operations. If, like me, you do your own decimation after the read operation, there is a sweet spot where it starts being more efficient to read each sample you're interested in one by one instead of reading a big block and decimating it.
  2. Thanks! It's probably going to be the path we'll follow.
  3. Dear all, My company is starting a project where some Matlab files (.m) need to be executed by LabVIEW. The 2 obvious solutions are Matlab script nodes and MathScript nodes. Unfortunately, even though the latter one is the most cost-effective and light in terms of installation, many of the functions we need are not supported by the Run Time Engine, so it's kind of a deal breaker. For the Matlab script nodes, I know Matlab needs to be installed since LabVIEW will request Matlab to execute the scripts through ActiveX. What I don't know is: what version of Matlab? Is there a cheaper "Run Time Engine" of Matlab we can use instead of buying the full-blown developement version of Matlab? Any other comment, remark, suggestion, alternatives? Thanks!
  4. My application writes thousands or samples for approximately 1000 channels in a single group. The Read/Write operations can be a bit slow on a regular hard-drive, but we use SSD drives or Ramdisk, and then it works perfectly and at very high speed. I'm a big fan of the TDMS now. Was tough to get around the Advanced API palette at the beginning, it took a bit of understanding...
  5. By the time we really make the decision to upgrade and we find time for it, 2015 SP1 might be out there anyway
  6. In case somebody has a few spare minutes to look at my CLA practice, here is my attempt at the ATM exam. Please ignore the elevator ones since this is one better I think. CLA ATM Exam EB.zip
  7. Thanks for the tip, I really appreciate it. For some reasons, since my early days as a LV developer I've had the impression that people wait for the SP1 because of potential bugs when a new version is released. But maybe that is not justified anymore?
  8. I think the plan is to move to 2014 SP1. The SP1 of any version feels more stable that the initial release (at least psychologically, even if not proven by facts).
  9. Is there a way to retrieve the reference of the VI inserted in a subpanel? I'm writing a code that takes a "parent" VI ref, and then scan through all its splitters, panes, and subpanels, and now I'd like to retrieve some infos from the VIs loaded inside the subpanels... Cheers
  10. Dear all, My company, Greenlight Innovation, is looking for a highly motivated LabVIEW developer. Please find the job description here. We are located in beautiful Vancouver, British Columbia, Canada.
  11. I made a second attempt at the elevator. I wrote it after watching a video from Muun doing the exam with the Model View Controller (without OOP) (https://www.reddit.com/r/LabVIEW/comments/3939jy/postlive_cla_practice_exam/). I tried to implement a simple version of the MVC by creating a central model that stores all queue and event refs across the application. I also added proper wrapping API for the messages to send, but the API still takes the queue or event references as input, so each caller still needs to pass the reference. I was doing this a third time (which I won't!), I would put the 'get model' inside each VI of the message API, so the callers of the API don't need to pass the references... I'd be happy to get some feedback before I try the ATM exam practice in a few days. Thanks! CLA Elevator Exam EB_try2.zip
  12. I wrote the elevator practice exam this morning. I'm not super content with my performance, and will definitely need to do better at the exam. The positive note is that it gave me a much better understanding of the format and the requirements. Even though I already knew I shouldn't code too much, I still did I think! The 4 hours just flew by so fast! Anyhow, I would greatly appreciate your feedback. I stopped after exactly 4 hours, so it is quite incomplete. I inserted a tab in front of each requirement that I placed. I placed 80 of them over the 90 the files contains. Of course it's hard to tell, but do you think I would have passed or failed? Thanks Emmanuel CLA Elevator Exam EB.zip
  13. Thanks to both of you. I will have to print and frame this golden rule!
  14. Coincidence, I'm actually facing a related issue right now. My application is compiled in 32-bit and runs nicely on both 32-bit and 64-bit machines. However one new plugin I created calls a 3rd-party dll which has been provided by the supplier in both 32-bit and 64-bit versions. My code was calling either one or the other, based on the OS bitness. But now I understand from what I read that a 32-bit application cannot call a 64-bit dll. So my question is: do you think there is a way to use the 32-bit dll on the 64-bit machine? Right now the dll lives in a sub-folder in C:\. Should I move it to ProgramFiles(x86)? (the application always lives on ProgramFiles(x86). Sorry to hijack the thread a little bit.
  15. If you use the conditional structure with TARGET_BITNESS, the selection happens at compile time. Now you need 2 computers: one to build the 32 bit version and one to build the 64 bit version. Wouldn't it make more sense to use a case structure and detect the bitness of the PC on which the application is being executed? To do that, I use the tip given by rolfk in this thread: https://lavag.org/topic/14002-determine-32-or-64bit-os-windows/
  16. Thanks Crossrulz this is a very thorough article! Everybody else, I'm still eager to get more advice on error handling.
  17. Dear all, I successfully passed my CLD just a few weeks ago at NIWeek and will attempt the CLA on September 10th. I did a lot of research, attended the session on the CLA preparation, and won't bother you with the usual basic questions, I think I have a good understanding of what is expected. However, there are two things I'd like your help with: 1) Requirement tag: I never used them and I'm amazed by how little information there is online. Where do you put them: - BD: Free labels, wire labels - FB: Free labels, free labels inside a cluster - Documentation inside VI Properties - Others? 2) Error Handling: I must admit I lack experience and knowledge about how to create an error handling module, let alone a good one! In my past projects, each module and sub-module was always performing its own error handling... Could you point me to a few different techniques and examples? I'd like to get a good understanding of what is expected from such a module. If I only look at the one from the sample exam, I'm afraid I will just try to memorize and recreate it and it's not what I want to do... I'll start working on the sample exams and will likely post my solution here to ask for some feedback. Thanks
  18. I'm not a fan of using queues to wrap a DVR, since the whole point of DVR is to have an efficient way to read-modify-write a value in memory while guaranteeing its integrity. We make heavy use of DVR and it works like a charm now. During the development phase though, we did run in deadlocks and it's true that a timeout would have made our lives better. But I don't think the final architecture should use DVR timeouts as part of the design. They should only be here to signal an error and be treated as such.
  19. Well it's not only the name. It does look like a wire, and like you said even reference wires obey data flow...
  20. I'm on the same page as Shaun. Maybe it's a matter of habit, but for those of us who have been developing in LabVIEW for years, a wire always controls data flow and execution. This is a golden rule that suddenly doesn't apply anymore, and that's quite disturbing I find.
  21. OK are those really 2 different pictures? Or did they just photoshopped the shirt?
  22. Sorry but I just can't figure out what the picture represents on the 'receiver' side
×
×
  • Create New...

Important Information

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