Jump to content

SuperS_5

Members
  • Posts

    129
  • Joined

  • Last visited

Posts posted by SuperS_5

  1. I had a situation where I needed something like this, however, I found a good G code solution. I had a dll call that would spawn a new thread, and return immediately. The spawned process would continuously put data into an array that was provided to the dll by LV. The problem was that LV would de-allocate/reallocate the array memory space after the subVI calling the dll completed. This of course causes memory corruption problems. The solution was to use an uninitialized shifter for the array, prefilled to the desired array size. This allows the memory space to remain open, and no corruption errors.

  2. I like the tree-polling solution.

    In one project, there was a multi-column list-box, I had to update the background colours of all of the items. (couple hundred rows and several columns!) Updating them would freeze the UI until done, which was bad. So I stuck all updates to be done into the shifter, (an array) and processed a couple of these updates at a time during the timeout case. I tweaked the number of cells to process, so that the total time was not too long, but the screen was still responsive. I had some logic for searching the array to ensure I didn't have multiple updates upon the same cell. The cells that I updated were determined by which cells where visible, and if all visible were OK, then process everything else. I am not sure if this would work in your case, if you are updating the values too quickly.

  3. +1 for MySQL. I use it a lot, although, I also like SQlite for local work. Database design is the name of the game here, but not too hard to wrap your head around once you nail down your delivables.

  4. Hi, I have been playing with SQlite for a little while, that a LabVIEW toolkit would be nice. However, for the moment, I would not use it for any of my current customers, and would only be for "learning" and proof of concept purposes. I, therefore, request a "community" or "educational" version that would allow for use of the toolkit past your trial period, but not for commercial uses.

  5. This is somthing that I would use. If i needed somthing to update/blink/do anything on the FP above this, while hiding your work, I would have 2 options.

    1) place this VI into a subpanel, and call it, while placing the updating element on the parent. It would be extra work on the subpanel, and a little more challenging from a design point of view.

    2) make a pop-up thats greyed and somewhat transparent. (I am leaning here if the cover Boolean won't work)

    I like the KeepItSimple method, but your requirements will dictate your choice.

    PS: VI is saved in 8.6

    disabled grey.vi

  6. I perfer setting the mouse busy, although, I also use "cover booleans" to disable the front pannel. The boolean is a classical boolean, coloured transparent. It is then set visable/invisable via the property node whenever needed. This is a very quick/low resource method to disable/colour many items on the FP. I have also used it to display simple text messages, (boolean text, coloured) while disabling and graying the FP.

  7. I don't use FPGAs much personally, however, I do work on a very large project. We also use the project explorer to with tortoise SVN without much issue. Producing notes/internal documentation is very important however! Collisions with the lvprog file can be common, but, we don't edit that file manually much. We, therefore, simply overwrite the lvprog file with the modified version we require. I am not sure how much changes that you will actually make in the project explorer with FPGAs.

    Using a LabVIEW version before 2010 can cause a lot of conflicts because of "recompiling," however, this is overcome by good documentation, and only committing the files that you actually changed. Every little while, we will commit a "recompile" with specifically only recompiled files, (after committing real changes) and enforce SVN "comments."

    Mike

  8. I have see somthing with a simular result. Mine was on LabVIEW 8.6.1. Mine seamed to be a block diagram corruption, but would reappear randomly. I think we had to copy the code into new vi to replace the problem vi. Anyways, I just had to try this one out to see if it was the same problem. Although it is not the same problem, it appears that the invoke node is not giving the correct data. The output of a "to variant" node is not the same as the output of the property node. Selecting "Show Type" (right click menu) of a variant control/indicator gives this output:

    "invoke node"

    'FP References': cluster of 18 elements 	'Run': Boolean Refnum     	'': void 	'Loop': Boolean Refnum     	'': void ...

    "to variant"

    'Value': cluster of 18 elements 	'Run': Boolean Refnum     	'': boolean (TRUE or FALSE) 	'Loop': Boolean Refnum     	'': boolean (TRUE or FALSE) 	'Abort': Boolean Refnum ...

    I am curious if this has anything to do with it.

  9. i personally use Hamachi most situations where we need to connect computer across the internet. It requires little setup, and uses encryption by default. It requires both computers to have the client installed, and running, and be authenticated. I find it very useful to negotiate networks that employ NAT. You would need administrator rights to install it, also IT departments may still block it's ports, permission would still be required. (BTW: it has a free fully functional "non-commercial" version)

    Mike

  10. Hi,

    It seams that you have a type mismatch here. I have not noticed this behavior before, but LabVIEW ignores the conversion if no output is wired. If a scaler (single string) is wired to the type input of the "variant to data" function, there are no errors. This could be caused because there is no data on the variant "value2". I usually use the report generation tool kit. It has functions for this kinda of work.

    Mike

    • Like 2
  11. Hi,

    I can't help much about converting the above tools to 64bit, but this is a copy and paste of a note from that very web-page that you posted.

    "The abilities of the VI Server supersede the functionality of the VIs. National Instruments recommends that you use the VI Server functionality for new applications. Implement calls that the VI Server does not support through the Windows API directly by using a Call Library Function node in a more recent version of LabVIEW."

    Would porting your code to use native LabVIEW functions be possible? That would be my first option to investigate.

    Mike

  12. Hi,

    I think an event structure is the only way to always get the last key pressed. I would simply put that data into a shifter or stack. There is a VI to poll the keyboard, however, it will not return the last pressed keys, only the currently pressed keys. This means that you would have to continuously poll the keyboard. I think a good question is, why is an event structure not usable?

    Mike

  13. Hi,

    I am not so sure where the data will be used, and this affects the solution. I use SQL servers quite often, and prefer using simple sql "SELECT" statements to gather the required data.(Even across multiple databases and schemas will multiple queries) Performing sanity logic, and required actions natively in LabVIEW is much easier and quicker. The only problem here is that bandwidth penalty of selecting an entire table. I usually only get columns that are actually needed, and only selecting large cells like "blobs" with very selective sql queries. I would recommend learning about sql commands and syntax.

    The database connectivity toolkit will a 2d array of strings, which can hold almost every data type, which then can be converted to the correct data type.

    Mike

×
×
  • Create New...

Important Information

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