Jump to content
jgcode

Variant Configuration Update

Recommended Posts

This OpenG Review is active.

There are a few outstanding issues with the Variant Configuration as well as some feature requests so I thought it would be a good idea to start a summary thread to track them as well as to review all of these at the same time (in case of interactions etc...).

Note: What will be implemented and when is not the point of this thread - that will be decided at a later date by the OpenG Team.

If you know of an issue (link to an existing thread LAVA or OpenG), want to report something or have a new idea please post in this thread.

For anything new, please create (or I will create a) new thread so that it can be discussed in detail.

Please do not discuss these items in this thread - use that item's own thread.

  • The point of this thread is to bookmark and manage these items for review
  • I will keep this original post as up to date as possible
  • An item with an ID link is a link to an OpenG Tracker
  • Any item with a description link is a link to an existing thread (LAVA or OpenG)

I am pretty excited to see work done on this OpenG Library as this is my favourite OpenG API.

Kind Regards

Jonathon Green

OpenG Manager

Current Items for Review:

ID: 3411108 - Recursive OpenG VIs should use native recursion (if performance benefit)

ID: 3409853 - Reentrancy bug in Write Key (Variant) VI?

ID: 1501747 - Unnamed cluster elements cause problems

ID: 1156973 - Fixed size arrays & Read/Write Panel to INI

ID: 3004519 - Use custom decimal sign for floats

ID: 849694 - Units in INI-files?

ID: 848288 - Missing Key output

ID: 3004517 - Writing to Panel deprecated issues (LabVIEW 2009)

Bug: Read Key(Variant)__ogtk.vi: VI looses variant name

Throw error on duplicate data

Cannot load an array of classes using variantconfig

Share this post


Link to post
Share on other sites

Regarding ID: 3004519 - Use custom decimal sign for floats, I hope the automatic solution is chosen. Otherwise you will have to know which decimal sign has been used up front and that is not the case when configuration files are shared between computers with different decimal signs (useful in client/server applications e.g.) I can write code that will open the file and check prior to calling the OpenG function of course, but that's not very smooth. Doing it automatically might not work perfectly for ever case (let's say that someone has specified the decimal sign to be something else than period or comma, after all you are free to do so under Windows at least), but then those users can analyze and specify the decimal sig. The automatics will still be able to offer a better solution for 95% of the cases...

Share this post


Link to post
Share on other sites

Well since Mads was interested enough to post we will start with the ID:3004519 issue.

Mads, I saw on the old OpenG forums that you had linked a VI with a solution to the issue you were using. Would you mind posting that here again? The old forums don't let guests, like me :-), view the files.

TonP, You had linked an image of your solution. Do you still have that? Could you link here if so?

Thanks

Jason

Share this post


Link to post
Share on other sites

Well since Mads was interested enough to post we will start with the ID:3004519 issue.

Mads, I saw on the old OpenG forums that you had linked a VI with a solution to the issue you were using. Would you mind posting that here again? The old forums don't let guests, like me :-), view the files.

TonP, You had linked an image of your solution. Do you still have that? Could you link here if so?

Thanks

Jason

I can help with that:

post-10325-0-43118300-1327984270_thumb.p

Read_Key__Variant___ogtk.vi

PS - just so you know those forums were locked so if you didn't have an account before that, you won't be able to log in.

Share this post


Link to post
Share on other sites

Sorry Jason, I never seem to get notifications from LAVA when there is a reply...But now you have the solution anyway, it's the same as Jonathon has posted. As I mentioned on OpenG there might be better ways of doing it, but it does the job.

Share this post


Link to post
Share on other sites

Okay here is a screenshot of the modification that Mads made to work around the problem of matching the decimal point indicator.

post-9739-0-70417900-1329181935_thumb.pn

Looking at this the first concern I have is that this assumes that the first period or comma encountered is the decimal point. This means that 100,000.00 would be interpreted as one hundred instead of one hundred thousand. It seems like a method that examines the input string for the existence of both commas and periods then makes a decision based on quantity would be a work around for that issue.

Of course this approach does limit the user to only two choices. I suppose we could include an optional input to the Read Key VI that would allow the user to assign any string as the decimal point indicator. I would propose that such a solution choose the first character of the string as the indicator. There is also the implicit requirement that the string be printable if humans want to read the character in a text editor.

What do people think about the cases where someone would want to use something other than a period or comma? I can't think of any localization types beyond those two but I will admit my experience is limited.

Your thoughts folks?

Jason

Edited by WireWarrior

Share this post


Link to post
Share on other sites
It seems like a method that examines the input string for the existence of both commas and periods then makes a decision based on quantity would be a work around for that issue.

Why not just search the string from right-to-left? Throw in a string reverse and all should be well.

I've never seen localization options beyond period or comma, nor do I have an opinion on supporting other decimal characters.

  • Like 1

Share this post


Link to post
Share on other sites

Hi all!

I found an error, that the "Get Data Name from TD__ogtk.vi" doesn't handle the FXP numeric data type.

It is because the "Type Descriptor Enumeration__ogtk.ctl" Typedef doesn't have it listed. It would be the "0x5F" value.

Please have a look atit, it causes serions problems, when I try to run the "Write INI Cluster__ogtk.vi"

Share this post


Link to post
Share on other sites

Of course this approach does limit the user to only two choices. I suppose we could include an optional input to the Read Key VI that would allow the user to assign any string as the decimal point indicator. I would propose that such a solution choose the first character of the string as the indicator. There is also the implicit requirement that the string be printable if humans want to read the character in a text editor.

The problem with this is that you start to accumulate a lot of (optional) formatting hinting parameters to the function quickly. Time format, floating point and decimal format, and what else. I wonder if a single string could work, where you use a syntax like the Format into String syntax to actually list all possible formatting options. Decimal point would be always the first formatting option like %.; and other formats could be looked for based on patterns such as %<.+>T etc,

Share this post


Link to post
Share on other sites

The TestStand API includes something called "DecimalPointLocalizationOptions"

http://zone.ni.com/r...izationoptions/

Rather than trying to guess what the decimal point is, maybe the Variant Config library could add a [OpenG_Locale] section within the INI file that would store the locale specific data at the time the INI was written.

post-949-0-21811900-1329831388.png

Presumably the Variant Config INI file will be read using the library functions.

The saved settings in the INI file could be compared to the runtime locale settings (%c) and the library could convert if necessary.

The default-defaults :wacko: could be used if the section was missing (non-OpenG INI or upgrading to new version of lib).

Share this post


Link to post
Share on other sites

I just contributed to a post on the dark side where I discovered that the fractional seconds component <%<digits>u> of the scan from string uses the regional settings to evaluate the input string.

My signature's "%^<%Y-%m-%dT%H:%M:%S%3uZ>T" is ISO 8601 compliant for CREATING a string because the spec allows for either separator to be used, but LabVIEW will always use the locale settings to PARSE the string.

In order to properly interpret an OpenG configuration file for this case, I don't see how it can be done without adding a section to the INI to store the regional settings for the last write to the file using the OpenG functions.

Share this post


Link to post
Share on other sites

It's kinda sad to see that this LabVIEW bug isn't resolved after 4 years (and 8 updates),.

Ton

  • Like 1

Share this post


Link to post
Share on other sites

I would assume so by now, but do you know if it's actually been reported?

Share this post


Link to post
Share on other sites

I just contributed to a post on the dark side where I discovered that the fractional seconds component <%<digits>u> of the scan from string uses the regional settings to evaluate the input string.

My signature's "%^<%Y-%m-%dT%H:%M:%S%3uZ>T" is ISO 8601 compliant for CREATING a string because the spec allows for either separator to be used, but LabVIEW will always use the locale settings to PARSE the string.

In order to properly interpret an OpenG configuration file for this case, I don't see how it can be done without adding a section to the INI to store the regional settings for the last write to the file using the OpenG functions.

Phillip's post makes me think that what we are discussing here are two options. One read the file with the computers localization information and the other read my file with the localization it was saved with previously. Determining the localization for the computer loading the file is easy. Determining the state of the file previously requires, as Phillip rightly pointed out, a field in the INI to report the information from the last save.

Of course, that still would not allow for us to support the work of a user with a text editor easily.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By Bas de Jong
      Hello, I'm trying to display an animated GIF on the front panel. This gif should be loaded programmatically based on some user event. My google search led me to use the OpenG Read GIF File (Animated)__ogtk.vi file. However, loading a GIF is extremely slow. It takes almost 20 seconds to execute the vi when I load the attached GIF (I found randomly on the internet). Is this normal? And if so, is there a way to load a gif faster? Because I need to load several and I cannot afford to load maybe 2 minutes only for the gifs.

    • By fennectp
      Hi all,
       
      I've got a customer that wants to zip/unzip files on their cRIO-9035, so I had them playing with the OpenG Zip tools to see if it would fit their needs. Although they've found that they can zip files on their cRIO just fine, they find that they get disconnected from their RT target and the shell shows the following error message:
      LabVIEW caught a fatal signal 15.0 - Recieved SIGSEGV Reason: address not mapped to object Attempt to reference address: 0x0x10000000 stdin: is not a tty  
      The zip file they're testing with includes two simple .txt files with short strings in them ("booya" and "booya2"). This file unzips just fine on the host PC with the "ZLIB Extract All Files To Dir" VI, but when copied over to the cRIO and unzipped via the same VI, it only unzips the first text file and the resulting file doesn't have any text in it.
      I've attached a copy of the project and the zip file I used to reproduce this behavior using a cRIO-9033 that I had on hand. (The only thing I can't provide is the cRIO >_<)
      Could anybody tell me what I'm doing wrong? Any suggestions as to what other workarounds I could take to zip/unzip files on a LinuxRT target would also be very much appreciated!
       
      Regards,

      Tamon
      Unzip on cRIO-9033.zip
    • By ASalcedo
      Hello to all.
      I have an application wich use; imaqdx (displays...), sliders, many controls and many indicators, and everything in a tab control of 3 pages and 2 subVI.
      I am trying to use "write and read panel to/from ini . vi".
      The first thing that my program does is to read panel from ini.
      Here there is the first problem because it gives the next error: "Error 91 "The data type of the variant is not compatible with the data type wired to the type input. Set control value"
      Here is my piece of code in image attached (boolean input in open.vi is True).
      I notticed that it gives me an error if the .ini file does not exist (but it should work even .ini file does not exist).
      Well, my next step was to create a .ini file before to use "read panel from INI.vi".
      So I use "write panel from INI.vi" and it works fine. It does not give me any error. and the ini file is the next:
      [medir.vi] Boca = "0,000000" Camara 1 Configuracion = "\00\00\00\1Dremote image 0000000013F9C704\00\00\00\0Anivissvc.*\00\00\00\13LV_ImageDTClassInfo\00\00\00\01\00\13)É\00\00\10\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00¬\00\00\00\00\00\00\00\1D)\13\00\00\00\00\00\00\00\00\00<\04\00\00\00\00\00\00<\04\00\00\00\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00€\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00DÊù\13\00\00\00\00LÌj\0F<\1E\00\00ø\08\00\00\00\00\00\00\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\1D\00\00\00\00)\13\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00remote image 0000000013F9C704\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúïêôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿËž“Š„€z€}{zzwx|{wwxswyvttquvrtqpprqsrpvppsquqqusputquxusswwssttvwtwt}yqvuxuzvvuwtwvvtvrwrqpupgc\\XYZX\\XW[[UVVWUXTRTRURUQQSPNQNNOKKLKLJLJFEDEEBBC?B??=:>@CDHGHHIJGJEGDFEHJGFDBADDCCEDBCFILS^ao€–³Òñÿÿÿÿÿÿÿÿÿÿÿÿ\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00ÿÿÿÿÿÿÿÿÿÿÿÿÿÿìÛËÚ̾¶³³³¼³Àìÿãϸ¬ª£¤œ‘‘‹Ž‰Œ‡…€†~z~}x{||}z~xx}}v{syx{vwwwzyywxxxxwwuruwzyvwszvzt{z{yv{wy|{vyw{zzwy~y}xzz}y{|€†€‚€€‚ƒƒ†}‡ƒ…‡‡†‹ŠŒŒŽ‹‹•š’–”›žœ›  ¡¢©©©±²µ¶º½ËÒåÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýëä÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Ž‹…†|ƒ}~xv~z{zu{wvvvuutvssqssusotqrwruxtrpqrrotusrvuwywrsuusyxvywxtvsvwuuwvwywquvvuvswtvqpplge^\\VYWYXWYXSWVUZUVQSUTSRTTUNONMKMMKKMJLLLJGEDC@CA?@@@??=CBDGGJLJIJGGIGHEFGFHHCBCBADCAADDIOWZiq„œ·Ôïÿÿÿÿÿÿÿÿÿÿÿÿ\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00ÿÿÿÿÿÿÿÿÿÿÿÿÿÿåÙ×âɺµ®¶¶³·ÍýÿßDz¨¤¢¥š–“‰ˆ‰…‚‚‚~~z}x}}~xxxwyy}xwzwzvywuvxyuxtvyxvvwtyqvpzv|zvzzy{xzzzxx{yxyzyzxw}{y~{}|~€{{|‚‚„ƒ‚…‡€{‚‚„‚‡Š‰‡‰Š‹ŠŒ‰ŒŽ‘Ž’••’“š™žš™›Ÿ¡§ž£ªª®²´»½ÂÉÚïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøàéÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿô»žŒˆƒ€~}~}||w{yzxuwwuxvrtvtvtrqpuotqppttvtxsstqqtrtpswtwwvsusuvwxxxxvxuxxvvtx{ux{uuvttxtsssspoja\\Z\\YYZXWYWSSWXWWUSRPTUQSRNQPQNOLNLLKJJIHFFHECA?A?><@?=?ADHFELIHHJIIGEHFGJJDEFBCBECEACDGJPX_fs‡¢»Úóÿÿÿÿÿÿÿÿÿÿÿÿ\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00ÿÿÿÿÿÿÿÿÿÿÿÿÿÿé×Ýã¾·®´´Âº»Ò Camara 2 = "0,000000" led_boca = "FALSE" Buena_boca = "0,000000" mala_boca = "0,000000" Espiga = "0,000000" led_espiga = "FALSE" buena_espiga = "0,000000" Bulbo = "0,000000" led_bulbo = "FALSE" buena_bulbo = "0,000000" Cuello = "0,000000" led_cuello = "FALSE" buena_cuello = "0,000000" mala_cuello = "0,000000" Cuerpo = "0,000000" led_cuerpo = "FALSE" buena_cuerpo = "0,000000" mala_cuerpo = "0,000000" Excentricidad = "0,000000" Buenas = "0,000000" Malas = "0,000000" led_excen = "FALSE" EXCENT = "0,000000" Camara 2 Configuracion = "\00\00\00\15Threshold Destination\00\00\00\0Anivissvc.*\00\00\00\13LV_ImageDTClassInfo\00\00\00\01\00\00\00Á\00\00\10\0000\00\00\03\00\00\00\00\00\00\00\\00\00\00\00\00\00\00Threshold Destination" Excentricidad.<size(s)> = "6" Excentricidad 0. = "<size(s)=0> " Excentricidad 1. = "<size(s)=0> " Excentricidad 2. = "<size(s)=30> 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000" Excentricidad 3. = "<size(s)=30> 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000" Excentricidad 4. = "<size(s)=30> 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000" Excentricidad 5. = "<size(s)=30> 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000" Nivel de luminosidad = "157,666672" led_luminosidad = "TRUE" Distancia promedio = "46,131313" Bordes encontrados = "33" Camara2_grafica = "0,000000" Dist_Cuerpo_Cnfig = "0,000000" Dist_Boca_Cnfig = "0,000000" Dist_Espiga_Cnfig = "0,000000" Dist_Bulbo_Cnfig = "0,000000" Largo total = "0,000000" led_largoTotal = "FALSE" cuello_config_cluster.Left = "0" cuello_config_cluster.Top = "0" cuello_config_cluster.Right = "0" cuello_config_cluster.Bottom = "0" cuello_config_cluster.Rotation = "0,000000" top_cuello_prod = "0" botton_cuello_prod = "0" PLC_Valor_Cuello = "0" ampolla_ok_prod = "FALSE" num_disparo_cam1 = "0,000000" PLC_Valor_Espiga = "0" PLC_Valor_Cam2 = "0" lim_min_ambar_boca = "0,000000" lim_max_ambar_boca = "0,000000" Largo Total.<size(s)> = "1" Largo Total 0. = "<size(s)=0> " Tab Control = "Camara 2" Cluster.Numeric = "0,000000" Cluster.Numeric 2 = "0,000000" Cluster.Numeric 3 = "0,000000" Cluster.Numeric 4 = "0,000000" Cluster.Numeric 5 = "0,000000" I resume "camara 1 configuration" because the rare symbols are about x10 more.
      Well, next step is to read this .ini file and now it does not give me any error but it stacks in "read panel from ini.vi" (maybe it takes about minutes for reading .ini).
      How can I do to write and read panel to/from ini well?
      It is very important for my application. Maybe there is another library that I can use?
      Thanks a lot!

    • By liskped
      Hi.
      Im working on this prosjekt where I have a TCP communication between two computers (Server & Klient). I have managed to get communication between those two. (Sending and reciving one cluster.) But I want to send and recive more than one. I looked at det Topic "Passing Cluster and Datatype Through TCP" on how to use the OpenG, but I have a problem with "the Variant to Data". 
      What am I doing wrong? Or is there another way to send more data?
       
      The Klient side:


       
       
       
      The Server side: 


       
       
    • By flowschi
      Hello,
      I am using the variantconfig.llb for saving/loading configuration files.
      Unfortunately these configuration-files got very huge: 10.000 lines or even more, having hundreds of sections.
      Loading these files takes 15-30 seconds. The workflow:
      - getting all sections with "Get Section Names.vi" (is very fast)
      - a for-loop is using "Read Section Cluster_ogtk.vi" on each section Name (using Profiler, I can see that this uses the most amount of time). Depending on the section name, I am selecting the cluster type.
       
      Do you have any hints, how I can speed up the process?
      Thanks!

×
×
  • Create New...

Important Information

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