Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 04/21/2019 in all areas

  1. 9 points
    Hey folks. this year we're trying something new. All Videos for NIWeek 2019 can be found here: https://labviewwiki.org/wiki/NIWeek_2019 Feedback welcome. Thanks to @Mark Balla and other volunteers for recording the videos. Edit: We're starting to add the back catalog to YouTube. NIWeek 2018 videos are also up.
  2. 6 points
    So I wasn't there but there was a public announcement at GDevCon about a new edition of LabVIEW called Community Edition which is the LabVIEW Professional version (I read that as application builder included), and completely free with no watermarks for non-commercial use. NI hasn't made any post about timelines, or other details yet but I hear those are in the works. This is obviously a huge thing for LabVIEW as any monetary barrier to entry will discourage new developers from experimenting with LabVIEW. And then there is the fact that those that are familiar with LabVIEW, can keep up with the newest version outside of their company, or when they are between jobs.
  3. 6 points
    You people are so laid back and forgiving. I’m an editor on multiple wikis across cyberspace, and none of the others are anything less than draconian. Capitalization whatever?! Wow. I’m going to need to wear my oversized Hawaiian shirt and cargo shorts when I’m editing, just to get in the right state of mind! 🙂
  4. 5 points
    We'll grow into it eventually 😋
  5. 4 points
    You can extract the labels from the type descriptor, once you know where to find them in the array. I added support for it in this open source DataManipulation library. Check out the OpenDescriptor palette. You can install the latest release (1.1.0.5) from here: https://github.com/LabVIEW-Open-Source/DataManipulation/releases/tag/1.1.0.5 (download VIP file and install with VIPM). Once installed, you'll find the "List Element Names" method under Addons>DataManipulation>OpenDescriptor palette. (It can list enums and cluster elements as well, although those are natively supported under the Variant Utilities palette.)
  6. 3 points
    Version 1.2.0.6 released. https://github.com/LabVIEW-Open-Source/DataManipulation/releases/tag/1.2.0.6 Added support to return a list of Event reference types (class of event) for Event Registration Refnums Controls, Panes, Splitters, VI References and Application References. Array is empty for all other datatypes. ** Please note that this does not drill into clusters of Event Registration Refnums. This is only one-level deep. I have not tried, but I assume that getting the cluster elements and then looping on those should work...
  7. 3 points
    Have the topics been converted to the lava forum with the same topic id? If so, you can just enter the topic-id in the url and add a - with anything behind it https://lavag.org/topic/1524-anything-you-want works just fine
  8. 3 points
    NI is bringing 2 NI myRIO devices for Door Prizes.
  9. 3 points
    am I doing this right?
  10. 2 points
    I threw this together, and maybe someone will find it useful. I needed to be able to interact with cmd.exe a bit more than the native system exec.vi primitive offers. I used .NET to get the job done. Some notable capabilities: - User can see standard output and standard error in real-time - User can write a command to standard input - User can query if the process has completed - User can abort the process by sending a ctrl-C command Aborting the process was the trickiest part. I found a solution at the following article: http://stanislavs.org/stopping-command-line-applications-programatically-with-ctrl-c-events-from-net/#comment-2880 The ping demo illustrates this capability. In order to abort ping.exe from the command-line, the user needs to send a ctrl-c command. We achieve this by invoking KERNEL32 to attach a console to the process ID and then sending a ctrl-C command to the process. This is a clean solution that safely aborts ping.exe. The best part about this solution is that it doesn't require for any console prompts to be visible. An alternate solution was to start the cmd.exe process with a visible window, and then to issue a MainWindowClose command, but this required for a window to be visible. I put this code together to allow for me to better interact with HandbrakeCLI and FFMPEG. Enjoi NET_Proc.zip
  11. 2 points
    Some good stuff there, $15 gets you everything. https://www.humblebundle.com/books/data-analysis-machine-learning-books?partner=gamefromscratch
  12. 2 points
    I found some spam on the wiki and would like to request deletion, but there doesn't seem to be an option (probably because I don't have the rights). So, is there a way to notify administrators (currently only @Michael Aivaliotis?) directly or should we open new topics here? Here are the offending pages. https://labviewwiki.org/wiki/Is_there_some_magic_to_get_URLForUbiquityContainerIdentifier_to_work_besides_setting_up_the_Entitlements_Stupid_http://nfltickets.me/baltimore-ravens-tickets/_thing_keeps_returning_nil https://labviewwiki.org/wiki/Being_The_Best_Pet_Owner_In_Town:_Tips_And_Tricks_by_Gita_I._Reimnitz https://labviewwiki.org/wiki/Caring_For_Your_Kitty:_Top_Tips_And_Advice_by_Sindy_P._Lanterman https://labviewwiki.org/wiki/Jijijijijiji_te_dije_q_lo_usaras_http://convenientcarpetcleaning.com/washington/carpet-cleaning-in-pasco-wa/_rapidooo_merf https://labviewwiki.org/wiki/Prohibir_el_acceso_a_los_Colocolinos_que_portan_sus_entradas_es_sumar_mas_violencia_a_una_actividad_http://kyleleon-musclemaximizer.com/reviews/_que_esta_en_crisis https://labviewwiki.org/wiki/This_man_just_said_she_get_more_miles_than_a_18_wheeler_smh_http://convenientcarpetcleaning.com/new-mexico/carpet-cleaning-in-farmington-nm/_mauryshow Edit: There also seem to be some orphan files that should be released of their existence: https://labviewwiki.org/wiki/File:Bomboniera_solidale_matrimo_2359.jpg https://labviewwiki.org/wiki/File:Betting_on_nfl_5601.jpg https://labviewwiki.org/wiki/File:Bitcoin_piracy_3126.jpg https://labviewwiki.org/wiki/File:Binary_options_3986.jpg https://labviewwiki.org/wiki/File:Abogados_Madrid,_Despacho_de_Abogados_laboralistas_2813.jpg https://labviewwiki.org/wiki/File:50_shades_darker_1556.jpg https://labviewwiki.org/wiki/File:Bomboniere_matrimonio_4754.jpg https://labviewwiki.org/wiki/File:Buy_dianabol_3532.jpg https://labviewwiki.org/wiki/File:Cakes_4375.jpg https://labviewwiki.org/wiki/File:Capetown_wedding_venues_1999.jpg https://labviewwiki.org/wiki/File:Cheap_costume_jewellery_2542.jpg https://labviewwiki.org/wiki/File:Cercacasa.it_5533.jpg https://labviewwiki.org/wiki/File:Cheat_hidden_chronicles_3336.jpg https://labviewwiki.org/wiki/File:Chicago_tuckpointing_2777.jpg https://labviewwiki.org/wiki/File:Christmas_bows_1816.jpg https://labviewwiki.org/wiki/File:Computer_system_clock_2606.jpg https://labviewwiki.org/wiki/File:Computer_training_1367.jpg https://labviewwiki.org/wiki/File:Contact_Us_-_4664.jpg https://labviewwiki.org/wiki/File:Bomboniera_solidale_matrimo_2838.jpg https://labviewwiki.org/wiki/File:Descuentos_3610.jpg https://labviewwiki.org/wiki/File:Does_wartrol_work_4699.jpg https://labviewwiki.org/wiki/File:Dog_ideas_1934.jpg https://labviewwiki.org/wiki/File:Driving_lessons_in_solihull_1129.jpg https://labviewwiki.org/wiki/File:Driving_schools_in_Solihull_1174.jpg https://labviewwiki.org/wiki/File:Find_out_more_about_Access_control_2363.jpg https://labviewwiki.org/wiki/File:Fixing_laptop_toronto_1598.jpg https://labviewwiki.org/wiki/File:Folding_camper_transport_884.jpg https://labviewwiki.org/wiki/File:Food_distributors_4956.jpg https://labviewwiki.org/wiki/File:Going_here_2091.jpg There is no end to this... https://labviewwiki.org/wiki/File:Government_Debt_Relief_Programs_2346.jpg https://labviewwiki.org/wiki/File:Graphic_design_schools_2392.jpg https://labviewwiki.org/wiki/File:Hair_Style_Tips_4044.jpg https://labviewwiki.org/wiki/File:Healthcare_Administration_Training_Riverton_WY_1392.jpg https://labviewwiki.org/wiki/File:Help_available_5233.jpg https://labviewwiki.org/wiki/File:Here_3240.jpg https://labviewwiki.org/wiki/File:Hidden_chronicles_cheats_2585.jpg https://labviewwiki.org/wiki/File:Hidden_chronicles_cheats_4737.jpg https://labviewwiki.org/wiki/File:How_to_sell_gold_3730.jpg https://labviewwiki.org/wiki/File:Howto-grow-yourpenis.net_4497.jpg https://labviewwiki.org/wiki/File:Htc_one_x_update_2387.jpg https://labviewwiki.org/wiki/File:Illinois_home_inspector_directory_5003.jpg https://labviewwiki.org/wiki/File:Juridische_vertalingen_5007.jpg Saving because I don't want to loose progress... https://labviewwiki.org/wiki/File:Laserbehandeling_ontharing_1003.jpg https://labviewwiki.org/wiki/File:MerrimanSnippet.png https://labviewwiki.org/wiki/File:No_No_hair_removal_reviews_2507.jpg https://labviewwiki.org/wiki/File:Paintball_1581.jpg https://labviewwiki.org/wiki/File:Pc_technical_support_toshiba_scarborough_4170.jpg https://labviewwiki.org/wiki/File:Personalised_christmas_sacks_and_stockings_5390.jpg https://labviewwiki.org/wiki/File:Pool_service_columbia_sc_4213.jpg https://labviewwiki.org/wiki/File:Privacy_Policy_959.jpg https://labviewwiki.org/wiki/File:Pure_argan_oil_for_face_2042.jpg https://labviewwiki.org/wiki/File:Read_here_4467.jpg https://labviewwiki.org/wiki/File:Reputation_management_1152.jpg https://labviewwiki.org/wiki/File:Reviews_3461.jpg https://labviewwiki.org/wiki/File:San_Antonio_Interior_Decorator_2940.jpg https://labviewwiki.org/wiki/File:San_Antonio_Interior_Decorator_4834.jpg https://labviewwiki.org/wiki/File:San_Antonio_Interior_Design_3474.jpg https://labviewwiki.org/wiki/File:Schedule_a_carpet_cleaning_2023.jpg https://labviewwiki.org/wiki/File:Smartrank_778.jpg https://labviewwiki.org/wiki/File:Social_bookmarking_service_1160.jpg https://labviewwiki.org/wiki/File:Social_bookmarking_service_1318.jpg https://labviewwiki.org/wiki/File:Social_bookmarking_service_1515.jpg https://labviewwiki.org/wiki/File:Social_bookmarking_service_2486.jpg https://labviewwiki.org/wiki/File:Social_bookmarking_service_2917.jpg https://labviewwiki.org/wiki/File:Social_bookmarking_service_3584.jpg https://labviewwiki.org/wiki/File:Social_bookmarking_service_3672.jpg https://labviewwiki.org/wiki/File:Social_bookmarking_service_3744.jpg https://labviewwiki.org/wiki/File:Social_bookmarking_service_4150.jpg https://labviewwiki.org/wiki/File:Social_bookmarking_service_4849.jpg https://labviewwiki.org/wiki/File:Social_bookmarking_service_5002.jpg https://labviewwiki.org/wiki/File:Social_bookmarking_service_5239.jpg https://labviewwiki.org/wiki/File:Social_bookmarking_service_5436.jpg https://labviewwiki.org/wiki/File:Social_bookmarking_service_757.jpg https://labviewwiki.org/wiki/File:Social_bookmarking_service_880.jpg https://labviewwiki.org/wiki/File:Too_much_iron_in_your_blood_1972.jpg https://labviewwiki.org/wiki/File:Toppik_uk_4349.jpg https://labviewwiki.org/wiki/File:Used_iphone_3_for_sale_1589.jpg https://labviewwiki.org/wiki/File:Valley_view_casino_1963.jpg https://labviewwiki.org/wiki/File:Video_promotion_by_ytpros_2952.jpg https://labviewwiki.org/wiki/File:Watch_avi_on_android_3765.jpg https://labviewwiki.org/wiki/File:Web_design_1869.jpg Done.
  13. 2 points
    Here is a library I created to wrap the WinSCP .NET library. You can use it to connect to a remote server via SSH and transfer files, create remote directories,etc., with WinSCP from LabVIEW. I know there is a commercial library for I think $500 a pop, but this is something that is missing from LabVIEW that really ought to be included with native functions in the file I/O palette. The VI's in this packed library are built around the "WinSCPnet.dll" library that installs with WinSCP. You will have to download and install WinSCP to get the DLL, as I do not want to distribute it without their permission: Download WinSCP Here After downloading and installing WinSCP, you will have to connect the VI's in the packed library to WinSCPnet.dll. I make no warranties here, and no promises it will work, since I already have the stuff installed. The use WinSCP with an SSH Key, you will have to generate a key and copy the public key to your server. WinSCP uses the Putty format for SSH 2. You will also have to obtain an SSH fingerprint from your server for input to the session. Otherwise, you will have to provide user login credentials. You can use the "C:\Program Files (x86)\WinSCP\PuTTY\puttygen.exe" utility to generate a key. I use Git, so I used the SSH utilities included with that to generate and copy the key to my server. If you do that, you will have to use puttygen to import your OpenSSH key and convert it to putty format for use with the WinSCP/LabVIEW library. Sorry I don't have more time to do full docs and directions for use, but maybe someone else can comment with additional directions. I will monitor this topic and try to answer any questions. Good luck, and happy SFTPing! PS: No I will not save it to an earlier version. Maybe someone else can. WinSCPnet.lvlibp
  14. 2 points
    Just in case someone else stumbles across this problem... It turns out the the cRIO-9056 has TSN capability built in so it will automatically try to slave the AI sample clock to a 1588 master if one is present on the network. In my case the master clock is not disciplined which wrecks havoc on the AI HW timing as it is only software based for the purpose of syncing the cRIO to the PC's clock for uniform relative accuracy. The solution to the is to use an obscure DAQmx property as follows... Add a DAQmx Channel Property Node to the task, select the General Properties >> Synchronization Unlock Behavior property and set it to Ignore Lost Sync Lock.
  15. 2 points
    One possible option with a bad hardware driver is to make your actor an independent exe, using the NetworkMessenger for communication Then you can kill the entire exe and restart cleanly. I've never done that, though.
  16. 2 points
    So I got very excited when I saw that LabVIEW 2019 has a new native map type (aka hash array, associative array, dictionary) and so decided to have a play and see how it compared to my home-rolled LVOOP has array that uses variant attributes and I must admit that I'm slightly underwhelmed.... I've now benchmarked the 2019 native map class and a simple variant attribute by creating maps of 1 million elements of randomly generated 8 byte keys and then reading back 10,000 randomly selected elements and fairly consistently the native map is about an extra 50% slower than the variant attribute for both read and write operations. I'll admit my benchmark code is quite naive, but it's still a little disappointing that there is quite this performance hit.... Can any of the NI folks here comment on the performance - is it just that in fact variant attributes are blazingly fast? I know I shouldn't be churlish and it's really great that 2019 has so many new features and a native map and set type have been long overdue... Edit: and yes I've spotted that the variant type conversion was wired wrong and I should have been generating an array of 10000 I32 not error clusters - but no it doesn't make a significant difference....
  17. 2 points
    No problem, I just want to make sure people know the difference between "Darren the G programmer says _____" and "Darren the NI employee says _____". In my "Don't Wait for LabVIEW R&D... Implement Your Own LabVIEW Features!" presentation, after I clarify that I'm presenting my personal opinion and not an official NI position, I contraindicate XControls because of numerous stability issues I've seen with them in large applications over the years. You can see my slides and watch a recording of the presentation here: http://bit.ly/dnattlvhooks
  18. 2 points
    My first ever meme prompted from this post
  19. 2 points
    I'm pretty sure that you've built your block diagram incorrectly. Just do it right and it will work fine. (Since you didn't provide any code, I can't be more specific than that.)
  20. 2 points
    working on it
  21. 2 points
    Maps in LabVIEW 2019?
  22. 2 points
    Greetings Friends of LAVA, colleagues, cohorts, and Wireworkers Extraordinaire -- it's LAVA BBQ time! Date: Tuesday, May 21, 2019 Time: 7:30-10:00 pm Location: Uncle Billy's Brewery and Smokehouse, 1530 Barton Springs Rd, Austin, TX 78704 (1.5 miles from Convention Center) Cost: $25 Early Bird (through April 30th) $30 Regular Admission (through May 20th) $35 Door Price (May 21st) Meal Options: Expect to enjoy your choice of meats (brisket, turkey, ribs) with sides like street corn, cole slaw, and bbq beans. A vegetarian option is available when purchasing tickets. Cash beer bar. Who: Everyone is welcome, including spouses traveling with you. Even if it's your first time, expect to recognize many faces/names from the forums and NI R&D. What to wear: It's a covered, outdoor venue in Austin during Spring, so dress for the weather and comfort. Door Prizes: We will have a drawing to give away prizes. All attendees are eligible and will receive a door prize ticket upon entry. See below about sponsoring a door prize yourself to share the love. Hope to see you there! Chime in once you buy tickets to let everyone know you're coming. ------------>>------------>> Get LAVA BBQ 2019 Tickets Here <<------------<<------------ The venue is a 30 minute walk from the convention center, or a $6 Uber. Get together and carpool, people are typically gathering at Challenge the Champions in the Expo Hall, which is great fun. There is a free parking garage behind the building. We'd love for you to sponsor a door prize - Continue Reading: If you or your company want to sponsor a LAVA BBQ door prize, please post a reply below. You can also include a small blurb about your company and a link to your website in the post below. By donating a prize you and your company will receive a small announcement of your choosing, during the event. We will ask you to write the announcement on a post-it note and will attach it to the prize to be read before awarding it. We love the door prizes, but we love time for socializing too. Here are some guidelines to keep our event balanced and streamlined. Single item donations work best. If donating more than one item, then multiple identical items is strongly preferred. If donating non-tangible items or something that is not physically with you, then please bring a card with your contact info and instructions on how to collect the prize. This will be given to the winner. Donations are typically $25-$200 in value. Not recommended: Apparel (hats, t-shirts, underwear, etc.) - never the right size Software licenses (Toolkits, add-ons, LabVIEW) Branded trade show booth type giveaways (mouse pads, pens, keychains, etc.) Jokes or something meant as a gag and not a real prize
  23. 2 points
    Great to see the LabVIEW wiki alive and kicking again! Hope to have a bit of time to contribute sometime after NIWeek...
  24. 2 points
    Since the Gingerman is no longer in downtown Austin the a consensus has been formed and many of the LV enthusiast will be meeting at BANGER'S SAUSAGE HOUSE AND BEER GARDEN Sunday evening. This is a few blocks from the convention center opposite direction of 6th street. Most people start arriving around 6:30-7 after dinner. Please come by if you are around Sunday evening. Banger's Sausage House & Beer Garden 79, 81, & 81.5 Rainey St. Austin, TX 78701 https://www.bangersaustin.com/#home
  25. 2 points
    Disclaimer The following details are oversimplified for the sake of clarity. Feel free to point out important details that aren't covered by this post. --- There is a higher chance of finding better results by searching for "labview reference". Here are a few examples. https://labviewwiki.org/w/index.php?search=reference&title=Special%3ASearch&go=Go https://labviewwiki.org/wiki/Control_References http://www.ni.com/example/28769/en/ That said, you should be familiar with the normal data flow in LabVIEW. Data goes from one end of a wire to the other. A branch in the wire will create a copy in memory if either branch of the wire is changed. Loosely speaking, a wire represents the data. A refnum on the other hand doesn't represent the data, but the location of the data in memory (*). It is similar to a pointer in C-like languages. This changes the behavior of the wire Data still goes from one end of a wire to the other. Each branch of a wire receives exactly the same value as the other (no copy is made). (**) In order to access the data you need to make use of Property Nodes, Invoke Nodes and more. The benefit is, that you can access the same value from different places in your program. Even better, this is not limited to controls. It works for controls and indicators, VIs, objects, the project, the whole application and everything. https://labviewwiki.org/wiki/Refnum http://zone.ni.com/reference/en-XX/help/371361R-01/lvconcepts/controlling_front_panel_objects/ However, it doesn't work for variables and due to its nature, race conditions can occur if you don't take care of the execution in your program. This is why for variables there is a more specialized type of reference, the data value reference (DVR). It allows you to access the same variable in memory from different places in your program. http://www.ni.com/product-documentation/9386/en/ There is obviously much more to it than these few points. However, the links above should give you some insight. (*) Here is some information about the memory structure of a refnum. https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019ZT5SAM&l=en-US (**) Technically speaking a copy is still made if you change the "value" on either branch of the wire, but since it is a pointer you shouldn't change it under any circumstances.
  26. 2 points
    It's a conjugation. I think Americans are the biggest perpetrators especially for "setted". They do other funny stuff like leaving out letters and putting dates the wrong way round
  27. 2 points
    I just post something along the lines of "can't find it right now" and usually someone with better organisation than me finds the link. Damn. giving away all my secrets.
  28. 2 points
    Well. I didn't even get one like, let alone 10 points
  29. 2 points
    Start with a control in your template. Get a reference to that control and cast it to VIRefNum. Then call the 'Make Strict Reference' method using a VI reference to the desired VI. Finally, get the Terminal reference of the VIRefNum and invoke the method 'Change to Constant'. The constant winds up in a different location, if you are OCD like I am then read the position of the control terminal before and write that position to the constant after. It is pretty common to have more scripting versatility with a control or indicator than the corresponding constant.
  30. 2 points
    Apollo 13? (It's a NASA saying)
  31. 2 points
    For a Door Prize, I have a LiftMaster MyQ Smart Garage Hub, donated from the Chamberlain Group
  32. 2 points
    Don't use KairosDB if you care for performance, use Cassandra directly. I've been working with it and it's nothing but problems. My advice is to use Cassandra directly and be done with it The first problem with KairosDB is that the documentation is awful. To be fair, Cassandra has some issues there as well though if you do work out how to do things in Cassandra, what it's good at and apply it to appropriate problems then I can't say I really have any reason to complain. Documentation with KairosDB is very vague and confusing about a lot of things such as how do tags work (does a match have to have all of the tags specified or only one), vague about performance and some parts I think might just be wrong. Smells are present in the API itself with things such as rather than using a type for alignment, having strange use of mutually exclusive keys implying type. It's not fast and it doesn't optimise things on top of Cassandra. It makes an effort to do this but it fails. The only thing it might be faster than is CSV or flat files. It's not Cassandra fast. Its query performance in anything but the most trivial of circumstances is absolutely appalling. It makes terrible use of Cassandra and you're liable to be able to do much better. It doesn't fully use indexes and just has one very simple crude schema that tries to do everything (it can't performance wise). It's three tables each with three columns, practically what you get if you search for blogs with tutorials on how to use Cassandra for time series. Almost everything is a blob (a couple are text). Some columns appear unused, they're just noise, junk data. If you use tags it has to scan all the tag values. It takes all the rows from Cassandra for a metric then scans the tags. If you do a query for the temperature over time in New York, it'll load every possible tag combination for the temperature metric from the database. This isn't lightweight either, it has to deserialize all the values using a custom scheme. It'll not only load combinations you don't need but will also load rows up to three weeks worth of tag combinations more than it needs. This isn't even getting at datapoints yet. They binary encode the values making it impossible to use things such as aggregate functions, instead KairosDB is replacing Cassandra for this and reimplementing the wheel. That means it must send every row, every data point back to KairosDB which must then aggregate those data points itself. If you use tags, then you will probably have big problems. If you use a lot of metrics then you might have problems. If you use aggregates or group by then you will probably have big problems. If you want something for very simple cases or where you don't mind terrible performance, instability in some scenarios, losing data (for a long time until it was fixed it was just dropping data), etc but only want ease of use then you might get by with KairosDB but if you're serious about your usage and big data, don't touch it with a barge pole. It also has a lot of problems with junk data. I've found databases 99.99% full of data put there by the KairosDB reporter. After the hell of clearing it all out (Cassandra really isn't really suited to mass deletes), turning off the reporter as the instructions state, it's still populating the database with GB of data. I cleared it all out, when and checked Cassandra to find that just a few days later over half the data was KairosDB's reporting junk. There's an public ticket from IBM about this (oddly they're using H2, not meant for production) you can find with a search and lots of people concerned about read performance which can get pretty bad in KairosDB. Data bloat can get hairy where it also stores all tag values and metric names ever inserted. There's not a brilliant set of strategies available for managing garbage collection of this data. I've implemented my own solution and it doesn't even need to use that table for anything any of my use cases with the exception of being able to know the metrics that are in the system without a full table scan. I replaced the KairosDB daemon with a client in my language that just connects to Cassandra directly, taking KairosDB out of the picture which is on average faster without optimizations. In the cases where it doesn't do as well I'm fairly certain that it's down to quirks in the Cassandra driver for the programming language I'm using. That language is much slower than Java and loses the benefit of not being a daemon, yet it's still faster on average, just porting is enough. Not being a daemon means it can't use resource pools so easily. It's not multi-threaded either but it's still faster. Profiling also seems to point to the Cassandra driver which probably needs a bit of tuning. It's very apparent KairosDB does very poorly at caching despite using a lot of memory and has a very poor ability to expose any opportunity to optimise. When I add a very basic cache for the first phase lookup my script always performs much faster for all of my benchmarks and stress tests. Ultimately I'll need to fix the schema in Cassandra to have full performance but even before then, adding a cache for data points will speed things up a thousand times as well as substantially reduce resource usage. Simply fiddling the queries for one data case will allow it to only fetch the rows it needs in the first stage. If I can use the KairosDB schema better than KairosDB does in a thousand lines of code then why am I using KairosDB at all? If I take it out entirely then I can also create a far better suited schema to my use cases. postgresql (perhaps with timescaledb), MySQL, Cassandra and MongoDB in my experience can all do not too badly for a range of use cases as long as you know their ins and outs, they're relatively flexible. From what I understand (I've only used it a little) things like Graphite will be very specific to certain use cases so you'd need to evaluate it for that. KairosDB suffers a similar problem though it exposes features it just can't handle internally while giving the impression of having at least a few decent features. Others, I don't know anything. If in doubt always check the source code to ensure it's sane and search for disaster stories.
  33. 2 points
    LV 2019 augments the right-click menus for class wires/terminals to provide a method list you can drop, which should alleviate this issue. I found a way to make the right-click menu plug-in able to add the graphical palette menus and then built a right-click plug-in that builds the method palette on the fly if the class doesn't already have its own default palette.
  34. 2 points
    Not quite a meme, but my attempt at an NI style April Fools product announcement (a fake fake product announcement?). See links at the bottom of post for a history of NI's real April 1st jokes. A history of NI's April Fools' courtesy of the Wayback Machine: "National Instruments Announces PC-Based Solution for Matrimonially Inept" (1998) "Spousal Acquisition Toolkit Version 2.0 -- Now Featuring Undo!" (1999) "New MXI Interface Kit for Palm Pilot IIIc" (2000) "President Bush Nominates Jeff Kodosky to Cabinet Post" (2001) "New eIeI/O Software Suite Introduces eFarming" (2002) "New PXI Module Transfers Engineering Knowledge into Marketing Brains" (2003) "National Instruments Releases LabVIEW 7 Espresso" (2004) "Use LabVIEW Graphical Programming to Complete Your Tax Return" (2005) "National Instruments Announces Plans for 'Engineer Barbie'" (2006) "National Instruments Re-Releases LabVIEW 2.0" (2007) "Elementary Students Use NI LabVIEW to Model Impact of Simultaneous Trigger of Rapid Flow Events" (2008) "NI LabVIEW R&D Team Responds to Rumors About Performance-Enhancing Substances" (2009) "National Instruments Develops Cybernetic Leadership Team" (2010) "Time Capsule Captures NI Founders' Technology and Cultural Predictions" (2011) "National Instruments Releases King-Sized Products to Address Big Data Challenges" (2013) "NI Announces New Certification Level: Certified LabVIEW Gladiator" (2014) (Wayback Machine didn't have this one archived. NI pulled it pretty quickly supposedly because people seemed to be taking it seriously) "NI drives time travel with stylish new cRIO module" (2017)
  35. 2 points
    PS: Did I mention that the design of these things was arcane and bad? Yes? Ok. 'Cause it's true. I have a long list of lessons I hope NXG learns.
  36. 2 points
    XControls work just fine... if you dance with them the way they were intended. *head bang* If you don't want data to be saved, one way is to not put it in the State data. If you only need the data in the facade, add a shift register. But if you need it lots of places, put a global unique ID (GUID) in the XControl's state data, something that never changes after creation, and create an LV-2 style global with a lookup table from the unique ID to the data. You can create GUIDs on any LV OS using: LabVIEW 2017\resource\Framework\Providers\API\mxLvGenerateGuid.vi Changing the state shouldn't cause the VI to need to be saved unless it needs to be saved. So, yes, sure, in the IDE in a directly called VI, yes, changing state dirties the VI. But obviously that doesn't happen in a built app. AND, importantly, it doesn't happen in the IDE for any dynamically loaded VI (unless you are adding the 0x1 flag to track changes, in which case you get what you requested). If you're loading the hosted VI into a subpanel, that means you're working with it by VI Reference. So load it using Open VI Reference (without the flag) and the problem of being prompted to save should go away.
  37. 2 points
  38. 1 point
    Raw TCP. Make your application respond to SCPI commands and the other engineer can treat it like any other instrument. Can even be over a network (remote). It's a simple method which is programming language independent and can be added to existing applications without much problem. Also has no additional installation or distribution requirements.
  39. 1 point
    @hooovahh is right, this is not doable. Your executable doesn't contain the source code and without the source code you cannot compile the application. If the source code is lost, you can either re-program the application (probably very costly) or convince your IT department to allow installing the LV2009 RTE for this particular executable. That said, it is possible to copy the executable and the entire RTE to the target computer manually, for example as part of the "installer" for your executable (IT department mustn't know 😉). We have done so in the past (for the same reasons) and it works like a charm. Of course, this only works for utility applications. It doesn't work if your application depends on other drivers like VISA and the like. If this is not a problem for you, just copy the RTE folder from the NI installation directory ".\Shared\LabVIEW Run-Time\2009", put your executable inside and be happy. I just ran your application on a clean Windows 10 virtual machine and it starts without errors and terminates after a few seconds. It's worth a try in my opinion.
  40. 1 point
    When the compiler doesn't care, why should I? The view I take is that "Style Guides" are just that. GUIDES, not LAWS. If "boolean" was chosen, what do you do about capitalisation at the beginning of a sentence? There are arguments for grammatical considerations but I'm "meh" when it comes to programming type names, classes at. al. These things are just a distraction - form over function. Read it and weep:
  41. 1 point
    As of the latest Tools Network version, the palettes should also appear in the "Flatten/Unflatten String>>JSONtext" palette, in place of the install link in LabVIEW 2019. It's programmatically added, so let me know if that doesn't work for you.
  42. 1 point
    Here is a quick and dirty edit. It allows for column separators to be moved, but I noticed that on resize it will set the column widths. So this means if you manually move the columns, and then resize the control it may change the columns in an unexpected way. But at that point you can manually move the separators again. I only have 2017 and 2018 so this is for 2017 and newer now. Variant_Probe-2.4.3-0.ogp
  43. 1 point
    The FP control is set to "Include Data Type" if the property node is "strict" and will be a boolean output from the property node. You will see a red cross in the bottom left corner of the control in this state. If "Include Data Type" is unchecked, there will be no cross and the output of the node will be a variant as no type information is defined for the control..
  44. 1 point
    Thanks Antoine for your workaround to fix the Labview crash after installation of the 1.4.0.15 version on also LV2018 SP1. Your tip just helped me, too. I had Labview crashing also with the previous 1.3.0.12 version installation on LV2015 SP1, there for some reasons it helped to install all required packages package by package with the JKI VIPM. Apart from that recent installation issue the Control class UI Tools addon is a fantastic tool, and we use it frequently. Thanks François!
  45. 1 point
    You are right, that is the standard way to do it, if you know how many elements to remove. You can also utilize the Common Path returned by the compare function depending on what you need.
  46. 1 point
    It would really be nice to see some code or even like just the concept to see what you're talking about. Have you seen this VI? http://zone.ni.com/reference/en-XX/help/371361P-01/glang/stall_data_flow/
  47. 1 point
    Thanks for your help I will give your suggestions a try I appreciate your concern. I am not teaching lab view It is simply a test bench to develop and test different functions. This is just the main place to select different VI's you want to test is all. Again, i appreciate your help and concerns. I fully agree, im not teaching anyone labview lol im a matlab guy truthfully
  48. 1 point
    This smells a little bit like an X-Y problem. Can you clarify what you're ultimately trying to accomplish?
  49. 1 point
  50. 1 point
    Norm - this is really cool. I think this part of the last video really hits home and defines the benefits of this design pattern, highlighting why using strings would cause an epic fail. I agree with Shaun in that strings are generally easier to read than integers in a Case Select, but in this case it doesn't really matter - the benefits are huge (you get some readability from the casted type anyways). I can see the benefit of this straight away esp for scripting, and will be adding this to my templates folder. Thanks for posting!


×
×
  • Create New...

Important Information

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