-
Posts
3,909 -
Joined
-
Last visited
-
Days Won
270
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by Rolf Kalbermatter
-
ActiveX WinHTTP
Rolf Kalbermatter replied to LVBeginner's topic in Remote Control, Monitoring and the Internet
QUOTE (LVBeginner @ Apr 27 2009, 09:54 AM) Well I can't even access it so I have no idea what it looks like, or what it does. I don't even know that it exists for real when going there with my webbrowser. Rolf Kalbermatter -
ActiveX WinHTTP
Rolf Kalbermatter replied to LVBeginner's topic in Remote Control, Monitoring and the Internet
QUOTE (LVBeginner @ Apr 27 2009, 07:29 AM) And what the heck is hermes??????????????????????????????????????? Rolf Kalbermatter -
QUOTE (manojba @ Apr 27 2009, 01:48 AM) If the runtime engine is already installed on the system you can usually just copy the build directory from the application builder step to that machine. But you will need to install the runtime engine no matter what. Up to version 5.1 it was very easy to just copy everything to another machine, drop in the lvrt.dll file from the runtime engine directory alongside the exe et voila. But LabVIEW has since evolved and added a lot of features that depend on additional components being installed on a machine. Those components get installed together with the runtime engine. With LabVIEW 6 and 7 it was still possible to do such a distribution to some extend but it was a lot more trial and error which files you needed to copy from the runtime engine directory into your application directory to make it self contained. lvrt.dll alone definitly is not enough anymore and things like Advanced Analysis functions won't work since LabVIEW 7.1, since they make almost all use of the Intel Math Kernel Library from that version on and that is an external component that needs to be installed on a system in order for the LabVIEW system to find it. With LabVIEW 8.x I have not attempted to do self contained applications so far and do not intend to spend any time in doing so. The whole LabVIEW runtime universe got in the meantime so complicated and interconnected that I see no point in spending time to figure out everything just to avoid having to run an installer application. Rolf Kalbermatter
-
QUOTE (crossrulz @ Apr 22 2009, 01:33 PM) I think you mix up ordered and sorted. The term ordered means in my book really that there is a certain distinct ordering to the elements which there is through the array index, just as in a cluster through the element order. That does probably not mean that the elements are sorted at all in ascending, descending or whatever else order But then I might be wrong here too and they are in fact saying that arrays are not sorted with that statement and then answer E would be right according to the strange multiple choice system that in the US seems so common. It's just not what in programming terminology is usually meant by the term ordered. Rolf Kalbermatter
-
Annoying Copy/Paste action
Rolf Kalbermatter replied to Cat's topic in Development Environment (IDE)
QUOTE (Yair @ Apr 24 2009, 03:39 AM) Well cross linking probably isn't the issue here as the Clipboard resides in the global LabVIEW context wheras each project has its own context. I think that Yair has it right that it is a side effect from the project maintaining links to all VIs that it has opened somewhere and that includes VIs placed in the clipboard. On closing of the project all such VIs get closed too. Is it a bug? Well strictly speaking I would say no. Could it be made to make an exemption in the case of clipboard code? I have really no idea. At first glance it would seem possible but I might just as well oversee a big pitfall in doing so. Rolf Kalbermatter -
Strange behavior with numeric coercion
Rolf Kalbermatter replied to TobyD's topic in LabVIEW General
QUOTE (TobyD @ Apr 7 2009, 01:22 PM) I think you are right but that might have other implications somewhere they tried to fix by ordering the operations like this. With such things it is often very hard to fix something without breaking something else, and even harder to think of possibilities what might break by the fix. Rolf Kalbermatter -
QUOTE (Aristos Queue @ Apr 24 2009, 09:03 PM) He probably means that it is not anymore possible to drop in a single node that does the entire conversion for all datatypes automatically. With those VIs you might have to create a VI that makes explicit conversion in a case structure based on this enum and that will then not work for a new datatype in the next LabVIEW version without modification. Rolf Kalbermatter
-
QUOTE (candidus @ Apr 24 2009, 02:37 PM) Nothing. The new 32 bit typedescritors LabVIEW uses internally are not exposed in any way. Rolf Kalbermatter
-
QUOTE (candidus @ Apr 24 2009, 01:46 PM) Well for strict typedefed refnums yes, which can be recognized from the little star in the refnum icon. QUOTE But what's about the change in the class hierarchy? In LV8.0 XYGraph seems to be a subtype of WaveformGraph, at least the RefNum looked like that and I noticed it changed when just opening the VI in LV8.0 . I'm correcting myself: In LV7.1.0 XYGraph seems to be a subtype of WaveformGraph. Not sure about this one. A change in the location inside the class hierarchy should not have an influence on the datatype but only on the inherited properties from its ancestor classes. Rolf Kalbermatter
-
QUOTE (normandinf @ Apr 24 2009, 11:16 AM) Actually they can have at least two formats for single plot and multi plot waveforms each and I believe even more if you get fancy. Rolf Kalbermatter
-
QUOTE (candidus @ Apr 24 2009, 04:26 AM) Hmm, you definitly mix up something here. XY Graphs exist as far back as LabVIEW 2 and in the form and dataformat they have today since LabVIEW 3. Rolf Kalbermatter
-
ActiveX WinHTTP
Rolf Kalbermatter replied to LVBeginner's topic in Remote Control, Monitoring and the Internet
QUOTE (LVBeginner @ Apr 23 2009, 02:46 PM) When I browse to that server I get a dialog box that only IE is allowed to go there. When I use IE I get a login page. Now looking at the HTML code there seems to be some scripting done for this functionality. So it seems you would have to not only send a User Agent but in fact a very specific User Agent. Trying with the OpenG VI a bit I can see that you need to use at least following information: GET \ HTTP/1.0\r\n User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; WWTClient2; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)\r\n Host: www.plexus-online.com\r\n \r\n to get a valid response. You probably can get rid of some of the software versions about .NET and Office in the User Agent string. But that response contains JAVA scripting so there is the next problem!!!! I don't think you want to implement Java script in LabVIEW Rolf Kalbermatter -
QUOTE (jdm @ Apr 21 2009, 02:43 PM) Well I do not know that library but most likely HIDInterface is a structure. And it probably contains pointers and such. So there is no easy way that you could access information in that structure directly from within LabVIEW since LabVIEW itself does not have pointer datatypes. There are two possibilities: 1) You do not really need to access any of the information in that Cluster (structure) directly. In that case you can configure the pointer to the structure simply as a 32 byte integer in all functions that have this parameter.Then you pass that integer around on the LabVIEW diagram to the various Call Library Nodes that need to operate on that structure. This requires that you have a a function that you can call that will return to you a preconfigured HIDInterface pointer so that you would not have to access the elements in that structure directly. There is a hid_new_HIDInterface() function in libhid but your MCC library hoefully has a higher level function that calls this function but fills in all the fields of that structure. Also there needs to be some sort of close function such as hid_close() that takes this parameter and makes sure all internal resources are deallocate. 2) your MCC library does not provide enough functions to allow configuring that structure without needing to access elements in that structure directly. In that case you really will have to extend the MCC library to export some additional functions that allow passing in all the paremters that you need to assign to that structure and the function then initializes/accesses that structure accordingly. Rolf Kalbermatter
-
ActiveX WinHTTP
Rolf Kalbermatter replied to LVBeginner's topic in Remote Control, Monitoring and the Internet
QUOTE (mesmith @ Apr 23 2009, 11:06 AM) Well HTTP proxy is really a whole layer above TCP/IP so there is no way the LabVIEW TCP/IP nodes should or even could support HTTP proxy functionality. That has to be built on top of those TCP/IP nodes and that is in fact fairly easy. As I have written elsewhere here, there is a non-released HTTP library on OpenG that supports proxy access and has worked fine for me in the past. Non-released means you can't get the library through VIPM but have to get the actual VIs from the OpenG Toolkit CVS repository on Sourceforge. You can do that by using a CVS client such as Turtoise CVS or by using the Sourceforge Web Browser interface to their CVS service. VIPM actually uses those VIs to access the code repositories! Rolf Kalbermatter -
QUOTE (crelf @ Apr 23 2009, 09:07 AM) I stated my stance a few times and think that's enough Rolf Kalbermatter
-
Getting rid of the ini
Rolf Kalbermatter replied to Cat's topic in Application Builder, Installers and code distribution
QUOTE (Cat @ Apr 15 2009, 02:28 PM) Well, a LabVIEW exe itself actually never writes to its ini file, except when it is not there, in which case it creates an empty ini file. The way I do this is by always adding an ini file into the build. This ini file contains a few default settings such as to suppress the secondary task bar button for the hidden root window, specific font settings for the different LabVIEW default fonts and possibly VI server settings. All the actual configuration settings for my applications are not stored in that ini file but in a seperate ini file either located under Documents and Settings\All Users\Application Data\<app name> for settings that are used for any user on a particular machine (hardware configuration) and under Documents and Settings\<user name>\Local Settings\Application Data\<app name> for settings that are user specific. Works fine even in environments fairly strictly locked down by IT departements. And for what I know it should even work for Vista, which I luckily had not to deal with yet. Rolf Kalbermatter -
QUOTE (crelf @ Apr 5 2009, 03:08 PM) :laugh:
-
Why can't I find some Property and Invoke Nodes?
Rolf Kalbermatter replied to Cool-LV's topic in VI Scripting
QUOTE (Cool-LV @ Apr 3 2009, 04:39 AM) It is a separate license but there is no article number on the NI site for it and no scripting license you can buy. It is only for internal use within NI and maybe very selected strategic external contacts. The license Manager is here used to protect that feature from being easily used by us mere mortals. Rolf Kalbermatter -
QUOTE (shoneill @ Apr 8 2009, 08:10 AM) At that age at least Later it tends to equalize and a year also tends to mean less and less. QUOTE Way to go off-topic. That is always as threads get longer. But fortunately we seldom get Godwins law invoked here. Rolf Kalbermatter
-
QUOTE (shoneill @ Apr 8 2009, 08:10 AM) At that age at least Later it tends to equalize and a year also tends to mean less and less. QUOTE Way to go off-topic. That is always as threads get longer. But fortunately we seldom get Godwins law invoked here. Rolf Kalbermatter
-
QUOTE (Kubo @ Apr 7 2009, 10:41 AM) PPP connections are usually handled by RAS (Remote Access Service) under Windows. There is a Windows API and I once did a LabVIEW interface to that but can't distribute it. But there is also a command line tool rasdial.exe to control RAS connections that you can call using the LabVIEW System Exec function. Rolf Kalbermatter
-
QUOTE (Jolt @ Apr 9 2009, 02:54 PM) All these things are one of the reason to not use ActiveX or .Net for things that can be solved otherwise. The HTTP protocol on the client side is not that terribly complicated to not implement it directly in LabVIEW. LV_FPGA has posted his code. In the CVS repository on OpenG are some HTTP Vis too, that haven't made it into a released OpenG package yet. Rolf Kalbermatter
-
File build and version number in PharLab or VxWorks?
Rolf Kalbermatter replied to Steen Schmidt's topic in Real-Time
QUOTE (Steen Schmidt @ Apr 7 2009, 03:50 PM) I haven't done much with vXWorks and certainly not used any resources in such a project so I can't say with authority but I don't think the VxWorks build system actually knows something like that. The Pharlap system uses simply a PE (portable executable) image format and such DLLs can contain resources but if you can't use a VI calling the Windows APIs to retrieve the file version, the Pharlap OS probably lacks proper API support to deal with the resource part of a PE image. At least for headless systems such as the LabVIEW realtime controllers this seems like a very sensible decision as it makes not so much sense to support a fully fledged resource access API when most of those resources are mostly used for UI purpose only. Rolf Kalbermatter -
Using Python as a "dynamic" formula node
Rolf Kalbermatter replied to jcarmody's topic in Calling External Code
QUOTE (jcarmody @ Apr 7 2009, 09:54 AM) How would you want to do that? LabVIEW is strongly typed and the only way to do what you want to do is using variants, but the internal C interface to them is not documented anywhere (though I have to admit I never inquired if it could be gotten in some semi official way anyhow such as what we got for the old scripting API that is also used in the script node interface of LabPython). But even using variants you usually have to convert the data back to some datatype in the end although you could of course go for strings if it is only about displaying them. If you only want to convert to strings I believe you should be able to do so already since the used Python API should actually be able to return string format for all its datatypes but it's a long time ago that I have played with this and it could be that there is somewhere a problem that makes this fail. Rolf Kalbermatter -
the issue of calling dll passing arguments by pointer
Rolf Kalbermatter replied to greatwall's topic in Calling External Code
QUOTE (greatwall @ Apr 6 2009, 11:04 AM) There are basically three possibilities. The first type of pointers are scalars passed by reference such as your first parameter (int* name) is. This is not a problem in LabVIEW. The second are arrays passed to the DLL such as a (char *buf). These have to get allocated by the caller in all cases and you can do that in LabVIEW also using for instance the Initialize Array function. The third are arrays passed by reference (char **buf) both allocated by the caller or the DLL. Since LabVIEW doesn't have a pointer datatype it can not really represent such a datatype itself. And if the DLL allocates such a pointer things get even more complicated since LabVIEW has no way of knowing what type of heap manager allocated them but it has a very specific expectation of how memory blocks are allocated. If you can change the DLL (even if you have the source code that is not always an option) you can adapt the functions to play with compatible LabVIEW datatypes or use the LabVIEW memory manager functions from extcode.h to create functions that accept directly LabVIEW native datatypes. You would then configure the corresponding parameter in the Call Library Node to Adapt to Type. Doing this last option requires both a very good understanding of C in general as well as about the use of those LabVIEW memory manager functions. If changing the DLL is no option you can always create an intermediate DLL that does translate between whatever the original DLL requires and what works best for the LabVIEW interface. Here too you have the choice to either use LabVIEW compatible C datatypes or use the LabVIEW memory manager fucntions to deal directly with the native LabVIEW data buffers. Rolf Kalbermatter