Jump to content

Rolf Kalbermatter

Members
  • Posts

    3,903
  • Joined

  • Last visited

  • Days Won

    269

Everything posted by Rolf Kalbermatter

  1. QUOTE (Ton @ Dec 23 2008, 01:01 PM) Most likely there will be no difference for a user of the library, unless you use the Mac or I do come across some bug until then. The Mac at least on newer OS X versions has an issue with long pathnames and until I had time to test that a bit more I did not want to create the shared library. Besides I do not have an x86 Mac so creating the shared library has to be done by others (Jim Kring will probably go to do that). For now it is mostly to give the opportunity to others to test the VxWorks version since the last changes to the library were in fact to support that based on very helpful feedback from Brian K from NI. So yes there is a chance that you could encounter a bug when using this version (but that is true for any software released or not :laugh: ) but I do not intend to change anything in terms of functionality, VI interfaces nor design of the library for the final release. Rolf Kalbermatter
  2. I have personally only ever used my own ODBC based library. I can't really comment if it is fast as I have no comparison but it was never slow for what I needed it for. I have implemented some specific features in that library to fetch one or more rows at one time to reduce the network roundtrips the ODBC driver has to do for a query. There is actually still room for improvement in that part but the entire interface is written in C and this part is something that gets very messy very fast once you consider to support not just one specific ODBC driver but want to be compatible with as many as possible. If you are doing lots of updates however this library wouldn't help much as these have still to be executed as SQL statements since I haven't found time to add support for parametrized SQL updates and the priority for this is way low on the list. The fastest way to access an SQL server is quite likely through its native API. There is a DLL interface to the Microsoft SQL Server API that does avoid any issues with intermediate standardization software layers such as ODBC, ADO. DAO, ADO-.Net. I have no idea how easy if would be to interface to that API using the Call Library Node but suspect that there would be some intermediate code required or at least very helpful, to translate between the SQL Server API and a more friendly LabVIEW API. The disadvantage of this approach is that you will be tied to SQL Server for the rest of your life if you use its own proprietary API. Some remarks to some other things mentioned so far: LabSQL, the Database Toolkit and just about any other LabVIEW database support library out there does use the ADO ActiveX interface. They may implement certain things differently such as using the mentioned GetRows method or iterating through the rows instead, support certain operations or not but the basics of all them is in fact ADO ActiveX. As to the missing of the GetRows operator in .Net. I think John is using a technique he got from the mentioned blogs from Brian Tyler where he does the actual extraction in an external .Net component written in VB or VC .Net to avoid exactly the huge overhead of having to iterate through the entire rowset from LabVIEW which due to its dynamic interface to .Net has a certain overhead for each invocation of a .Net method. Rolf Kalbermatter
  3. This is a crosspost from . This is a prerelase version of the newest sources from the sourceforge CVS repository. All public symbols should have been prepended with lvzip_ to avoid name collisions with the already defined functions in the VxWorks kernel. The Windows and Linux version are also updated in that way and seem to work just fine. Sorry for the Mac guys but I saw no opportunity to recompile for Mac targets yet and there is one outstanding issue with this new version that needs some more testing. This has not been tested on VxWorks targets yet as I still haven't one available to play with. The included OpenG package can be best installed using VIPM. Download File:post-349-1230024275.ogp For VxWorks support you should ftp the according lvzlib.out to the controller into ni-rt\system, from the correct subdirectory (vxWorks82 for LabVIEW 8.2.x and vxWorks85 for LabVIEW 8.5.x and 8.6) inside the lvzip directory created where you installed the package. As already mentioned this should now work for following targets: Windows, Pharlap RT targets lvzlib.dllVxWorks RT targets lvzlib.outLinux targets lvzlib.so MacOS X, x86 support will follow. Rolf Kalbermatter
  4. QUOTE (Minh Pham @ Dec 21 2008, 10:47 PM) Well said! Rolf Kalbermatter
  5. QUOTE (Wedge @ Dec 21 2008, 07:30 PM) I'm really sorry. But I have not used the PCDK nor even seen it so I can be of little help here. Basically ActiveX has two different types of interfaces. one is the Automation interface and the other are ActiveX Controls. The first you have to instantiate using Automation Open and the second is instantiated at the momen it is loaded into an ActiveX container. At least under .Net you also have static interfaces. They do not need to be instantiated (created) as they are not an object in the normal sense but simply a collection of methods to do something that is not inherently tied to data that the object would maintain. For an Automation Interface, and I'm sure the PCDK does implement such an interface, you usually have an object hierarchy. The root object is usually something like IApplication or something like this. You always have to instantiate that object using Automation Open in LabVIEW. Once opened you usually have methods or properties in that interface that return among other things also references to subobjects from that object hierarchy. These objects you do not have to instantiate again since that would be the task of the object who returns an object reference. However just because you have opened a root object reference does not mean that you can add additional Automation Refnum controls in your application and connect them to subobjects interface types and expect them to be vallid. The connection to an interface only defines what methods and properties that refnum can provide but does not yet create a valid object reference. You only get a valid object reference from either Automation Open or another already instantiated object in the object hierarchy that returns an object reference. Rolf Kalbermatter
  6. QUOTE (iannicholson @ Dec 8 2008, 01:25 PM) This protocol is called SRTP and is indeed proprietary. However it is based on the older serial port protocol which is documented in the programming manuals and also through some unsupported Visual Basic examples from Fanuc itself. I have recently written a VI library to control Fanuc Controllers over the LabVIEW build in TCP/IP functions. It works well for what we had to do but is far from throughly tested. I really couldn't recommend anyone to use it who isn't well into low level programming including TCP/IP protocols and since there is no real documentation about it I will refrain from posting it here. Rolf Kalbermatter
  7. QUOTE (AnalogKid2DigitalMan @ Dec 8 2008, 09:59 AM) They probably are but there will likely be some capacitive coupling. This can be sometimes problematic for higher frequencies. Rolf Kalbermatter
  8. QUOTE (Hurdus @ Dec 10 2008, 05:42 PM) Seems like a http://forums.ni.com/ni/board/message?board.id=170&message.id=373893&query.id=30448#M373893' target="_blank">cross post. It's considered polite to give a reference to such cross posts so that people are not wasting their time answering you with ideas when the whole problem might already have been solved on another board, which in this case is. Rolf Kalbermatter
  9. QUOTE (BrokenArrow @ Dec 21 2008, 09:29 AM) Alphabetical order is for many things completely useless. There may be many more "means" with something in front too and then it doesn't help. But once you know the term mean and use the online search (palette search, quick drop or anything like that) you will get them all. It's been years that I really did use an alphabetical list to search for something rather than online resources (google, online help, etc, etc). I find alphabetical lists mostly useless, almost like learning out of your head complete mathematical or chemical formulas. Rolf Kalbermatter
  10. QUOTE (Darren @ Aug 12 2008, 09:56 AM) Actually that is not correct. I happened to have an older application developed in LabVIEW 7.1 and Vision 7.1. After installing LabVIEW and Vision 8.6 I recently made a minor bugfix to the application in 7.1 and sent out the executable to the client. It wouldn't work anymore since the executable was complaining about various Vision VIs not being loadable. Investigating in an older install of LabVIEW I found out that various VIs were different where they were implementing shape to Region conversions in the diagram in 7.1 and were now calling the nivision.dll for these functions in 8.6. Of course the installed Vision 7.1 DLL did not contain those exports. It must be the 8.6 installer since I did only install Vision in 8.2 at the time 8.2 got released and had made other modifications in 7.1 on that application since and never installed Vision in 8.5 since I never used that version for much. The client had to download the Vision Runtime 8.6 from the Website and install it but then got an evaluation dialog despite that the Vision Runtime 7.1 was installed and licensed on that system. Not Good!!! Rolf Kalbermatter
  11. QUOTE (Pollux @ Dec 19 2008, 02:46 PM) It's not just Romanian but in fact German and a few other European languages too. It's English too at least according to this: http://www.thefreedictionary.com/analphabet and this: http://www.merriam-webster.com/dictionary/analphabet Rolf Kalbermatter
  12. QUOTE (BrokenArrow @ Dec 15 2008, 10:56 AM) They still do that but not in paper form. It's all in the online help. I doubt there exist one single file or document, listing all of what you want. It's all buried in numerous knowledge databases, documents, internal release guidelines, build files, etc. etc. It could be compiled probably but I would hazard this to be a very time consuming job with little benefit as every driver release or even bug fix will change that again. Rolf Kalbermatter
  13. QUOTE (test001only @ Dec 12 2008, 04:02 AM) Do you mean memory or disk space? For the first it obviously won't work as the file on disk is not loaded into memory unless you do an explicit file read. The later I'm 100% sure does work as I use that for instance in some data logger applications to make sure that the file is properly allocated without having to worry about disk full issues during the logging itself. Rolf Kalbermatter
  14. QUOTE (Irene_he @ Dec 12 2008, 09:49 AM) This is a bit of a nitpick but most Canon Cameras do support some settings over PTP. The problem is that the Windows WIA driver for PTP cameras only supports some generic PTP properties and methods. And there is no easy way to access that PTP interface directly on Windows machines. I do have a LabVIEW interface that goes through WIA to access a PTP camera directly through its PTP interface using the WIA passthrough operation. But this is both non-open source and also anything but trivial or for free . Even when you would have that interface you would have to have documentation over the actual supported PTP properties and methods in order to be able to do much more than just take a simple image. And setting those properties right is anything but trivial since they seldom mach the settings you would make on the control dials or menus directly but have different units/operations and often depend on other properties too. I have only used this interface with Nikon DSLR cameras (D series) also controlling vendor specific properties and methods not supported by the generic WIA interface so far and have no experience with the Powershot series of Canon at all. Rolf Kalbermatter
  15. QUOTE (Antoine Châlons @ Dec 18 2008, 06:08 AM) There is probably no way to disable this completely. At least the first time you really do want to have this security check as otherwise every virus could connect to Skype and (ab)use it for whatever it wants. MS had this in the past that any application could conenct to Outlook over ActiveX and that was a perfect way for a Virus to harvest the entire email address list as well as using the Outlook credentials to send out tons of spam mails. So they had to disable unnoticed connection to Outlook over ActiveX with a security patch. Maybe that Skype will cache a once given acknowledgement for a specific application somehow so it won't prompt each time again but the first prompt you do not want to give up ever! Rolf Kalbermatter
  16. QUOTE (xavier30 @ Dec 16 2008, 06:47 PM) Not sure exactly about the details at the moment, but first the *.framework is not a file but a directory on the Mac. It contains various files that implement the actual shared library in a fairly clean versioned manner. If you want to see an example of how it is doen you can go and checkout the lvzip sources from the OpenG Toolkit on sourceforge. There is an XCode project contained to compile the various sources into a MacOS framework. Rolf Kalbermatter
  17. QUOTE (Antoine Châlons @ Dec 18 2008, 04:19 AM) I don't think you can programmatically login. I only looked briefly at the Skype ActiveX interface and it seems if you open a reference to the SkypeClient interface you can define the user to login with in the IClient.OpenAuthorizationDialog method but it has no password so if this is what you are looking for it will simply put up a login dialog to prompt the current user for his password. The IApplication.Connect method doesn't seem better. Rolf Kalbermatter
  18. QUOTE (Ton @ Dec 16 2008, 01:13 AM) You would be surprised how many different MS sanctioned clipboard formats there can be. There is certainly some form of special path type and I believe it can even come in various flavors such as shell ITEMIDLISTS but also other types. Either, although possible, is not practical to do without some external code in form of a DLL. QUOTE (asbo @ Dec 17 2008, 07:57 PM) He's looking to intercept/emulate the file move/copy functionality of the context menu in Windows Explorer. Unfortunately, I don't know enough about how that works to comment - it may use DDE messages or something similar. Nowadays this is usually done with shell COM objects. Either IDropSource or IDropTarget depending on if you are the source of or a registered target for possible drag operation. You also implement IDataObject to contain the actual data object itself which can contain support for one or more different clibboard formats. It is certainly not something you can do directly in LabVIEW but which requires some external code in form of a DLL, a good understanding of COM in general and the poor mans shell implementation of it and of drag and drop operations in general. If you do not know C/C++ quite well you are in for a steep learning curve. Rolf Kalbermatter
  19. QUOTE (Gary Rubin @ Dec 9 2008, 12:03 PM) Some of the Advanced Analysis Library Or Vision functions could be offloaded from inside those functions if the library and hardware has been found present. However there is of course the issue about data transfer. I suppose offloading large data sets to do small discrete operations on the GPU wouldn't be to efficient because of the necessary transport of data from and to the GPU. So it would be mostly for specific very computationally intense algorithms only. I'm not sure if a simple FFT would be already enough for that. Rolf Kalbermatter
  20. QUOTE (Neville D @ Dec 8 2008, 03:51 PM) Nothing against that. I just say betting in an application on CUDA limits the possible platforms you can deploy this application to. QUOTE BTW MACs use NVIDIA graphics (in addition to INTEL integrated graphics) so potentially this could increase performance on MAC machines in the near future as well. Anyway, I think its a good direction for processor hungry applications like Vision or control. Software still would need seemless support for processing everything on the host CPU to make this useful in most applications. This makes such a solution a bit hard to do through the call Library interface and IMO it is much better to integrate that on a much lower level such as on the graphics routine kernel in a Vision library. Or in the analysis library. However latter may be a little hard for the LabVIEW Advanced Analysis Library since it makes mostly use of the Intel Math Kernel library and I'm not sure Intel is going to integrate CUDA into it nor even facilitate it for others to do so. Rolf Kalbermatter
  21. QUOTE (Michael_Aivaliotis @ Dec 8 2008, 01:05 AM) And that caused a lot of bitching in the past since it didn't always work optimal. For many versions Bundel/Unbundle by Name could get really badly confused and just randomly switch terminals (and not always was that causing broken wires). The situation was so bad that I had wished it would not rename at all but just leave invalid names in the Bundle/Unbundle instead and let me search it out manually. Rolf Kalbermatter
  22. QUOTE (tushar @ Dec 5 2008, 04:00 AM) You should really read the release notes to the ZLIB library. There is a section in it that reads: 2) Adding of files into existing ZIP archive supportedZLIB Compress Directory.viZLIB Compress Files.viZLIB Open ZIP Archive.viThe boolean parameter to append or truncate has been replaced by anenumeration to support addition of files into an existing archive.The old append value meant that the ZIP file was tacked to the endof the existing file which might have been useful for a selfextractingexecutable only.Following table shows the old and new settingsold value new value remarksFalse create new truncates existing file to 0True append to end appends to end of existing fileNA append to archive appends new files into the archive Obviously you do not want to use "append to end" but "append to archive" instead. Rolf Kalbermatter
  23. QUOTE (Luis Fernando @ Nov 27 2008, 10:45 AM) Unless you get them from the manufacturer of the device they probably don't exist. NI does write instrument drivers but most times includes only the functionality they: - can test - can understand - and believe is useful Even many instrument manufacturers do write instrument drivers for LabVIEW and do apply exactly the same rules in deciding what to support in such a driver! Many of the instrument drivers on NI's instrument driver download are actually from the instrument manufacturers and that are often not the most complete or well written drivers of them all. Rolf Kalbermatter
  24. QUOTE (MJE @ Nov 23 2008, 08:18 AM) When you call DLL functions and configure the parameters right LabVIEW WILL pass the data pointer to the DLL and NOT copy all the memory before calling the function or returning from it. I haven't looked at CUDA and am not sure how it works but if what you mean by paralellisme is that you can call several fucntions in parallel to work on the same data then yes you would get a problem when calling that in LabVIEW. LabVIEW manages it's memory in its own and very dynamic way. It will make sure that a memory pointer passed to a DLL function will remain locked in place and valid for the duration of the function call but once the function returns that memory can be reallocated, moved, copied, overwritten, deallocated and whatever else you can think of at LabVIEW's will and at any time. So if you would need to call functions that will hold on to memory buffers beyond the function call itself you can't use LabVIEW's Call Library Node without some good LabVIEW-C voodoo power. All in all the perfect case to create a wrapper DLL to interface between LabVIEW and such libraries. However the biggest draw back I do see is the fact that I haven't owned an NVIDIA powered computer in all the time so far. Sort of makes such a solution very narrow scoped in terms of possible deployments as I'm sure I'm not the only person that does own a computer with a different graphics processor than from NVIDIA. Rolf Kalbermatter
  25. QUOTE (crelf @ Oct 24 2008, 08:08 PM) It's what you get when using the newest MS compiler tools. They create DLLs and executable's that explicitly link to the newest and greatest MS C runtime libraries. Using older MS compiler versions has the benefit that all current MS OSes come with those runtime libraries already installed but I guess Vista wasn't compiled with MS VC 2008 and therefore does not come with its runtime libraries. Ok I admit, the LabVIEW RTE installer should have installed the redistributables of whatever runtime libraries for the compiler that was used for the delivered LabVIEW components . I prefer to compile my tools with Visual C 6.0 and so am sure they will work even on a Windows 98 or NT 4 out of box installation . It's really great to just have a VI library and a DLL and not have to worry about the correct runtime libraries being installed. Also makes life a lot easier if you don't have to tell someone to first install .Net 2.1.2.3.5 or higher before attempting to run your software. Rolf Kalbermatter
×
×
  • Create New...

Important Information

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