|
Packit |
db01ca |
========================================================================
|
|
Packit |
db01ca |
This package provides windows version of
|
|
Packit |
db01ca |
- Base HPI library (libopenhpi.dll)
|
|
Packit |
db01ca |
- OpenHPI utils library (libopenhpiutils.dll)
|
|
Packit |
db01ca |
- OpenHPI marshal library (libopenhpimarshal.dll)
|
|
Packit |
db01ca |
- OpenHPI transport library (libopenhpitransport.dll)
|
|
Packit |
db01ca |
- OpenHPI clients:
|
|
Packit |
db01ca |
-- hpialarms.exe
|
|
Packit |
db01ca |
-- hpidomain.exe
|
|
Packit |
db01ca |
-- hpiel.exe
|
|
Packit |
db01ca |
-- hpievents.exe
|
|
Packit |
db01ca |
-- hpifan.exe
|
|
Packit |
db01ca |
-- hpigensimdata.exe
|
|
Packit |
db01ca |
-- hpiinv.exe
|
|
Packit |
db01ca |
-- hpionIBMblade.exe
|
|
Packit |
db01ca |
-- hpipower.exe
|
|
Packit |
db01ca |
-- hpireset.exe
|
|
Packit |
db01ca |
-- hpisensor.exe
|
|
Packit |
db01ca |
-- hpisettime.exe
|
|
Packit |
db01ca |
-- hpithres.exe
|
|
Packit |
db01ca |
-- hpitop.exe
|
|
Packit |
db01ca |
-- hpitree.exe
|
|
Packit |
db01ca |
-- hpiwdt.exe
|
|
Packit |
db01ca |
-- hpixml.exe
|
|
Packit |
db01ca |
-- ohdomainlist.exe
|
|
Packit |
db01ca |
-- ohhandler.exe
|
|
Packit |
db01ca |
-- ohparam.exe
|
|
Packit |
db01ca |
- OpenHPI daemon as a console Windows application (openhpid.exe)
|
|
Packit |
db01ca |
-- Slave plug-in (libslave.dll)
|
|
Packit |
db01ca |
-- Test Agent plug-in (libtest_agent.dll)
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
The package also provides necessary glib2 libraries:
|
|
Packit |
db01ca |
- libglib-2.0-0.dll
|
|
Packit |
db01ca |
- libgthread-2.0-0.dll
|
|
Packit |
db01ca |
- libgmodule-2.0-0.dll
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
NB: glib2 libraries were obtained in binary form from
|
|
Packit |
db01ca |
http://www.gtk.org/download-windows.html and were included
|
|
Packit |
db01ca |
without any change.
|
|
Packit |
db01ca |
NB: glib2 is distributed under LGPL2 license.
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
The package can include additional auxiliary libraries.
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
========================================================================
|
|
Packit |
db01ca |
Dependencies:
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
The only dependence (save for mingw compiler) is glib2.
|
|
Packit |
db01ca |
Windows version can be obtained at http://www.gtk.org/download-windows.html
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
========================================================================
|
|
Packit |
db01ca |
Current windows build system supports only mingw compiler.
|
|
Packit |
db01ca |
http://www.mingw.org/
|
|
Packit |
db01ca |
However the built libraries can be use as ordinary windows DLL
|
|
Packit |
db01ca |
in projects with any compiler.
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
========================================================================
|
|
Packit |
db01ca |
Build instructions:
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
- Get mingw (cross or native).
|
|
Packit |
db01ca |
- Get archive with glib2 for windows and unpack it somewhere.
|
|
Packit |
db01ca |
- Enter OpenHPI source tree root directory.
|
|
Packit |
db01ca |
- Modify Makefile.mingw32.def:
|
|
Packit |
db01ca |
-- ARCH in order to point architecture for produced binaries
|
|
Packit |
db01ca |
-- TOOLCHAIN_PATH in order that CC, CXX, AS and RC point to correct files.
|
|
Packit |
db01ca |
-- GLIB_DIR: in order that GLIB_INCLUDES and GLIB_LIBS
|
|
Packit |
db01ca |
point to valid directories with glib headers and libraries.
|
|
Packit |
db01ca |
- Run "make -f Makefile.mingw32".
|
|
Packit |
db01ca |
- Run "make -f Makefile.mingw32 out".
|
|
Packit |
db01ca |
- The openhpi-${VERSION}-win32-${ARCH} sub-directory will contain all produced stuff.
|
|
Packit |
db01ca |
- For gcc4-based compiler (i.e. mingw-w64.sourceforge.net ) you need to copy more libs:
|
|
Packit |
db01ca |
-- libgcc_s_*.dll
|
|
Packit |
db01ca |
-- libstdc++-*.dll
|
|
Packit |
db01ca |
- Optional step - strip produced exe and dll files.
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
========================================================================
|
|
Packit |
db01ca |
Client Usage instructions:
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
There are two ways:
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
Way 1) prepare openhpiclient.conf and set env. var. OPENHPICLIENT_CONF
|
|
Packit |
db01ca |
to its path
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
Way 2) set env. var. OPENHPI_DAEMON_HOST to OpenHPI daemon address.
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
========================================================================
|
|
Packit |
db01ca |
Library Usage instructions:
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
Header file SaHpi.h contains declarations on provided HPI functions.
|
|
Packit |
db01ca |
Header file oHpi.h contains declarations on provided OpenHPI extension functions.
|
|
Packit |
db01ca |
Make sure to use the oHpi.h and SaHpi.h files from openhpi-3.3.0-win32-x86 or
|
|
Packit |
db01ca |
openhpi-3.3.0-win32-amd64 directory, not the ones from trunk/include directory.
|
|
Packit |
db01ca |
The functions are in libopenhpi.dll.
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
Define "SAHPI_API" macro as "__declspec(dllimport)".
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
For mingw compiler it can be just linked.
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
For MSVC:
|
|
Packit |
db01ca |
- There is def file libopenhpi.def
|
|
Packit |
db01ca |
- With lib tool you can create import library
|
|
Packit |
db01ca |
- Command example "lib /machine:i386 /def:libopenhpi.def"
|
|
Packit |
db01ca |
- Point produced import library in Project settings
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
For application running and distribution::
|
|
Packit |
db01ca |
- copy necessary libraries to your application dir.
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
And see Client Usage instructions about configuring OpenHPI daemon address
|
|
Packit |
db01ca |
to connect.
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
========================================================================
|
|
Packit |
db01ca |
Library Known Issues:
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
===================================================
|
|
Packit |
db01ca |
Seems mingw has its own copy of environment variables.
|
|
Packit |
db01ca |
So the code:
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
_putenv("OPENHPI_DAEMON_HOST=...");
|
|
Packit |
db01ca |
rv = saHpiSessionOpen(...)
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
does not work in MSVC as expected.
|
|
Packit |
db01ca |
But setting any variable before running executable works!
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
===================================================
|
|
Packit |
db01ca |
Seems client applications do not close sockets.
|
|
Packit |
db01ca |
The sockets remain in TIME_WAIT state.
|
|
Packit |
db01ca |
It can exhaust system resources.
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
========================================================================
|
|
Packit |
db01ca |
Daemon Usage instructions:
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
Only Slave plug-in and Test agent plug-in are now ported under Windows.
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
- prepare openhpi.conf
|
|
Packit |
db01ca |
- openhpid.exe -v -c "path to openhpi.conf"
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
As an optional step you can do
|
|
Packit |
db01ca |
- set OPENHPI_UID_MAP="path to uid map file"
|
|
Packit |
db01ca |
before running openhpid.exe.
|
|
Packit |
db01ca |
The uid map file will be used for persistent
|
|
Packit |
db01ca |
resource id <-> entity path mapping.
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
NB: -v is optional flag for verbose messages.
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
========================================================================
|
|
Packit |
db01ca |
Troubleshouting:
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
Mailing list: openhpi-devel@lists.sourceforge.net
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
or
|
|
Packit |
db01ca |
|
|
Packit |
db01ca |
IRC channel #openhpi on FreeNode.
|
|
Packit |
db01ca |
|