You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: goio-jna/GoIO_SDK/readme.txt
+64-13Lines changed: 64 additions & 13 deletions
Original file line number
Diff line number
Diff line change
@@ -5,44 +5,95 @@ The GoIO SDK is intended to provide software developers with the ability to acce
5
5
The heart of the SDK is the GoIO_DLL library.
6
6
The API to this library is documented in \GoIO_SDK\redist\include\GoIO_DLL_interface.h. The sequence of function calls into the library is best illustrated by the GoIO_DeviceCheck sample code.
7
7
8
-
The Windows version of this library is GoIO_DLL.dll. Since GoIO_DLL.dll is a standard Microsoft Windows DLL, you can access the library from a variety of languages including C, C++, Basic, LabView, and Java.
8
+
The Windows version of this library is GoIO_DLL.dll. Since GoIO_DLL.dll is a standard Microsoft Windows DLL, you can access the library from a variety of languages including C, C++, Basic, LabView, and Java. This code compiles in Visual Studio 2005. We have also written a .NET wrapper for GoIO_DLL.dll called GoIOdotNET.dll. GoIOdotNET.dll allows .NET based applications to access the Go! devices.
9
9
10
-
The Apple version of the GoIO_DLL library comes in two different flavors: libGoIO_DLL.dylib and libGoIO_DLL.framework. Both flavors of the library implement exactly the same API. They are just packaged differently as a convenience to users. These libraries can also be accessed from a variety of languages. GoIO_DLL requires Mac OS 10.3.9 or later. Note that libGoIO_DLL.framework is stored in \GoIO_SDK\redist\GoIO_DLL\MacOSX\libGoIO_DLL.framework.zip . You will have to unzip it before you can use it.
10
+
For Mac OS, we provide two sets of libraries: Legacy and Universal. The Legacy libraries (libGoIO_DLL.a, libGoIO_DLL.dylib, and libGoIO_DLL.framework) have their base SDK set to 10.4; the current GoIO SDK no longer supports 10.3.9. Note that these can only be linked to 32 bit executables.
11
11
12
-
libGoIO_DLL.dylib has the install directory set to "@executable_path/libGoIO_DLL.dylib", which means it will only work if it is located in the same directory as the executable: e.g. for an application, this would be in the bundle folder: MyApp.app/Contents/MacOS. The libGoIO_DLL.framework, likewise, is expected to reside in /Library/Frameworks. To change the install location, you need to run /usr/bin/install_name_tool on the library executable -- libGoIO_DLL.dylib or libGoIO_DLL.framework/Versions/A/libGoIO_DLL. For more info, see "man install_name_tool".
12
+
The Universal versions of the library (libGoIOUniversal.a, libGoIOUniversal.dylib, and libGoIOUniversal.framework) are targeted for Mac OS 10.5 and higher, and may be incorporated into 32 or 64 bit executables.
13
13
14
-
The Linux version of the GoIO library just contains the source and one test program to test the library functions, for now. Follow the INSTALL instructions to get started.
14
+
For each set of libraries, we provide 3 different flavors. The ".a" flavor is a static library which gets built directly into your executable at link time. The ".dylib" and ".framework" flavors are loaded dynamically each time your code is loaded for execution. Please note that the .dylib and .framework libraries are expected to be located at very specific places in the file system:
15
+
16
+
* The ".dylib" libraries have their install directory set to "@executable_path/libGoIO_DLL.dylib", which means they will only work when they are located in the same directory as the executable: e.g. for an application, this would be in the bundle folder: MyApp.app/Contents/MacOS.
17
+
18
+
* The ".framework" libraries, likewise, are expected to reside in /Library/Frameworks.
19
+
20
+
To change the install location of either, you need to run /usr/bin/install_name_tool on the library executable -- e.g. libGoIOUniversal.dylib or libGoIO_DLL.framework/Versions/A/libGoIO_DLL. For more info, see "man install_name_tool".
21
+
22
+
The Linux version of the GoIO SDK is packaged separately from the Windows/Mac version. Follow the INSTALL instructions to get started.
23
+
24
+
Note that the Go! devices are HID USB devices which use standard device drivers that are automatically preinstalled on Microsoft Windows systems.
The SDK includes complete source code in C++. You are free to use this code however you like. All the software included in this SDK was written by Vernier Software & Technology(VST), and VST places absolutely no legal restrictions on using the software. You can copy the code, modify it, embed it in your own products, etc.
28
+
The GoIO SDK includes complete source code in C++.
19
29
20
-
VST does not guarantee that the code is bug free, but we try to make it so. If you find any bugs, please report them to http://www.vernier.com/tech/supportform.html .
30
+
The GoIO SDK is currently distributed with a very permissive BSD style license. See the license.txt file located in the same folder as this readme.txt file.
31
+
32
+
Basically we encourage everyone to use the SDK, and to freely redistribute the GoIO_DLL library. If the restrictions set out in the license.txt file discourage you from using the SDK, please contact VST at http://www.vernier.com/tech/supportform.html .
21
33
22
-
VST would prefer that you not modify GoIO_DLL.dll, libGoIO_DLL.dylib, or libGoIO_DLL.framework. If you do modify any of them, please give your modified version a different name, so we can easily distinguish your version from the VST version.
34
+
VST does not guarantee that the code is bug free, but we try to make it so. If you find any bugs, please report them to http://www.vernier.com/tech/supportform.html .
GoIO_DeviceCheck is a very simple command line sample application that opens the first Go device that it finds, takes some measurements and printf's the results to STDOUT. It is written in C++(really just C) and its source code runs on Windows, MacOSX, and Linux. Looking at the sample code in \src\GoIO_DeviceCheck\GoIO_DeviceCheck.cpp is the best place to start if you are new to GoIO. Even if you are programming in a different language, eg. Basic or Java, GoIO_DeviceCheck.cpp is probably the first thing that you should look at.
38
+
GoIO_DeviceCheck is a very simple command line sample application that opens the first Go! device that it finds, takes some measurements and printf's the results to STDOUT. It is written in C++(really just C) and its source code runs on Windows, MacOSX, and Linux. Looking at the sample code in \src\GoIO_DeviceCheck\GoIO_DeviceCheck.cpp is the best place to start if you are new to GoIO. Even if you are programming in a different language, eg. Basic or Java, GoIO_DeviceCheck.cpp is probably the first thing that you should look at.
GoIO_console2 is a sample application that is coded to the GoIO_DLL API. The Windows version source code was written in Microsoft Visual C++ version 6.0. The Apple version is a Cocoa application written in Objective C++ using the Xcode IDE.
42
+
GoIO_Measure is a sample application that is coded to the GoIO_DLL API. The Windows version source code was written in Microsoft Visual C++ 2005.
31
43
32
-
To run this application, you need to plug in one or more Go! devices into USB ports, click on the GoIO_console2 Devices menu, and then click on one of the listed devices.
44
+
GoIO_VB_Form_Measure is a Visual Basic .NET application that behaves very similarly to the GoIO_Measure sample application. This application is coded to the managed code API presented by GoIOdotNET.dll and VSTCoreDefsdotNET.dll. These .NET dll's provide a thin wrapper around the unmanaged code in GoIO_DLL.dll.
33
45
34
-
Note that the Go! devices are HID USB devices which use standard device drivers that are automatically preinstalled on Windows ME, Win2000, and XP systems. The HID USB device drivers are present on Windows 98 installation CD's but they are not always preinstalled. You may be prompted to insert a Windows 98 installation CD when you plug in a Go! device for the first time.
46
+
To run these applications, you need to plug in one or more Go! devices into USB ports, click on the Devices menu, and then click on one of the listed devices.
GoIO_console is a sample application that basically acts as a low level USB HID packet logger for the Go devices. Because it logs almost all the data communication packets sent between the host computer and the Go devices, it is a useful diagnostic application when testing new devices and device drivers. This application is not coded to the GoIO_DLL API, so we do not recommend that you use it as a template for your applications.
50
+
.NET discussion:
51
+
52
+
GoIOdotNET.dll provides P/Invoke methods that access the public entry points to the unmanaged code in GoIO_DLL.dll.
53
+
VSTCoreDefsdotNET.dll provides some additional structure and constant definitions needed to work with GoIO_DLL. The API's presented by these dll's show up in the .NET object browser in the GoIOdotNET and VSTCoreDefsdotNET namespaces.
54
+
55
+
The XML documentation files for the GoIOdotNET and VSTCoreDefsdotNET assemblies provide a fair amount of documentation for the GoIO library API's that is accessible in the Object browser, but they are not complete. The most complete reference to the GoIO library API is in GoIO_DLL_interface.h and its associated header files.
39
56
40
-
Currently, we only provide a Windows version of GoIO_console. It was written in Microsoft Visual C++ version 6.0.
57
+
The following files need to be distributed with .NET applications that reference GoIOdotNET:
58
+
GoIOdotNET.dll
59
+
VSTCoreDefsdotNET.dll
60
+
GoIO_DLL.dll
61
+
62
+
We generally recommend that you just place these files in the same folder as the .exe file for your application.
63
+
64
+
GoIOdotNET.dll and VSTCoreDefsdotNET.dll are pure .NET assemblies that contain no unmanaged code, so the same instance of each file is used by both 32 bit and 64 bit applications. GoIO_DLL.dll is unmanaged code(aka native), so there are separate binary files for 32 bit apps versus 64 bit apps. When you click on Properties->Version in the Windows explorer for GoIO_DLL.dll, the description string is either "GoIO_DLL DLL (x86)" or "GoIO_DLL DLL (x64)".
65
+
66
+
If you build your .NET app for the x86 platform, then you should distribute the 32 bit version of GoIO_DLL.dll with your app. If you build your .NET app for the x64 platform, then you should distribute the 64 bit version of GoIO_DLL.dll with your app. If you build your .NET app for the 'Any CPU' platform, then the situation is more complex. Such apps run as 32 bit processes in 32 bit windows, and they run as 64 bit processes in 64 bit windows. This means your installer needs figure out what operating system is being used, and install the matching version of GoIO_DLL.
67
+
68
+
For maximum simplicity and portability, we recommend that you just build your .NET app for the x86 platform. Note that 32 bit applications(x86) run fine on 64 bit Windows systems.
0 commit comments