-
Posts
4,882 -
Joined
-
Days Won
296
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by ShaunR
-
I see you have you marketing hat on The reason for waiting until SP1 is for others to find all the bugs and for NI to address them. It is a function of risk management and it is far better if no new features are added so that no new bugs arise. 6 months is actually a good time-frame to see what falls to pieces in a new version, what work-arounds are found and if NI will fix it. For this reason I encourage everyone to get the latest and greatest as soon as it hits the ground If a driver/device isn't in a new version, then there is little reason to upgrade at all if you are dependent on it - so I don't buy that. If a project critical feature is only added in SP1, then it is usually a case of wait for SP2 (for the aforesaid reasons). I've never seen one of those from NI but you do get bug fix updates occasionally so it is a wait for one of those. The "wait for SP1" isn't a LabVIEW thing, by the way. It applies to any new versions of software toolchains (and used to apply to Windows too). Your argument for SP1 is feature driven when, in fact. the hesitancy for the arrival of SP1 is performance and stability driven irrespective of features.
-
Slow Index Array of Classes
ShaunR replied to GregFreeman's topic in Application Design & Architecture
It's not a feature. It is an internal class mechanic that you were never supposed to realise was there. -
You have all that time? They are not working you hard enough Minor Updates ship roughly every six weeks. These updates may include new features, bug fixes, and changes needed to reflect platform changes (e.g. changes in Windows). You’ll be able to tell which minor update you’re running by opening the Help, About and reading the second digit of the version number, for example 15.1 or 15.2. Servicing Updates are very targeted releases that typically contain bug fixes and ship more quickly. These servicing updates can ship often (e.g. weekly). You’ll be able to tell which servicing update you’re running by opening the Help, About and reading the third string in the version, for example 15.1.x, 15.2.y. source Not even the same ball-park, I'm afraid. Here's the thing with a). Changing versions is a huge project risk. You may get your old bug fixed (not guaranteed, though) but there will be other new ones and anyone who converts mid-project is insane. In fact. I would argue that anyone who upgrades before SP1 is out is also insane. Requiring customers to buy a new version to fix a bug is, IMO, bordering on predatory. I expect you will find that most people that you say buy the new version are on a SSP so they get it anyway even if they are using an older version. In fact. Unless you have an SSP you can't even get to talk to anyone about bugs as you cannot get past the gate-keepers. New entrants won't be looking for old bug fixes-they will expect (rightly or wrongly) for it to be bug free and will be seen in these forums when they encounter one as they can't wait 6 months.
-
Because the release time-frame for bug fixes and LabVIEW itself doesn't help with the project at hand and it may quite possibly be rolled up into a new LabVIEW release requiring a new purchase. So people ask some questions on the forums, find a work around and move on. We are working on weekly timescales and NI is 6 monthly. We need to resolve bugs within days, not months. A bug fix in 6 months time might as well be never, especially if we have to buy a new LabVIEW version to get it.
-
There seems to be two aspects to this discussion. 1. An inbuilt conditional case activated for enabling/disabling user debugging code predicated on existing VI settings and finding other vi specific settings to bolster this one case. 2. An argument for adding one (or more) additional, built-in, conditional disable structure defines in the face of resistance to changing anything in the (probably fragile) codebase. If you win #2, you can do #1 but #1 is a very specific case that I certainly have no need for. However. I have another non vi specific one that I would like to see the conditional disable structure support (ammunition for #2). I would like to see a case implemented for the "LabVIEW version" since I have several pieces of code that have to determine this at run-time and use a normal case structure to switch the code.The run-time gymnastics of this is disproportionate to the simplicity of a conditional disable for this purpose. In a couple of extreme cases it has required a post-process VI to be run on the target system and scripting to make modifications. This has meant that the VIs cannot be password protected and therefore a licence cannot be attached to them (I have had to ask for an NDA).
-
I guess there is no interest in this as there were no respondents, so I have decided to not publicly release it and the HackRF one.
-
Not able to receive data using VISA Serial
ShaunR replied to Nishar Federer's topic in LabVIEW General
It's the read you should be looking at -
Not able to receive data using VISA Serial
ShaunR replied to Nishar Federer's topic in LabVIEW General
In synchronous mode the function will return once the data has been received (or a timeout) by sitting in the polling state until the data has been received (the function is blocked). In asynchronous mode it will return almost immediately and not wait for the polling state (non-blocking). The threading is just the mechanism to achieve this so I don't know what you are trying to say with that statement. -
Not able to receive data using VISA Serial
ShaunR replied to Nishar Federer's topic in LabVIEW General
Choosing between Synchronous and Asynchronous So synchronous is a blocking operation. -
Not able to receive data using VISA Serial
ShaunR replied to Nishar Federer's topic in LabVIEW General
Delete the "Bytes at Port" and rewire. Right click on the "Serial Read" and select "Synchronous I/O Mode>Synchronous" (the little clock in the corner of the Read icon will disappear). It will then block until the termination character is received and return all the bytes or timeout. This is the simplest way of getting up and running and you can look at asynchronous reading later if required. -
Bullcrap. This is the real reason. Has the TFS sales rep visited recently?
-
The issue is not much to do with LabVIEW and very much depends on the distro and versions already present. Your next issue may be that Linux will load another DLL with the same name if it is present in the general locations and everything will crash. The DLL should also be compiled with "-soname" so that ld and ld_config are aware of what it should do with it-dlls need to be installed, as such The easiest way is to just put it in the appropriate lib/lib64, for that distro run ld_config. Then use a symlink to point to it and hope it works. LabVIEW sees through symlinks so as long as you name the symlink the same as the library, in the CLN path, it will work on all platforms - you can just have the DLL itself in the app directory on Windows so it's business as usual. It's then demonstrably the users distro/configuration that is the problem if things don't work. If it doesn't work then you have conflicts with other, already loaded version and since the LabVIEW CLN function cannot be set to " RTLD_DEEPBIND "; you are stuck This is what -soname is supposed to alleviate but I've had mixed success. If this is the case, you can point the symlink to the version already loaded (if you can figure it out) which will work as long as the binary interface (ABI) is the same - they don't think twice about breaking it between versions, though (yes I'm looking at you Python!).You will end up spending most of your time answering Linux support with a myriad of configurations as everyone has all sorts of favourite crud installed. My advice is to get it all production ready and installation proof on windows and think about Linux for version 2. Linux devs can still try the symlink method if they are aching to use it, but you can avoid all the Linux rabbit holes while you concentrate on the library itself.
- 172 replies
-
- 1
-
Is this on LV 64?
-
About 600-800us if memory serves. For Linux I opted for a symlink to the *so if it's not on the search path. If you try to load a *so from the local directory and there is another elsewhere on the search path; you normally end up with crashes. Linux handles dynamic loading poorly which I suspect is why most people statically link.
- 172 replies
-
- 1
-
image processing Apply LUT to grayscale images to produce Pseudo-color Images
ShaunR replied to 花落阳关's topic in LabVIEW General
The LabVIEW help has the answer ( Intensity Graphs and Charts ). There are also examples shipped with LabVIEW, one of which includes a VI with which you can create your own colour tables for them. Once you understand how #1 works you will [hopefully] see how to emulate the behaviour with an image indicator by reproducing the colour table behaviour of the intensity chart. If you get into difficulty; post what you have tried (the VI rather than an image). -
image processing Apply LUT to grayscale images to produce Pseudo-color Images
ShaunR replied to 花落阳关's topic in LabVIEW General
-
I have a LabVIEW RTL SDR wrapper around the rtlsdr.dll that I've been using and want to release it into the wild. Since I only have one device, I would appreciate it if others could try it with theirs. The state of the driver is final beta testing before release (RC1). Once I'm happy with it and proved it doesn't just work for me, it will be packaged and released (under BSD licence) so I'm looking for test pedants Since it isn't packaged, I'm looking for people that are comfortable with using it from the project file and the IDE rather than from palettes and already have the rtlsdr and usb binaries. There is an example (shown above) so you should be up and running quickly. If you have a RTL2838 based SDR and some time to run the example and report issues;. let me know and I'll see you get a copy.
-
image processing Apply LUT to grayscale images to produce Pseudo-color Images
ShaunR replied to 花落阳关's topic in LabVIEW General
-
I think you misunderstood my objection.
-
I'm not sure I'm understanding correctly. But could you not put all the data into a sqlite database and query using "group by" for display?
-
I'm not familiar with that Rohde and Schwarz product but I did previously work at Anritsu with their equivalent products as well as evaluating competitors products. Most devices are SCPI compliant across manufacturers and if you truly want to take advantage of different manufacturers' equipment I would suggest forgoing the specific LabVIEW drivers and cherry picking the SCPI commands to produce configuration and script recipes that work on common command sets. Most devices of this type already have inbuilt functions for most measurements and a quick look at the datasheet seems to show that they are present for CISPR 16, at least. That said. They are pretty standard kinds of measurement for RF equipment generally and the standards will mainly dictate setup and measurement tolerances. Creating recipes for tests with the raw SCPI commands will greatly simplify your code and performance will be dictated by the hardware. Many times a test boils down to a configuration that you can store in the device itself and just select a program number or name.
-
Hardly. It's like pitching your tent inside your house because you don't have a hammer for tent pegs. Sure, the tent is up. But now you have to move your entire house when you want to go camping! I get really annoyed with the Linux community who's only answer for any Windows issues is to install Linux (or Cygwin)..
-
-
I have a partition (F:\) that contains all my code (my whole disk, USB drives and SD card are Vera-crypted, so I'm even more paranoid than Rolph ). The top level of F:\ looks like this: F:\CB F:\CT F:\LV F:\MingW F:\PHP F:\ RUST F:\WEB F:\VS (CB=Codeblocks, CT:=Codetyphon, LV=LabVIEW, VS=Visual Studio) Under F:\LV I have the different LV versions: 2009 2010 2011 2012 2013 2014 2015 2016 2017 And each has the following structure Components Products Projects. Each project has an entry under "Projects" (duh! ) and all have the following structure API Bin Build Core Docs Examples Menus Test The project file and any dynamic libraries directly loaded sit at this level (F:\LV\<LabVIEW Version>\<Project Name>). The Bin directory will contain both 32 and 64 bit,libraries but the bitness that is worked with (usually 64 bit) will be here. From that point it gets more flexible and project specific. However. SVN plays an important role here since copies across versions are never copied from directory to directory. Instead they are checked out from SVN.