Jump to content

ThomasGutzler

Members
  • Content Count

    200
  • Joined

  • Last visited

  • Days Won

    22

ThomasGutzler last won the day on April 26

ThomasGutzler had the most liked content!

Community Reputation

60

About ThomasGutzler

  • Rank
    Very Active

Profile Information

  • Gender
    Male
  • Location
    Sydney

LabVIEW Information

  • Version
    LabVIEW 2018
  • Since
    2003

Recent Profile Visitors

2,831 profile views
  1. That was there to avoid the "Save modified files" dialog blocking everything. That was before I knew about the headless instance.
  2. Thanks for the insight! G-CLI has been on my to-look-into list for a while. Haven't had the time yet. At the moment our only timeouts come from the build pipelines, which means if something goes wrong the pipeline fails and the developer has the press the "try again" button (After inspecting the build log to check if it's a true fail or not). Not the end of the world if the second build works.
  3. Thanks Joerg, I've seen your website before. Probably while I was looking for solutions. I guess, in theory, my stuff works too. It's just the pain of debugging when things don't go as they should because LabVIEW decided to corrupt its compiled objects cache, or that build error that we get when we have the build folder open while it's building that sometimes happens even that folder isn't open, or solar flares... The fact that I can't debug a build that froze or do anything useful with an instance that got started programmatically and isn't finishing just opens this immense guessing
  4. We've been building executables and vipm packages on Azure for quite a while now and most builds work. Our driver package (6500 files) takes about 45 minutes on a pretty low spec PC. Applications usually build within 10 minutes. All our builds are LabVIEW 2018 64bit though, no multi-version doom. But there's no reason why you couldn't build multiple versions. With Azure build pipelines you have the choice of either self-hosting your build server or using an Azure VM which you have to install the complete toolchain on. Azure VMs can spin up/down on demand which is supposed to save you
  5. Thanks! I'm going to try the LocalHostAppInstance. Looking at the options we have, is it fair to assume that I can ALSO set unattended mode or might that already be included? Would I be able to set all those things in the .ini file instead of starting an instance inside an instance? I can't find any documentation about it
  6. Hi, I've been working on this for years but I still haven't managed to set up a build server that builds reliably. My inputs are a vipc file and a .lvproj with all relevant files checkout via git. From there it's a two-step process. A powershell script makes 2 separate calls to labview using two small helper vis: 1.) apply vipc file using VIPM API; close labview entirely 2.) build the project given a build spec name In the end of step 2 it comes down to this And I have no idea if the last 2 steps are needed but I'm definitely trying to work around problems t
  7. I remove all compiled code from my vis and rarely see problems with it. Nothing that can't be resolved by clearing the compiled object cache. However, I found that the project-level check box doesn't work properly, so I wrote my own quick drop plugin that goes through the project to fix everything up. In VIPM I usually keep the mass compile option after install checked, except for our build servers because they install a different set of packages with almost every build and it takes longer to mass compile everything. Remove Compiled Code.vi
  8. What Neil said. Looks like you've got it worked out. The hardest thing to get your head around is the factory instrument creation. This is the only place where you might not use dynamic dispatch to call instrument specific vis containing their specific configuration. But as @drjdpowell said, you can use JSON for that.
  9. Factory is a good way to create your instruments but you probably want one factory for all instruments rather than one for each type. That way you only pass the parent (abstract) reference around, which makes it easy to swap out one concrete instrument for another of the same type. Returning different data types from classes of the same instrument type is something you don't want. When designing your classes, you should already know what kind of data you expect that class structure to handle and all instruments of one type should be able to put their data into that one given format. Maybe
  10. Ok, I obviously got fooled by the abstraction of the VISA driver. The reason why my initial code "works" is that I never enabled the Term Char. Without looking up the details of the communication protocol over USB I'm assuming that it contains some sort of "message end" that isn't a term char but is understood by VISA. Otherwise, I'd be getting timeout errors on the 65535 byte reads. Nevertheless, I have changed my reads to the suggested method (but without term char enabled) and queried the scope using the old method until I got another timeout. And there is no timeout using the new
  11. I see where you're coming form @crossrulz, but if the presence of a term char in the data was a problem, why am I getting exactly the right amount of bytes?
  12. Hi, I'm connecting to a Rigol DZ1000 Oscilloscope via USB and using the :DISP:DATA? ON,0,PNG command to grab a screenshot. Reading out the data in blocks of 65535 bytes until there is no more (see attached vi). This normally works fine but yesterday I was getting a timeout error. I fired up IO Trace and got this: > 783. viRead (USB0::0x1AB1::0x04CE::DS1ZA201305475::INSTR (0x00000001), "#9000045852‰PNG.......", 65536 (0x10000), 45864 (0xB328)) > Process ID: 0x000039C8 Thread ID: 0x00001760 > Start Time: 13:13:54.1169 Call Duration 00:00:10.4323 > Status:
  13. We use Macrium, the free version. It does the job. Also never had to restore... yet
  14. Thanks @LogMAN and @drjdpowell, I was unaware of the "Diff" vi. I'll use it to throw my own error. ☝️
  15. Help Is there a way to parse this JSON string into this cluster in the following way: - The order of elements inside the "Parameters" cluster does not matter. No error - I can use enums - The name of the elements matter. "TWOoo" shouldn't end up populating "two" (even if the order of elements matches the cluster). I want an error here instead of "two" being the default value - Don't care if JSON text has additional elements that aren't in the cluster. No error In short, features: Strict name checking, order independence, error if element missing I've tried so many
×
×
  • Create New...

Important Information

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