Jump to content

John Lokanis

Members
  • Posts

    798
  • Joined

  • Last visited

  • Days Won

    14

Posts posted by John Lokanis

  1. I'll be arriving Monday afternoon. Staying at the Hilton. Should be able to make the block party Monday evening.

    Don't miss my session on web services Wednesday afternoon!

    TS2796-SW Practical Applications of Web Services in LabVIEW

    I'll be at the LAVA BBQ Tuesday and the NI Party on Wednesday. beer_mug.gifbeer_mug.gifbeer_mug.gif

    Probably end up milling around the JKI booth the rest of the time, trying to absorb as much knowledge as I can...

  2. I think I have figured out how to get my LabVIEW built exe to always run as administrator (embed a custom manifest file) but now I need to run some post install batch files as administrator as well. Does anyone know how to get the LabVIEW installer to do this? I also need to mark some other batch files I install to only run as administrator. Perhaps there is a way to do this within the main batch file that I run post install.

    It would also be nice if the resulting installer was backward compatible with WinXP. But the Program Files (x86) thing is really getting in the way of that...

  3. Every now and then, when I try to open LabVIEW 2009 SP1 while I am running Google Chrome browser, LabVIEW will crash (with a JIT debugger dialog). If I try to open it again, I get the same crash every time. If I then close Chrome and try to open LabVIEW, it works. After that, I am able to open Chrome and close and open LabVIEW without issue.

    I have not yet reported this to NI because I cannot duplicate it 100% of the time. Just wondering if anyone else has seen this one.

    thanks,

    -John

  4. I have no idea how to reconfigure LabView to store the web services less deeply in the hierarchy, but I do have a code obfuscater that replaces files with their MD5 hash. Maybe that will be sufficient. Otherwise, this is a major barrier to using web services since there are only about 85 chars available for user paths.

    Open the build settings for your web service, go to the Advanced category and find the check box labeled 'Use LabVIEW 8.x file layout'.

    Make sure this is checked and then build and test again. Your problem should go away.

    Any chance this LV 2009 Known Issue applies? They say it only happens when the properties page is open. http://zone.ni.com/d...588_by_Category

    Nope. The issue is when the web server starts for the first time, it gets stuck for 2 minutes and then finished. Once it is up and running, the web service calls all work fine. I have a request in to get to the bottom of this so I hope to have an answer soon.

  5. Of course it is not reentrant. When would you ever be able to show two modal dialogs at the same time? It never needs to run in parallel with itself, so there's no reason it should be reentrant.

    Yes. Funny thing is, the native one and two button dialogs ARE reentrant. So, I was merely pointing out that difference, in case someone had a good reason to display two modal dialogs at once and tried replacing the native ones with the Three Button Dialog.

    Can you offer any insight into why the native ones are reentrant? And why they are not root loop safe?

  6. Are you using web services with LV2009SP1?

    Have you deployed the web service to a target machine that only has the runtime system on it?

    When you start your LV app (causing the web server to start on the target machine), how long does it take before you can successfully make web service calls to that machine?

    I am porting my 8.6.1 code to LV2009SP1 and have found that the web server appears to be unresponsive for approximately 2 minutes after I start it by launching the app that has the server enabled in its ini file:

    WebServer.Enabled=True

    Under 8.6.1, the web server would be working immediately after the app was started.

    thanks for any ideas or workarounds

    -John

  7. 1 - the "looking" PC has to have the runtime engine installed.

    2 - your "publishing" PC has to upload it via an open port (in Europe, 80 is blocked)

    3 - the "looking" pc has to be able to look at the same port (where I work, only 80 is possible)

    1) Sorry, for looking it's not needed, but for controlling a control or knob I definitly needed it.

    2) Is so. Arguments of "surfing the web" are irrelevant. I don't know (exacly) why it is blocked

    .

    Well, you certainly cannot 'turn a knob' with the web service solution. You can do some things with an automation interface. Like sending a command with parameters to cause the remote app to do something. But graphical interaction is not possible. There is a new web tool coming from NI where you can write a client side UI using LabVIEW like code and compile it into Silverlight code that the client can run. Limits you to web browsers that support Silverlight, however. And it means you need to write two apps instead of one.

    Why port 80 is blocked for you, I have no idea. But, I can assure you all of Europe is not blocked from port 80.

  8. Well, just finished replacing all calls to the two button dialog with the three button dialog that can disable the close button and/or differentiate between button presses and the close window button. I think NI needs to update the primitive with something better.

    One other 'note' about these one and two button primitives: they are not root-loop safe. In other words, if one pops up and there is no one around to click on it, all your parallel code in the background will freeze as soon at it hits a function that requires root loop access, like VI server calls to open a dynamic VI. Fun! (FWIW, dropping down a menu and leaving it unselected will do the same thing)

    Final note: the three button dialog is not reentrant, in case you ever needed it to be...

  9. Just thought I would pass this simple observation when using the 2 button dialog.

    I created a dialog where I wanted to warn the user to be careful when selecting a certain operation. In order to make sure they did not accidentally select OK, I reversed the messages so the cancel would be the one that defaulted to having it's key focus set to true. Then, I used the 'T button?' output to select the case and put the code to do the action in the false case. I then patted myself on the back for making a safer UI. cool.gif

    Along comes the "user" and they select this operation from the menu then panic thinking the computer will explode if the do the operation. But, instead of pressing the 'abort' button, they CLOSE THE DIALOG BOX! Which, of course returns a FALSE for the 'T button?' and the code is executed...throwpc.gif

    Now, I know I am a fool for not seeing this possibility, but I just thought I would share so perhaps someone else doe not make the same mistake I did... oops.giffrusty.giffrusty.giffrusty.gif

    -John

    • Like 1
  10. Some things to keep in mind:

    1 - the "looking" PC has to have the runtime engine installed.

    2 - your "publishing" PC has to upload it via an open port (in Europe, 80 is blocked)

    3 - the "looking" pc has to be able to look at the same port (where I work, only 80 is possible)

    the combination of 2 and 3 make it impossible for me to do that.

    .

    In response to #1, with my web service tool, that is not correct. The 'looking' PC only needs a web browser. ANY web browser. I can 'look' with my iPhone. I am certain that the run time engine is not installed on my iPhone. As for #2, if that were true, then nobody in Europe would ever be able to surf the web, as all web traffic (HTTP) uses port 80.

  11. I don't use the NI-CT toolkit because it is way too slow for large record sets. I 'rolled my own' database toolkit by calling ADO.NET directly from LabVIEW. To get large record sets, I use the tricks from Brian Tyler's old blog on how to move large data between .NET and LabVIEW using arraylist data types. I did need to write a very small c# function to do this but it was not too hard.

    If you are not up for that yourself, I think the NI-CT does have a way to establish a connection using a connection string. As I said above, I saved the variables in an INI file and then read them in and use a format into string to construct the connection string on the fly and open my connection.

    I believe you will still need the MySQL driver installed on your system, but should be able to avoid the process of setting up an ODBC link with the data sources manager tool. I used to do that back in the Win3.11 days and it was a PITA.

    good luck!

    -John

  12. I have avoided Data Source Names in ODBC all together by connecting directly to the database server using a connection string like this:

    Server=yourdatabaseserver.domain.network.com;Database=yourdatabase;User ID=youruser;Connection Timeout=60;Trusted_Connection=FALSE;Net=dbmssocn;

    I use and ini file to specify the components of that connection string so the customer can edit them as needed. you could have your app pop up a dialog on first run to query the customer for those values and write them to the ini file.

    I am using the ADO.NET interface to talk to SQL server, by MySQL should also be supported.

×
×
  • Create New...

Important Information

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