-
Posts
2,397 -
Joined
-
Last visited
-
Days Won
66
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by jgcode
-
Active Content
-
I don't think they are poorly implemented just because you have to initialize them. I don't want to be reading uninitialized data for one (there are warning for this tho on the error wire), and (I am not 100% sure but) there maybe resource optimization reasons for this too (for NPSV). The release of the SV API in 2009 was really cool, as I find it seems to be a bit more polished than Datasocket API (in terms of error handling etc...). One thing that drove me crazy was that the SVE was not linked to the TypeDef (engine?). However, in 2010, this has been added/fixed which is a great step forward. Now if they started to include some of the DSC functionality in LabVIEW Pro...
-
I haven't look at it in detail yet, only had a quick play when it came out as I had to demo it, but in LabVIEW 2009 (or rather DAQmx 9.0) the new TDMS API (2.0) is integrated with DAQmx. The increased speed is attributed to not having to go through the TDMS, LabVIEW or OS buffers, essentially data goes from hardware to HDD. See here, as it mentions logging raw data to reduce file size footprint. Reading out the data should still come out scaled. Worth checking out methinks? Cheers -JG
-
I like using Globals as constants/WNRM or WORMs (posted here by Darren), and have been doing so more and more since that article, especially for tools in LabVIEW. I don't see the point of writing a FGV and the code that sits on top of it when I can use a global, with less work, if the Use Case suits it. I also like AQs ideas on Scoping a Global. As for Single Process SVs (SPSV) vs Globals: SPSV have error in/out to control dataflow SPSV have an optional timestamp if you need to check the last write time SPSV can be easily updated to a Network Published SV (NPSV) I use SVs more in RT apps etc... A few other things... you need to initialise the SV variable before you use it. You can also buffer these variable in different ways. And the configuration is Project based. I am not sure where SPSVs store their data now. If i remember correctly in 8.5, it used to create a VI for each variable (that was annoying). For globals the data is stored in the FP of a VI and you can have multiple objects in that VI. So you can view data easily, e.g. for Tools, you can open this VI and as a developer you have essentially created a configuration dialog for your tool. Summary: I think it really depends on the use case and user preference!
-
I go in through Active Content.
-
Some of my GUI got severely messed up when they were compiled n XP but were run buy the client in Win7. I found it easier to switch to compiling in Win7.
-
Shared Variables 2010 now support Type Def Linking
jgcode replied to jgcode's topic in Development Environment (IDE)
Tell me about it This will translate into other areas too - for example in LV2009 a Shared Variable API Refnum will also break when linked to a typedef, and the type-def is updated. -
Thanks huotom. Sorry, some files were missing from the build. The new version (0.14.1) is up on LAVACR and has fixed this issue. Cheers -JG
-
In LabVIEW 2010 if I now link a Type-Def to a Shared Variable, the linking is persistent on the Control updates This is a feature I have been looking forward to for a while. I didn't know it made it in until I just tested it then, so I'd thought I'd share. This is going to save a lot of time. Thanks NI Cheers -JG LabVIEW 2009 <object id="scPlayer" class="embeddedObject" width="619" height="633" type="application/x-shockwave-flash" data="http://content.screencast.com/users/jgcode/folders/LabVIEW/media/c01d213a-8e59-4b38-8d61-01c66567b340/jingswfplayer.swf"> <param name="movie" value="http://content.screencast.com/users/jgcode/folders/LabVIEW/media/c01d213a-8e59-4b38-8d61-01c66567b340/jingswfplayer.swf"> <param name="quality" value="high"> <param name="bgcolor" value="#FFFFFF"> <param name="flashVars" value="thumb=http://content.screencast.com/users/jgcode/folders/LabVIEW/media/c01d213a-8e59-4b38-8d61-01c66567b340/FirstFrame.jpg&containerwidth=619&containerheight=633&content=http://content.screencast.com/users/jgcode/folders/LabVIEW/media/c01d213a-8e59-4b38-8d61-01c66567b340/SV%20Type%20Def%202009.swf&blurover=false"> <param name="allowFullScreen" value="true"> <param name="scale" value="showall"> <param name="allowScriptAccess" value="always"> <param name="base" value="http://content.screencast.com/users/jgcode/folders/LabVIEW/media/c01d213a-8e59-4b38-8d61-01c66567b340/"> </object> LabVIEW 2010 <object id="scPlayer" class="embeddedObject" width="711" height="648" type="application/x-shockwave-flash" data="http://content.screencast.com/users/jgcode/folders/LabVIEW/media/f8ea8774-4a97-4fdb-94ff-ac0b5413e00a/jingswfplayer.swf"> <param name="movie" value="http://content.screencast.com/users/jgcode/folders/LabVIEW/media/f8ea8774-4a97-4fdb-94ff-ac0b5413e00a/jingswfplayer.swf"> <param name="quality" value="high"> <param name="bgcolor" value="#FFFFFF"> <param name="flashVars" value="thumb=http://content.screencast.com/users/jgcode/folders/LabVIEW/media/f8ea8774-4a97-4fdb-94ff-ac0b5413e00a/FirstFrame.jpg&containerwidth=711&containerheight=648&content=http://content.screencast.com/users/jgcode/folders/LabVIEW/media/f8ea8774-4a97-4fdb-94ff-ac0b5413e00a/SV%20TypeDef%202010.swf&blurover=false"> <param name="allowFullScreen" value="true"> <param name="scale" value="showall"> <param name="allowScriptAccess" value="always"> <param name="base" value="http://content.screencast.com/users/jgcode/folders/LabVIEW/media/f8ea8774-4a97-4fdb-94ff-ac0b5413e00a/"> </object>
-
I hear ya!
-
Nice link. I wonder if the MGI people have a solution for inherited class? (and whether they post here?) Managing multiple Section names for inherited classes was too hard for me, I much prefer OpenG VIs.
-
GDamnit, I suck
-
I have had some customers who just want to 'see' the data, others like to (or are happy to) use it as an API into the system. I thought this would be a bit more of a higher priority in most cases (not higher than than the test rig working obviously) e.g. From my experience only, customer loses their app custom settings on startup = annoyed customer. So its normally a req.
-
Thanks Dave My next step is to open this up. The settings are what I like, but obviously people would have their own templates that they like - so I can point to those. [Virtual Folders] The LVOOP Assistant gives me the option of adding my favorite folders anytime to the Class without the need to worry about syntax or scoping etc... (and if they already exist it just ignores it). You can start with a few and as your Class changes over time you can bang in more. I don't want to get bashed, so I am going with L-VOOP
-
No probs! I did look that this originally, but yer, its not really maintainable for me, so v1.0.5 is all opened up.
-
Agreed. Sorry, I was out most of the morning, so I didn't spend as much time on feature some of it as I wanted to. But wanted to get it out for feedback My first goal was proof of concept (that I could script it). I can always give it a facelift, now that I have the functionality. So at the mo, you are cloning the active VI, i.e. QD'd VI. I tossed up separating the functionality into another tool (but didn't for whatever reason) - so I have thought about that it may not be best suited where it is. So for now (no proj int): Maybe a dropbox of all VIs in the Class would have made more sense too? You could clone multiple methods at once, but that is not my usually use case. I could make it a separate Tools Menu action that operates on the Active VI - that might make more sense?
-
Good point - although I thought that was what the resource folder was for I have been digging into this API more and more with scripting etc... So I didn't want to keep doing this from disk.
-
How do you normally (/like to) store your application's configuration (settings) data? For me: Like MGI's example I like to keep the data in the Object and read and write the "Object" rather than passing the data out to some other structure. This means I do not have to expose 'private' data through less protected APIs, whilst making use of cluster to ini functions and not having to expose that cluster as well (except to File IO Friend Class).
-
-
Feature Request: Clone a Method VI I have updated the repository with a new version - you can now easily clone a method using this tool. Supported Templates include: 4815 - 4x2x2x4 4833 - 5x3x3x5 4834 - 6x4x4x6 4835 - 8x4x4x8 (Assumes any other LVOOP Class Control is a data member or parameter). <object id="scPlayer" class="embeddedObject" width="1113" height="737" type="application/x-shockwave-flash" data="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/a4f9ea3b-9061-4523-88b1-452d556909df/jingswfplayer.swf"> <param name="movie" value="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/a4f9ea3b-9061-4523-88b1-452d556909df/jingswfplayer.swf"> <param name="quality" value="high"> <param name="bgcolor" value="#FFFFFF"> <param name="flashVars" value="thumb=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/a4f9ea3b-9061-4523-88b1-452d556909df/FirstFrame.jpg&containerwidth=1113&containerheight=737&content=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/a4f9ea3b-9061-4523-88b1-452d556909df/LVOOP%20Assistant%20-%20Clone%20Method.swf&blurover=false"> <param name="allowFullScreen" value="true"> <param name="scale" value="showall"> <param name="allowScriptAccess" value="always"> <param name="base" value="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/a4f9ea3b-9061-4523-88b1-452d556909df/"> </object> This feature was sponsored by: Where drinking from a camouflaged can... ...makes you look tough.
-
Thanks dude! I want to run script that finds any member in Project that is a Child of Parent by Name/Ref (not static - so I can't use the constant). Is there a better way to do this? - Given the above, I am thinking just looking at the Ancestor Paths for a match in path?
-
Is there anything wrong with this code or is it just me? I think I am doing the same check however, with the GetLVClassDefaultValue.vi but it passes (but I expect it to fail). Thoughts?
-
Hi Guys Attached is a package that installs a palette in user.lib to expose the Variant Data Type API found in vi.lib\Utilities\VariantDataType. Enjoy -JG jgcode_fix_ni_variant_data_type-1.5-1.ogp [LabVIEW 8.2+]