Jump to content

ShaunR

Members
  • Posts

    4,914
  • Joined

  • Days Won

    301

Everything posted by ShaunR

  1. You need to us gacutil.exe. to get it into GAC. It's like with the old ActiveX where you used to call regsrvr32 (but different ).
  2. The probability of side effects with new features is orders of magnitude greater than fixing a bug that has been localised to a single function. The amount of effort is also disproportionate as a bug will already have regression tests and only require a test (or maybe a couple after error guessing) for that particular case. A new feature will also have more bugs in its test cases because that's also new code.
  3. No. Because that is where it "becomes a factor". Think of it like trying to go faster. Sure you can increase the speed by increasing the power but at some point you get diminishing returns. At 20Km/h you can quadruple your speed with double the power (say). At 200Km/h, if you double the power you get just a couple of Km/h increase. It is not a finite tipping point but a scale of diminishing returns above a certain criteria (when the wind resistance becomes a significant factor, in the analogy). add to that crap tires, out of spec parts and no service history and you maintaining top speed is impossible. This is why it's difficult to get across in a single VI because once that is added to the other factors the whole system becomes a big black hole of effort when in isolation, pointing to any one aspect may seem fine. So OK. How about "Diminishing Returns.vi"?
  4. Philosophically speaking. The whole software industry is going to get a big kick in the gonads in the not too distant future for abusing what was actually a fairly good idea. NIs history of lagging the trends by about 10 years means it will probably roll it out when the first strike hits home. The first red flag is the "customer experience" feedback which immediately saw me reaching for process manager, regedit and firewall rules. M$ have abused it so much that there are now calls within the EU to legislate against it and it has already become synonymous with spyware amongst users. It won't be too long until the software industry is viewed with the same contempt as banking.
  5. You have answered your own question then Your VI is an example of unscalable but it may well be maintainable for small or even medium sized projects. You just need to quantify the "size" where it becomes a significant factor.
  6. Unmaintainable is an amalgam of factors including coupling, architecture, readability and compromises. I fail to see how you would demonstrate that in a succinct way with one VI. Any one on their own is maintainable with effort but as the factors compound the effort required increases exponentially until it is "unmaintainable". That is why many people struggle after the first couple of new feature requests when they grow their software organically.
  7. Indeed. That is one [of a couple] of reasons why I still develop in 2009 which is rock solid and arguably more performant than most, if not all the later versions. I only recompile and deploy in later versions as the customer requests (with one notable exception due to event refnums not being backwards compatible). Those later versions will always be SP1 for the stated reasons. If I hit a project stopping bug during recompilation and deployment in the later versions, I always have the option to go back to a point before the bug was introduced. So far that has happened 5 times which isn't much but I would have been screwed if I didn't work this way.. If you are saying that there will be no difference between SP1 versions and release proper, then you should just drop the pretence that SP1 is a "service pack" and rename it to a "feature pack". Suppliers want to sell new stuff, bugs and all (software always has bugs, right? We just have to accept it as a fact of life!). Developers want both new and existing stuff to just work (new stuff has bugs but they will be identified and addressed in time until there are none). My development Windows boxes have automatic updates turned off. In fact, it has the all services associated with updates disabled-that's how much I distrust them. I now have to re-enable the services,find out which updates are being offered, then read the M$ website and manually select the updates to apply. If there is a "rollup" (aka SP) then it will be installed. The SP never went away, you were able to just get it piecemeal as it became available. But by god, do I have to jump through hoops to prevent "Father M$ knows best". Just take the latest furore with "Game Mode" as a recent example. Of course.. That issue only affects those who jumped right in to get the latest and greatest version. Time has passed. M$ have admitted there is a problem. It will be fixed and then I might (only might, not definitely) update the one and only windows 10 box. The experienced will wait. The impetuous tempt fate. No. A feature is an implementation of a requirement (new code). A bug is a failure of an implementation (existing code).
  8. 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.
  9. It's not a feature. It is an internal class mechanic that you were never supposed to realise was there.
  10. 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.
  11. 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.
  12. 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).
  13. 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.
  14. It's the read you should be looking at
  15. 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.
  16. Choosing between Synchronous and Asynchronous So synchronous is a blocking operation.
  17. 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.
  18. Bullcrap. This is the real reason. Has the TFS sales rep visited recently?
  19. 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.
  20. Is this on LV 64?
  21. 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.
  22. 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).
  23. Did you save your 1.png as an 8bit greyscale image? Try with mine.
  24. 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.
×
×
  • Create New...

Important Information

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