Skip to content

Commit 64a1834

Browse files
committed
GoIO: 64-bit libraries for Windows and Mac
1 parent 0281e8b commit 64a1834

File tree

319 files changed

+18086
-13463
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

319 files changed

+18086
-13463
lines changed

goio-jna/GoIO_SDK/license.txt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*********************************************************************************
2+
3+
Copyright (c) 2010, Vernier Software & Technology
4+
All rights reserved.
5+
6+
Redistribution and use in source and binary forms, with or without
7+
modification, are permitted provided that the following conditions are met:
8+
* Redistributions of source code must retain the above copyright
9+
notice, this list of conditions and the following disclaimer.
10+
* Redistributions in binary form must reproduce the above copyright
11+
notice, this list of conditions and the following disclaimer in the
12+
documentation and/or other materials provided with the distribution.
13+
* Neither the name of Vernier Software & Technology nor the
14+
names of its contributors may be used to endorse or promote products
15+
derived from this software without specific prior written permission.
16+
17+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20+
DISCLAIMED. IN NO EVENT SHALL VERNIER SOFTWARE & TECHNOLOGY BE LIABLE FOR ANY
21+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27+
28+
**********************************************************************************/

goio-jna/GoIO_SDK/readme.txt

Lines changed: 64 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,44 +5,95 @@ The GoIO SDK is intended to provide software developers with the ability to acce
55
The heart of the SDK is the GoIO_DLL library.
66
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.
77

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.
99

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.
1111

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.
1313

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.
1525

1626
====================================================================================================================
1727

18-
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++.
1929

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 .
2133

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 .
2335

2436
====================================================================================================================
2537

26-
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.
2739

2840
====================================================================================================================
2941

30-
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.
3143

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.
3345

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.
3547

3648
====================================================================================================================
3749

38-
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.
3956

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.
4169

4270
====================================================================================================================
4371

4472
Release notes:
4573

74+
Version 2.41
75+
SensorId for +/-30 volt sensor changed from 4 to 11.
76+
77+
Version 2.40
78+
Support the +/-30 volt sensor. Fixed bug associated with the +/-10 volt sensor that was introduced in version 2.37.
79+
80+
version 2.39
81+
GoIO_DLL sources generally use int instead of long internally so that code behaves similarly for 32 and 64 bit builds.
82+
Released 64 bit version of GoIO DLL library for the Mac.
83+
84+
Version 2.37
85+
Add sensor map data for non smart sensors so DDS records are descriptive for all known sensors.
86+
GoIO_Sensor_CalibrateData() supports non linear calibrations now, so stainless steel temperature is supported.
87+
The Windows version of GoIO DLL can be built as a 64 bit binary.
88+
.NET support has been added via GoIOdotNET.dll and VSTCoreDefsdotNET.dll.
89+
GoIO_Diags_SetDebugTraceThreshold() allows dynamic control of debug output.
90+
91+
Version 2.30
92+
Tweak DDS memory marshalling logic to avoid memory alignment traps on CPU's that care about such things(eg. ARM).
93+
94+
Version 2.29
95+
Fixed how we specify Mac location name in order to be compatible with Logger Pro.
96+
4697
Version 2.28
4798
Fixed an initialization bug associated with the Vernier Mini Gas Chromatograph(GC) on the Mac.
4899

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)