-
Posts
4,856 -
Joined
-
Days Won
293
Content Type
Profiles
Forums
Downloads
Gallery
Posts posted by ShaunR
-
-
I guess that by saying you are using the "Client Request Waveform" that you are actually polling for the wave forms rather than streaming. This is really bad for performance since you get double the amount of network latency.
16000 data points (assuming double precision numbers) equates to about 125KB. On a 100Mb connection you should be getting in the region of 60-80 updates per sec (10MB/125kB = 80).
For an example of streaming waveforms, take a look at Transport.lvlib
-
All controls/indicators have a "visible" property.
- 1
-
Peak detection above or below waist? (Peaks above=female, peak below=male)
Seriously though.
I read somewhere that the fundamental frequencies for males voices are about 120Hz and for female are about 210Hz. so i expect Fourier is the way forward.
-
Labwindows is (essentially) ANSI C. But it is the packaged libraries you will have to learn since they are proprietary to NI. I would dive straight in with Labwindows (C doesn't have front panels for example) and any good book on C will do for the stuff in-between.
-
How about a pitch shifter (make people sound like they are on helium). If you google, there is even an example in labview.
-
Certified 8-30-2010 placed in Remote Control, Monitoring and the Internet
-
Resubmitted on 8-27-2011 due to accidental deletion of file.
Many thanks Mark.
-
-
Maybe you can rename it to just plain "Transport".
Well. It's not a different product, just a different version. I was kinda hoping the old one wasn't deleted permanently and it could be merged back in. would renaming mean that this would be possible?
-
Name: Transport.lvlib
Submitter: ShaunR
Submitted: 27 Aug 2011
Category: Remote Control, Monitoring and the Internet
LabVIEW Version: 2009License Type: Other (included with download)
Transport.lvlib is a LabView API to simplify and accelerate networked communication development.
It simplifies development by abstracting TCPIP, UDP and Bluetooth and TLS interfaces
into a single polymorphic vi which is a thin wrapper around the conventional
open, read, write, close and listener VIs for all the network interfaces.
Features:
Supports TCP/IP, Bluetooth, UDP (p2p, broadcast and multicast) and TLS.
Supports symetric encryption (blowfish).
Supports compression (zlib).
INSTALLATION:
Run the supplied installer and follow the instructions.
- 2
-
Fast Trim rermoves null chars (non-printable) and not just whitespace.
-
Ok, so this is an update of the VI based on the above.
Is everyone happy (e.g. this is the most optimized version for common use case).
These are the relative times (note: Time New and Trim Whitespace+ are now the same BD):
Looks familair . But I think the second 0xD in the arrays needs to be a 0xB if it is considered a white-space (personally, I don't think 0xB and 0xC are...but that's probably a judgement call).
-
i5-2410M only 2 cores I am afraid!
Hmmm. Foesn't make a lot of sense. Must be sheer willpower then
-
True, except I think he never found a 1 or an eight, right? So I guess it's the sextet that I truly understand. And we have come full circle.
-
@JG
Well. Both functions of yours are much faster than on my machine. Not running on a quad core are you? (it does use parallelism).
Yes I have optimised the order. But for the purposes of your tests; I moved the space char to be the last.
But in my tests (poor lowly Dual core) it made no difference whether it was in the first frame or last. The original was about 10ms faster, but since your tests are 100 ms faster than mine anyway;that's about a gnats fart It's interesting to note that in both our cases, the native LV function is pretty similar. Again I'm coming back to parallelism since the regex functions only use the UI thread (if I remember correctly).
Note that I don't have the openG libs installed so the old one is disabled (hence zero)
Still waiting to see the performance improvements in 2011...lol.
@JK.
The main advantage of this method (over and above just being faster than the in-built function) is that it is very robust in terms of the length of the string (very similar times for a short string of say 10 chars and one of ..say 10,000 chars-all beginning and end white spaces being equal). Performance is dictated by the number of white spaces only, unlike the other methods that need to iterate over the entire string.
-
@ JG
Why have you slowed it down? (those arrays were inside the for loops for a reason )
@JK.
You are right. The original Trim Whitespace+.vi (thanks for pointing out the two chars I missed JG-are they considered whitespace?) was a direct replacement for the built in Trim [whitespace] function. However. the Fast Trim was more useful on comms strings (especially serial) where you can have all sorts of non-printable chars and not just "whitespace".
- 1
-
Why is everyone's avatar all messed up? Is it just my eyes after writing LabVIEW all day?
JG always looks like that
-
I am stuck on how to be able to generate new tab pages on the fly. In the meantime I will just have some number of blank subpanels within parent tab pages.
Use the system tab rather than the Labview one. It has the method to create them on-the-fly (if I remeber correctly).
-
Try unchecking "Remove Polymorphic Instances" and verify that you have no broken VIs in disabled structures.
-
This is a real pain and gives no indication whatsoever where to look.
You get it after building an application exe that works fine in the IDE and usually find that a diagram disable structure somewhere isn't doing what it says on the tin.
-
Making optical fibres listen.
-
Hey Shaun
I have an API for interacting with the project, I do similar things with builds for exes and installers so I thought I'd give PPL a go and see if it works.
I was able to get it to go however, I don't use the AppBuilder_API (I have never really), instead I use PN's and set the XML tags.
You should be able to replicate from this quick video:
That's sweet. I'm not a great fan of the app builder API either. At what point does the build.vi get executed? Is it run whenever you create a new project? (wasn't clear from the video which I had to scroll around to see...lol)
-
MANY users wanted "stability" over "new features" and IMO that is what they got in 2011
My point is that you shouldn't have to pay for stability and upgrading to a new version is not a bug fix, it is a project risk.
- 1
-
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...
Paying for bug fixes by being forced to upgrade has always been my major criticism of NI (what about my 2010 and 2009 installations?). I would also question if many of the speed improvements are really much faster than 2009. 2010, yes. That was a slug. But compared to 2009? Maybe in some circumstances (FPGA?), but I haven't seen many yet. Personally, now I have had a chance to play with it, I don't think there is much in it from a user experience point of view. From an execution view point, I have seen 1 instance where 2011 x32 was faster and 2011 x64 was slower than 2009 and all the rest about the same for identical code. I have already commented previously that 2010 was about 3x slower at compiling, loading and saving than 2009 so when the "selling" point is speed and stability. Is it worth paying thousands for a more stable 2009? (Well. It is since, the bugs in 2009 won't get fixed )
If you ask me (I know your not...but I'll pretend anyway ). One of the biggest improvements that I would have paid a ton of gold for (in recent history) was never a major selling point.- 32 AND 64 bit compilers. Although I can still find something to moan about with those too
-
Adam Curtis
-
I would be very interested to see a similar graph for CARs raised by customers for the different versions.
Variant vs Native Datatypes
in Object-Oriented Programming
Posted · Edited by ShaunR
You can still use it, but show the caption instead of the label. I use a similar method for changing languages.
Captions are not used nearly as frequently as they should be (IMHO)