Introduction

AXIS Joystick SDK Documentation
Introduction
Collapse All
AXIS Joystick SDK version 4.00

This documentation lists the functionality included in the AXIS Joystick SDK and explains how the components can be integrated and used in containing applications. The purpose of the AXIS Joystick SDK is to offer an easy to use programmer's interface for using Joysticks together with AXIS PTZ Cameras, and to easy receive input from the AXIS Keypad and AXIS Jog Dial.

AXIS Joystick SDK is compatible with both managed (.NET) and unmanaged (C++) application development. Features include being able to easily manage and configure connected devices, receiving events when a button is pressed or a joystick moved and having a joystick automatically controlling pan, tilt and zoom of an AXIS PTZ camera.

Please read the License Agreement carefully before proceeding.

Microsoft, Windows, Internet Explorer, DirectInput, Visual C++, VisualBasic, .NET, VisualStudio are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

Remarks
Topics
Name | Description
What's New |
Limitations and Considerations |
Redistribution |
License Agreement |
© Axis Communications, All Rights Reserved.


What's New

What's New
Version 4.0
  • Updated SDK to support the new versions of hardware. Joystick AXIS TU9002 and new keypad AXIS TU9003 with display.

Version 3.0
  • Updated SDK to support the new versions of hardware KeyPad Rev2 and JogDial Rev2. Note that the new versions of the Keypad and JogDial will not work using the old SDK. This new version supports both old and new devices.

Version 2.11
  • New method added, IAxisJoystick: SetProxy, disable default HTTP proxy or use custom HTTP proxy configuration.
  • Fixed an error when running multiple jogwheels.
  • Updated samples to VS2010.

Version 2.0
  • Added support for the Axis Control Board (Keypad and Jog Dial)

Version 1.2
  • IAxisJoystickHandler::GetJoystickByName is now more consistent with other GetJoystick functions, meaning it will return a new instance of the Joystick object matching the string.
  • Fixed a rare memory leak.
  • Logging now supports multiple files and adjustable log-file size.

Version 1.1
  • IAxisJoystickHandler::EnumerateJoysticks method properly removes joystick that are no longer connected and has no unreleased reference.
  • IAxisJoystickHandler::GetJoystickByName method should now work as intended.

Version 1.0

This is the first release of the AXIS Joystick SDK which supports:

  • Controlling an AXIS PTZ camera with a joystick connected to a PC.
  • Identifying and using multiple joystick with multiple cameras.
  • Firing events when the joystick state changes.


Limitations and Considerations

Limitations and Considerations
Limitations
  • Plugin/Plugout is not currently supported for the KeyPad and Jog Dial. The program has to be restarted if these devices has been connected after the program is started.
  • Devices used for input must be Microsoft DirectInput compatible joysticks with at least two joystick axes.
  • DirectX 8.0 or higher is required.
  • Only joystick axes x, y and z are supported.
  • Multiple programs cannot access the keypad hardware at the same time.

Considerations

Full compatibility is only guaranteed with the AXIS 295 joystick.

KeyPad and Jog Dial only supports the AXIS devices other Jog Dials / Keypads is not supported by this SDK


Redistribution

Redistribution
Redistribution

Redistribution should be made by including the AxisJoystickModule.dll in the installation. The dll must be registered by the installation program or by using regsvr32.exe on the target system.

Also when using Jog Dial or Keypad devices the iowkit.dll (Keypad) , spinkit.dll (Jog Dial), GETTDeviceLib.dll, GETTDeviceLibWrapper.dll, vcruntime140.dll, vccorlib140.dll, msvcp140.dll and concrt140.dll dll's must be placed is the same folder as the executable program devices.

When using 64 bit version then corresponding 64 bit versions should be used instead. (iowkitX64.dll, spinkitX64.dll, GETTDeviceLib_x64.dll, GETTDeviceLibWrapper_x64.dll and 64 bit versions of vcruntime140.dll, vccorlib140.dll, msvcp140.dll and concrt140.dll )

Note the GETTDeviceLib.dll, GETTDeviceLibWrapper.dll, vcruntime140.dll, vccorlib140.dll, msvcp140.dll and concrt140.dll is needed to support the KeyPad Rev2 and JogDial Rev2 which is the latest version of the hardware. iowkit.dll and spinkit.dll should still be included for backward compatibility with older devices.

See the license agreement chapter 5 and 6 concerning redistribution conditions.


License Agreement

License Agreement
AXIS STANDARD SOFTWARE LICENSE AGREEMENT

This is a legal agreement between you (either individual or an entity) and Axis Communications AB (hereinafter referred to as "Axis"). By installing the SOFTWARE, you are agreeing to be bound by the terms of this agreement.

AXIS SOFTWARE LICENSE

1. GRANT OF LICENSE.

1.1 Axis grants to you the right to use the SOFTWARE. The SOFTWARE is in "use" on a computer when it is loaded into temporary memory (i.e. RAM) or installed into permanent memory (e.g. hard disk, CD-ROM or other storage device) of that computer.

2. COPYRIGHT.

2.1 The SOFTWARE is owned by Axis and/or its licensor(s), if any, and is protected by copyright laws and international treaty provisions. Therefore you must treat the SOFTWARE like any other copyrighted material (e.g. a book or a musical recording) except that you may either (a) make a copy of the SOFTWARE solely for backup or archival purposes or (b) transfer the SOFTWARE to a single hard disk provided you keep the original solely for backup purposes.

3. OTHER RESTRICTIONS.

3.1 You may not rent, lease or sublicense the SOFTWARE but you may transfer SOFTWARE and accompanying written materials on a permanent basis provided that you retain no copies and the recipient agrees to the terms of this agreement. You may not reverse engineer, decompile, or disassemble the SOFTWARE. If the SOFTWARE is an update or has been updated, any transfer must include the most recent update and all previous versions.

4. THIRD PARTY SOFTWARE.

4.1 The SOFTWARE may contain third party software, which requires notices and/or additional terms and conditions. Such required third party software notices and/or additional terms and conditions are located in the readme file or other product documentation. By accepting this license agreement, you are also accepting the additional terms and conditions, if any, set forth therein.

5. ADDITIONAL LICENSE RIGHTS - REDISTRIBUTABLE CODE AND SAMPLE CODE.

5.1 In addition to the rights granted in Section 1, certain parts of the SOFTWARE, i.e. SAMPLE CODE AND REDISTRIBUTABLE CODE (collectively the REDISTRIBUTABLES) as described in this Section 5, are provided to you with additional license rights. These additional license rights are conditioned upon your compliance with the distribution requirements and license restrictions described in Sections 5 and 6.

5.2 SAMPLE CODE is identified as <Installed SDK Location>\Samples. Axis grants to you (i) the right to use and modify the source code version of the SAMPLE CODE for the purpose of designing, developing and testing your software product and (ii) a non-exclusive, non-assignable right to reproduce and distribute the SAMPLE CODE, along with modifications thereof, in object and/or source code form. For further applicable redistribution requirements, see Section 6 below.

5.3 REDISTRIBUTABLE CODE is identified as <Installed SDK Location>\Bin. Axis grants you a non-exclusive, non-assignable right to reproduce or distribute the REDISTRIBUTABLE CODE in object code form. For further applicable redistribution requirements, see Section 6 below.

6. REDISTRIBUTION REQUIREMENTS AND LICENSE RESTRICTIONS REGARDING REDISTRIBUTABLE CODE AND SAMPLE CODE.

6.1 If you redistribute the REDISTRIBUTABLES, you agree to (i) only distribute the REDISTRIBUTABLES, or portions thereof, as part of the product or application you develop by using the REDISTRIBUTABLES under the condition that the product or application adds significant and primary functionality to the REDISTRIBUTABLES, (ii) not to use Axis' name or trademark to market your product or application without

written permission, (iii) not to remove or obscure any copyright, trademark or patent notices that appear on the SOFTWARE as delivered to you, (iv) assume the sole responsibility to your customers for any update or support obligations or other liability which may arise from the distribution of the REDISTRIBUTABLES, (v) not make any statement that your product is "certified" or that its performance is guaranteed by Axis, (vi) only distribute the REDISTRIBUTABLES subject to a license agreement that protects Axis' interests consistent with the terms contained in this Agreement, (vii) indemnify, hold harmless and defend Axis from and against any claims or lawsuits, including attorney's fees that arise or result from your distribution of the product or application, and (viii) otherwise comply with the terms of this Agreement.

7. TERMINATION

7.1 This License is effective until terminated. Your rights under this License will terminate automatically without notice from Axis if you fail to comply with any term(s) of this License. Upon the termination of this License, you shall cease all use of the SOFTWARE and destroy all copies, full or partial, of the SOFTWARE.

8. GOVERNING LAW

8.1 This agreement shall be deemed performed in and shall be construed by the laws of Sweden.

9. DISCLAIMER

9.1 THE SOFTWARE IS DELIVERED FREE OF CHARGE AND 'AS IS' WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE OF THE SOFTWARE IS ASSUMED BY YOU/THE USER. AXIS COMMUNICATIONS AB DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT, OR ANY WARRANTY ARISING

OUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE WITH RESPECT TO THE SOFTWARE.

9.2 AXIS AND/OR ITS LICENSOR(S) SHALL NOT BE LIABLE FOR LOSS OF DATA, LOSS OF PRODUCTION, LOSS OF PROFIT, LOSS OF USE, LOSS OF CONTRACTS OR FOR ANY OTHER CONSEQUENTIAL,ECONOMIC OR INDIRECT LOSS WHATSOEVER IN RESPECT OF DELIVERY, USE OR DISPOSITION OF THE SOFTWARE.

9.3 AXIS TOTAL LIABILITY FOR ALL CLAIMS IN ACCORDANCE WITH THE DELIVERY AND USE OF THE SOFTWARE SHALL NOT EXCEED THE PRICE PAID FOR THE SOFTWARE.


Axis Joystick SDK Reference

Axis Joystick SDK Reference
Libraries
Name | Description
AxisJoystickModuleLib | This is namespace AxisJoystickModuleLib.
Topics
Name | Description
Enumerations | The following table lists structs, records, enums in this documentation.
Enumerations
Name | Description
CAMERA_AXIS | An axis along which a camera can pan, tilt or zoom.
JOGDIAL_ERROR | Error codes used with the Error event.
JOYSTICK_AXIS | An axis along which a joystick can be moved.
JOYSTICK_ERROR | Error codes used with the Error event.
JOYSTICK_STATUS | Flags for determining the status of the AxisJoystick.
KEYPAD_BUTTON | This is record KEYPAD_BUTTON.
KEYPAD_DISPLAY_ALLIGNMENT | This is record KEYPAD_DISPLAY_ALLIGNMENT.
KEYPAD_ERROR | Error codes used with the Error event.
See Also
Enumerations


AxisJoystickModuleLib Library

AxisJoystickModuleLib Library

This is namespace AxisJoystickModuleLib.

Topics
Name | Description
Interfaces | The following table lists interfaces in this documentation.
Interfaces
Name | Description
IAxisJoystick | Represents a direct input compatible joystick having at least two joystick axes.
IAxisKeyPad | Represents a KeyPad device.
IAxisJogDial | Represents a Jog Dial device.
IAxisJoystickHandler | The AxisJoystickHandler is responsible for enumerating connected devices and creating AxisJoystick objects representing them.
IAxisKeyPadHandler | The AxisKeyPadHandler is responsible for enumerating connected devices and creating AxisKeyPad objects representing them.
IAxisJogDialHandler | The AxisJogDialHandler is responsible for enumerating connected devices and creating AxisJogDial objects representing them.
_IAxisJoystickEvents | Interface for the events fired by IAxisJoystick.
_IAxisKeyPadEvents | Interface for the events fired by IAxisKeyPad.
_IAxisJogDialEvents | Interface for the events fired by IAxisJogDial.
See Also
Interfaces


Interfaces

Interfaces

The following table lists interfaces in this documentation.

Interfaces
Name | Description
IAxisJoystick | Represents a direct input compatible joystick having at least two joystick axes.
IAxisKeyPad | Represents a KeyPad device.
IAxisJogDial | Represents a Jog Dial device.
IAxisJoystickHandler | The AxisJoystickHandler is responsible for enumerating connected devices and creating AxisJoystick objects representing them.
IAxisKeyPadHandler | The AxisKeyPadHandler is responsible for enumerating connected devices and creating AxisKeyPad objects representing them.
IAxisJogDialHandler | The AxisJogDialHandler is responsible for enumerating connected devices and creating AxisJogDial objects representing them.
_IAxisJoystickEvents | Interface for the events fired by IAxisJoystick.
_IAxisKeyPadEvents | Interface for the events fired by IAxisKeyPad.
_IAxisJogDialEvents | Interface for the events fired by IAxisJogDial.


IAxisJoystick Interface

IAxisJoystick Interface

Represents a direct input compatible joystick having at least two joystick axes.

IDL
interface IAxisJoystick : IDispatch;
Description

Represents a direct input compatible joystick having at least two joystick axes. Several AxisJoysticks can represent the same actual device. Changes made on one AxisJoystick affects all AxisJoysticks representing the same device. When an AxisJoystick is no longer used, the Close method should be called (on each AxisJoystick object) to ensure resource deallocation will not be delayed.

Remarks

In long running .NET applications, make sure AxisJoysticks are closed properly when no longer in use. Otherwise they will unnecessarily reside in memory until program shutdown.

All method calls and setting of properties are performed asynchronously, therefore the method called might not immediately return an error code but rather fire an Error event when the internal function is actually processed.

Inheritance Hierarchy
IAxisJoystick


IAxisJoystick Methods

IAxisJoystick Methods

The methods of the IAxisJoystick class are listed here.

Public Methods
Name | Description
Activate | Starts polling the device and sending commands to the camera.
Close | Releases resources used by the AxisJoystick.
DeActivate | Stops polling the device and sending commands to the camera.
GetConfiguration | Gets the configuration for the specified axis.
MapAxis | Sets a joystick axis to affect a specified camera axis
RunControlPanel | Runs the Microsoft DirectInput control panel associated with the device. This control panel is used for calibrating the hardware.
SetConfiguration | Sets the configuration for the specified axis.
SetParent | Sets the parent window of the AxisJoystick and if it needs to be in focus for the AxisJoystick to keep sending commands.
SetProxy | Call this method to specify a proxy that will be used for all http connections.


IAxisJoystick::Activate Method

IAxisJoystick::Activate Method

Starts polling the device and sending commands to the camera.

IDL
HRESULT Activate(
    void
);
Remarks

Activating one AxisJoystick will affect all AxisJoysticks representing the same device from the same AxisJoystickHandler. If an error occurs, an Error event with the error code JOYSTICK_ERROR::JOYSTICK_E_FAILED_ACTIVATE will be fired.

Exceptions
Exceptions | Description
0x80070005 | E_ACCESSDENIED. When trying to invoke a member of AxisJoystick after calling AxisJoystick::Close method.
0x80004005 | E_FAIL. Unexpected failure.
Related Topics

DeActivate

See Also
IAxisJoystick Interface


IAxisJoystick::Close Method

IAxisJoystick::Close Method

Releases resources used by the AxisJoystick.

IDL
HRESULT Close(
    void
);
Remarks

After calling close, no calls should be made to the AxisJoystick object. C# applications should not use Close but instead release the interface pointer as normal. It is never strictly necessary to call Close, as long as the object is eventually deleted the resources will be freed, but in a managed application this might not be until application shutdown.

Exceptions
Exceptions | Description
0x80070005 | E_ACCESSDENIED. When trying to invoke a member of AxisJoystick after calling AxisJoystick::Close method.
0x80004005 | E_FAIL. Unexpected failure.
See Also
IAxisJoystick Interface


IAxisJoystick::DeActivate Method

IAxisJoystick::DeActivate Method

Stops polling the device and sending commands to the camera.

IDL
HRESULT DeActivate(
    void
);
Remarks

DeActivating an AxisJoystick will affect all AxisJoysticks representing the same device from the same AxisJoystickHandler. The camera movement will be stopped when deactivating a joystick sending commands to it, regardless of the joystick position. If an error occurs, an Error event with the error code JOYSTICK_ERROR::JOYSTICK_E_FAILED_DEACTIVATE will be fired.

Exceptions
Exceptions | Description
0x80070005 | E_ACCESSDENIED. When trying to invoke a member of AxisJoystick after calling AxisJoystick::Close method.
0x80004005 | E_FAIL. Unexpected failure.
Related Topics

Activate

See Also
IAxisJoystick Interface


IAxisJoystick::GetConfiguration Method

IAxisJoystick::GetConfiguration Method

Gets the configuration for the specified axis.

IDL
HRESULT GetConfiguration(
    [in] LONG axis,
    [out] LONG* deadzone,
    [out] LONG* overlap,
    [out] LONG* threshold,
    [out] FLOAT* sensitivity,
    [out] FLOAT* curveCoeff,
    [out] VARIANT_BOOL* inverted
);
Parameters

axis
The JOYSTICK_AXIS for which to get the configuration.
deadzone
If the joystick is within this distance from the center position, no movement should be registered.
overlap
To avoid jitter when slowly moving the joystick. Axis value changes smaller than this parameter are ignored if they would mean a change in joystick movement direction.
threshold
Axis changes smaller than this value are ignored.
sensitivity
Axis output value is multiplied by this value.
curveCoeff
Axis output is modified by this value, where 0.0 indicates linear (unmodified) output and 1.0 indicates quadratic output (higher sensitivity the further you move the joystick from its center position).
inverted
Inverts the values of this axis before sending commands to the camera.

Remarks

For more information about the parameters, see the SetConfiguration method. If an error occurs, an Error event with the error code JOYSTICK_ERROR::JOYSTICK_E_FAILED_REQUEST will be fired.

Exceptions
Exceptions | Description
0x80070005 | E_ACCESSDENIED. When trying to invoke a member of AxisJoystick after calling AxisJoystick::Close method.
0x80004005 | E_FAIL. Unexpected failure.
Related Topics

SetConfiguration

See Also
IAxisJoystick Interface


IAxisJoystick::MapAxis Method

IAxisJoystick::MapAxis Method

Sets a joystick axis to affect a specified camera axis

IDL
HRESULT MapAxis(
    [in] LONG joystickAxis,
    [in] LONG cameraAxis
);
Parameters

joystickAxis
JOYSTICK_AXIS used for input.
cameraAxis
CAMERA_AXIS to affect.

Remarks

Each camera axis can only use input from one joystick axis. A new mapping will overwrite the previously set joystick axis for that camera axis.

By default JOYSTICK_AXIS_X is mapped to CAMERA_AXIS_PAN, JOYSTICK_AXIS_Y to CAMERA_AXIS_TILT and JOYSTICK_AXIS_Z to CAMERA_AXIS_ZOOM.

Exceptions
Exceptions | Description
0x80070005 | E_ACCESSDENIED. When trying to invoke a member of AxisJoystick after calling AxisJoystick::Close method.
0x80004005 | E_FAIL. Unexpected failure.
0x80070057 | E_INVALIDARG. When joystickAxis or cameraAxis is not a valid axis.
See Also
IAxisJoystick Interface


IAxisJoystick::RunControlPanel Method

IAxisJoystick::RunControlPanel Method

Runs the Microsoft DirectInput control panel associated with the device. This control panel is used for calibrating the hardware.

IDL
HRESULT RunControlPanel(
    [in] LONGLONG owningWindow
);
Parameters

owningWindow
A window handle of the window that will own the new dialog. Can be NULL.

Remarks

The owning window handle must be converted to a 64 bit integer before passing it as a parameter.

Exceptions
Exceptions | Description
0x80070005 | E_ACCESSDENIED. When trying to invoke a member of AxisJoystick after calling AxisJoystick::Close method.
0x80004005 | E_FAIL. Unexpected failure.
See Also
IAxisJoystick Interface


IAxisJoystick::SetConfiguration Method

IAxisJoystick::SetConfiguration Method

Sets the configuration for the specified axis.

IDL
HRESULT SetConfiguration(
    [in] LONG axis,
    [in] LONG deadzone,
    [in] LONG overlap,
    [in] LONG threshold,
    [in] FLOAT sensitivity,
    [in] FLOAT curveCoeff,
    [in] VARIANT_BOOL inverted
);
Parameters

axis
The JOYSTICK_AXIS for which to set the configuration.
deadzone
If the joystick is within this distance from the center position, no movement should be registered. Valid values are 0 - 10000, default is 25. Affects the input from the device and the values in the JoystickMove event.
overlap
To avoid jitter when slowly moving the joystick. Axis value changes smaller than this parameter are ignored if they would mean a change in joystick movement direction. Valid values are 0 - 10000, default is 50. Affects the input from the device and the values in the JoystickMove event.
threshold
Axis changes smaller than this value are ignored. Valid values are 0 - 10000, default is 1. Affects the output sent to the camera and has no impact on the values in the JoystickMove event.
sensitivity
Axis output value is multiplied by this value. Valid values are -10000.0 - 10000.0, default is 1.0. Affects the output sent to the camera and has no impact on the values in the JoystickMove event.
curveCoeff
Axis output is modified by this value, where 0.0 indicates linear (unmodified) output and 1.0 indicates quadratic output (higher sensitivity the further you move the joystick from its center position). Valid values are 0.0 - 100.0, default is 0.5. Affects the output sent to the camera and has no impact on the values in the JoystickMove event.
inverted
Inverts the values of this axis before sending commands to the camera, default is True for y-axis and False for other axes. Affects the output sent to the camera and has no impact on the values in the JoystickMove event.

Remarks

Settings the configuration on one AxisJoystick will affect all AxisJoysticks representing the same device from the same AxisJoystickHandler. If an error occurs, an Error event with the error code JOYSTICK_ERROR::JOYSTICK_E_FAILED_SET_CONFIGURATION will be fired.

Exceptions
Exceptions | Description
0x80070005 | E_ACCESSDENIED. When trying to invoke a member of AxisJoystick after calling AxisJoystick::Close method.
0x80004005 | E_FAIL. Unexpected failure.
0x80070057 | E_INVALIDARG. Invalid value. If an invalid axis is given or any of the configuration values are out of range.
Related Topics

GetConfiguration

Example

See Changing Configuration sample.

See Also
IAxisJoystick Interface


IAxisJoystick::SetParent Method

IAxisJoystick::SetParent Method

Sets the parent window of the AxisJoystick and if it needs to be in focus for the AxisJoystick to keep sending commands.

IDL
HRESULT SetParent(
    [in] LONGLONG parentWindow,
    [in] VARIANT_BOOL foregroundRequired
);
Parameters

parentWindow
The window used for determining whether the AxisJoystick has focus or not. If NULL, the desktop window will be used.
foregroundRequired
If true, the AxisJoystick will only poll the device and send commands when parentWindow has focus.

Remarks

Per default no focus is required for the AxisJoystick to poll the device and send commands. If an error occurs, an Error event with the error code JOYSTICK_ERROR::JOYSTICK_E_FAILED_SET_COOPERATIVELEVEL will be fired.

Exceptions
Exceptions | Description
0x80070005 | E_ACCESSDENIED. When trying to invoke a member of AxisJoystick after calling AxisJoystick::Close method.
0x80004005 | E_FAIL. Unexpected failure.
See Also
IAxisJoystick Interface


IAxisJoystick::SetProxy Method

IAxisJoystick::SetProxy Method

Call this method to specify a proxy that will be used for all http connections.

IDL
HRESULT SetProxy(
    [in] BSTR proxyName,
    [in] BSTR username,
    [in] BSTR password
);
Parameters

ProxyName
String specifying the network path to the proxy.

Remarks

String specifying the user name that will be used if the proxy requires authentication.

String specifying the password that will be used if the proxy requires authentication.

Proxy port is specified by adding it to the proxy name: SetProxy("myProxyName:3128", "user","password") To remove the specified proxy, call this function with proxyName set to empty string.

Exceptions
Exceptions | Description
0x80070057 | E_INVALIDARG.
See Also
IAxisJoystick Interface


IAxisJoystick Properties

IAxisJoystick Properties

The properties of the IAxisJoystick class are listed here.

Public Properties
Name | Description
Guid | Gets a string representation of the unique identifier of the device.
Id | Gets or sets a value that can be used to identify the device. This value is supplied with any events generated by the joystick.
Name | Gets the name specified by the manufacturer of the device.
NbrAxes | Gets the number of joystick axes supported by the device.
NbrButtons | Gets the number of buttons supported by the device.
NetworkTimeout | Gets or sets the network timeout in milliseconds, to be used when sending commands to the camera. Default is 15000 ms.
Password | Gets or sets the password used when sending commands to the camera.
PollInterval | Gets or sets the interval between poll of the joystick in milliseconds. Smaller interval means better response, but uses more resources. Default is 30 ms.
ProductGuid | Gets a string representation of the unique identifier of the product (the joystick model).
PTZControlURL | Gets or sets the URL used when sending commands to the camera. Normally this is the address of the camera followed by "/axis-cgi/com/ptz.cgi". For example "http://127.0.0.1/axis-cgi/com/ptz.cgi". For more information on how to set the URL, see the AXIS VAPIX API documentation.
Status | Gets the current bitwise combination of JOYSTICK_STATUS flags of the device.
Username | Gets or sets the username used when sending commands to the camera.


IAxisJoystick::Guid Property

IAxisJoystick::Guid Property
IDL
__property BSTR* Guid;
Remarks

Gets a string representation of the unique identifier of the device.

Related Topics

IAxisJoystickHandler::GetJoystickByGuid

See Also
IAxisJoystick Interface


IAxisJoystick::Id Property

IAxisJoystick::Id Property
IDL
__property LONG Id;
Remarks

Gets or sets a value that can be used to identify the device. This value is supplied with any events generated by the joystick.

Related Topics

_IAxisJoystickEvents

See Also
IAxisJoystick Interface


IAxisJoystick::Name Property

IAxisJoystick::Name Property
IDL
__property BSTR* Name;
Remarks

Gets the name specified by the manufacturer of the device.

Related Topics

IAxisJoystickHandler::GetJoystickByName

See Also
IAxisJoystick Interface


IAxisJoystick::NbrAxes Property

IAxisJoystick::NbrAxes Property
IDL
__property LONG* NbrAxes;
Remarks

Gets the number of joystick axes supported by the device.

See Also
IAxisJoystick Interface


IAxisJoystick::NbrButtons Property

IAxisJoystick::NbrButtons Property
IDL
__property LONG* NbrButtons;
Remarks

Gets the number of buttons supported by the device.

See Also
IAxisJoystick Interface


IAxisJoystick::NetworkTimeout Property

IAxisJoystick::NetworkTimeout Property
IDL
__property LONG NetworkTimeout;
Remarks

Gets or sets the network timeout in milliseconds, to be used when sending commands to the camera. Default is 15000 ms.

See Also
IAxisJoystick Interface


IAxisJoystick::Password Property

IAxisJoystick::Password Property
IDL
__property BSTR Password;
Remarks

Gets or sets the password used when sending commands to the camera.

Related Topics

Username

See Also
IAxisJoystick Interface


IAxisJoystick::PollInterval Property

IAxisJoystick::PollInterval Property
IDL
__property LONG PollInterval;
Remarks

Gets or sets the interval between poll of the joystick in milliseconds. Smaller interval means better response, but uses more resources. Default is 30 ms.

See Also
IAxisJoystick Interface


IAxisJoystick::ProductGuid Property

IAxisJoystick::ProductGuid Property
IDL
__property BSTR* ProductGuid;
Remarks

Gets a string representation of the unique identifier of the product (the joystick model).

Related Topics

IAxisJoystickHandler::GetJoystickByProductGuid

See Also
IAxisJoystick Interface


IAxisJoystick::PTZControlURL Property

IAxisJoystick::PTZControlURL Property
IDL
__property BSTR PTZControlURL;
Remarks

Gets or sets the URL used when sending commands to the camera. Normally this is the address of the camera followed by "/axis-cgi/com/ptz.cgi". For example "http://127.0.0.1/axis-cgi/com/ptz.cgi".

For more information on how to set the URL, see the AXIS VAPIX API documentation.

See Also
IAxisJoystick Interface


IAxisJoystick::Status Property

IAxisJoystick::Status Property
IDL
__property LONG* Status;
Remarks

Gets the current bitwise combination of JOYSTICK_STATUS flags of the device.

See Also
IAxisJoystick Interface


IAxisJoystick::Username Property

IAxisJoystick::Username Property
IDL
__property BSTR Username;
Remarks

Gets or sets the username used when sending commands to the camera.

Related Topics

Password

See Also
IAxisJoystick Interface


IAxisKeyPad Interface

IAxisKeyPad Interface

Represents a KeyPad device.

IDL
interface IAxisKeyPad : IDispatch;
Description

Represents a KeyPad device. When an KeyPad is no longer used, the Close method should be called to ensure resource deallocation will not be delayed.

Remarks

All method calls and setting of properties are performed asynchronously, therefore the method called might not immediately return an error code but rather fire an Error event when the internal function is actually processed.

Inheritance Hierarchy
IAxisKeyPad


IAxisKeyPad Methods

IAxisKeyPad Methods

The methods of the IAxisKeyPad class are listed here.

Public Methods
Name | Description
Activate | Starts polling the device.
ClearDisplay | Clear the display from all text. Only supported on newer keypad with display.
Close | Releases resources used by the AxisKeyPad.
DeActivate | Stops polling the device.
SetAllKeysBackLight | Turns on/off the backlight on all keys on the keypad. Only supported on newer keypad with display. Older keypads needs to use the SetBackLight(LONG theKey, VARIANT_BOOL theState) function and will not be effected by this method
SetAllKeysBackLightBrightness | Sets backlight level on all keys on the keypad. Only supported on newer keypad with display.
SetBackLight | Turns on/off the backlight on the specified button. Only supported on older keypad models without display.
SetDisplayContrast | Sets contrast level on The display. Only supported on newer keypad with display.
SetDisplayState | Turns on/off the display the keypad. Only supported on newer keypad with display. Older models will not be effected by this function.
SetDisplayText | Sets the text on the display. Only supported on newer keypad with display. Text will wrap around to the next row if to long.
SetDisplayTextRow | Sets the text on the display. Only supported on newer keypad with display.


IAxisKeyPad::Activate Method

IAxisKeyPad::Activate Method

Starts polling the device.

IDL
HRESULT Activate(
    void
);
Remarks

If an error occurs, an Error event with the error code KEYPAD_ERROR::KEYPAD_E_FAILED_ACTIVATE will be fired.

Exceptions
Exceptions | Description
0x80070005 | E_ACCESSDENIED. When trying to invoke a member of AxisKeyPad after calling AxisKeyPad::Close method.
0x80004005 | E_FAIL. Unexpected failure.
Related Topics

DeActivate

See Also
IAxisKeyPad Interface


IAxisKeyPad::ClearDisplay Method

IAxisKeyPad::ClearDisplay Method

Clear the display from all text. Only supported on newer keypad with display.

IDL
HRESULT ClearDisplay();
Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
See Also
IAxisKeyPad Interface


IAxisKeyPad::Close Method

IAxisKeyPad::Close Method

Releases resources used by the AxisKeyPad.

IDL
HRESULT Close(
    void
);
Remarks

After calling close, no calls should be made to the AxisKeyPad object. C# applications should not use Close but instead release the interface pointer as normal. It is never strictly necessary to call Close, as long as the object is eventually deleted the resources will be freed, but in a managed application this might not be until application shutdown.

Exceptions
Exceptions | Description
0x80070005 | E_ACCESSDENIED. When trying to invoke a member of AxisKeyPad after calling AxisKeyPad::Close method.
0x80004005 | E_FAIL. Unexpected failure.
See Also
IAxisKeyPad Interface


IAxisKeyPad::DeActivate Method

IAxisKeyPad::DeActivate Method

Stops polling the device.

IDL
HRESULT DeActivate(
    void
);
Remarks

If an error occurs, an Error event with the error code KEYPAD_ERROR::KEYPAD_E_FAILED_DEACTIVATE will be fired.

Exceptions
Exceptions | Description
0x80070005 | E_ACCESSDENIED. When trying to invoke a member of AxisKeyPad after calling AxisKeyPad::Close method.
0x80004005 | E_FAIL. Unexpected failure.
Related Topics

Activate

See Also
IAxisKeyPad Interface


IAxisKeyPad::SetAllKeysBackLight Method

IAxisKeyPad::SetAllKeysBackLight Method

Turns on/off the backlight on all keys on the keypad. Only supported on newer keypad with display. Older keypads needs to use the SetBackLight(LONG theKey, VARIANT_BOOL theState) function and will not be effected by this method

IDL
HRESULT SetAllKeysBackLight(
    VARIANT_BOOL theState
);
Parameters

theState
Specifies if the button shall be turned on true of off false.

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
See Also
IAxisKeyPad Interface


IAxisKeyPad::SetAllKeysBackLightBrightness Method

IAxisKeyPad::SetAllKeysBackLightBrightness Method

Sets backlight level on all keys on the keypad. Only supported on newer keypad with display.

IDL
HRESULT SetAllKeysBackLightBrightness(
    LONG theLevel
);
Parameters

theLevel
Specifies the backlight level for the buttons. Min level 0. Max level 15

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
See Also
IAxisKeyPad Interface


IAxisKeyPad::SetBackLight Method

IAxisKeyPad::SetBackLight Method

Turns on/off the backlight on the specified button. Only supported on older keypad models without display.

IDL
HRESULT SetBackLight(
    LONG theKey,
    VARIANT_BOOL theState
);
Parameters

theKey
KEYPAD_BUTTON The key on the keypad witch backlight is to be turned on/off. Note that only buttons KEYPAD_BUTTON_A to KEYPAD_BUTTON_E has backlight support.
theState
Specifies if the button shall be turned on 1 of off 0.

Remarks

All buttons is reset(turned off) when EnumerateKeyPads is called.

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
See Also
IAxisKeyPad Interface


IAxisKeyPad::SetDisplayContrast Method

IAxisKeyPad::SetDisplayContrast Method

Sets contrast level on The display. Only supported on newer keypad with display.

IDL
HRESULT SetDisplayContrast(
    LONG theLevel
);
Parameters

theLevel
Specifies the contrast level of the display. Min level 0. Max level 15

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
See Also
IAxisKeyPad Interface


IAxisKeyPad::SetDisplayState Method

IAxisKeyPad::SetDisplayState Method

Turns on/off the display the keypad. Only supported on newer keypad with display. Older models will not be effected by this function.

IDL
HRESULT SetDisplayState(
    VARIANT_BOOL theState
);
Parameters

theState
Specifies if the display shall be turned on true or off false.

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
See Also
IAxisKeyPad Interface


IAxisKeyPad::SetDisplayText Method

IAxisKeyPad::SetDisplayText Method

Sets the text on the display. Only supported on newer keypad with display. Text will wrap around to the next row if to long.

IDL
HRESULT SetDisplayText(
    BSTR text
);
Parameters

theText
Text to be set. If text fills first row it will wrap around to the next row. Available chars for display is: "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{ | }~" If text is to long for both rows the rest of the text will be ignored.

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
See Also
IAxisKeyPad Interface


IAxisKeyPad::SetDisplayTextRow Method

IAxisKeyPad::SetDisplayTextRow Method

Sets the text on the display. Only supported on newer keypad with display.

IDL
HRESULT SetDisplayTextRow(
    LONG row,
    BSTR text,
    LONG allign
);
Parameters

allign
Text allignment KEYPAD_DISPLAY_ALLIGNMENT
theRow
The row to set the text on 0 or 1
theText
Text to be set. If text is to long for the row the rest of the text will be ignored. Available chars for display is "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{ | }~"

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
See Also
IAxisKeyPad Interface


IAxisKeyPad Properties

IAxisKeyPad Properties

The properties of the IAxisKeyPad class are listed here.

Public Properties
Name | Description
Id | Gets or sets a value that can be used to identify the device. This value is supplied with any events generated by the Keypad.
Name | Gets the name specified by the manufacturer of the device.
NbrDisplayChars | Gets the number of display characters for each row in a Keypad that supports display.
NbrDisplayRows | Gets the number of display Rows in a Keypad that supports display.


IAxisKeyPad::Id Property

IAxisKeyPad::Id Property
IDL
__property LONG Id;
Remarks

Gets or sets a value that can be used to identify the device. This value is supplied with any events generated by the Keypad.

Related Topics

_IAxisJoystickEvents

See Also
IAxisKeyPad Interface


IAxisKeyPad::Name Property

IAxisKeyPad::Name Property
IDL
__property BSTR* Name;
Remarks

Gets the name specified by the manufacturer of the device.

Related Topics

IAxisJoystickHandler::GetJoystickByName

See Also
IAxisKeyPad Interface


IAxisKeyPad::NbrDisplayChars Property

IAxisKeyPad::NbrDisplayChars Property
IDL
__property LONG* NbrDisplayChars;
Remarks

Gets the number of display characters for each row in a Keypad that supports display.

See Also
IAxisKeyPad Interface


IAxisKeyPad::NbrDisplayRows Property

IAxisKeyPad::NbrDisplayRows Property
IDL
__property LONG* NbrDisplayRows;
Remarks

Gets the number of display Rows in a Keypad that supports display.

See Also
IAxisKeyPad Interface


IAxisJogDial Interface

IAxisJogDial Interface

Represents a Jog Dial device.

IDL
interface IAxisJogDial : IDispatch;
Description

Represents a Jog Dial device. When an AxisJogDial is no longer used, the Close method should be called to ensure resource deallocation will not be delayed.

Remarks

All method calls and setting of properties are performed asynchronously, therefore the method called might not immediately return an error code but rather fire an Error event when the internal function is actually processed.

Inheritance Hierarchy
IAxisJogDial


IAxisJogDial Methods

IAxisJogDial Methods

The methods of the IAxisJogDial class are listed here.

Public Methods
Name | Description
Activate | Starts polling the device.
Close | Releases resources used by the AxisJogDial.
DeActivate | Stops polling the device.


IAxisJogDial::Activate Method

IAxisJogDial::Activate Method

Starts polling the device.

IDL
HRESULT Activate(
    void
);
Remarks

If an error occurs, an Error event with the error code JOGDIAL_ERROR::JOGDIAL_E_FAILED_ACTIVATE will be fired.

Exceptions
Exceptions | Description
0x80070005 | E_ACCESSDENIED. When trying to invoke a member of AxisJogDial after calling AxisJogDial::Close method.
0x80004005 | E_FAIL. Unexpected failure.
Related Topics

DeActivate

See Also
IAxisJogDial Interface


IAxisJogDial::Close Method

IAxisJogDial::Close Method

Releases resources used by the AxisJogDial.

IDL
HRESULT Close(
    void
);
Remarks

After calling close, no calls should be made to the AxisJogDial object. C# applications should not use Close but instead release the interface pointer as normal. It is never strictly necessary to call Close, as long as the object is eventually deleted the resources will be freed, but in a managed application this might not be until application shutdown.

Exceptions
Exceptions | Description
0x80070005 | E_ACCESSDENIED. When trying to invoke a member of AxisJogDial after calling AxisJogDial::Close method.
0x80004005 | E_FAIL. Unexpected failure.
See Also
IAxisJogDial Interface


IAxisJogDial::DeActivate Method

IAxisJogDial::DeActivate Method

Stops polling the device.

IDL
HRESULT DeActivate(
    void
);
Remarks

If an error occurs, an Error event with the error code JOGDIAL_ERROR::JOGDIAL_E_FAILED_DEACTIVATE will be fired.

Exceptions
Exceptions | Description
0x80070005 | E_ACCESSDENIED. When trying to invoke a member of AxisJogDial after calling AxisJogDial::Close method.
0x80004005 | E_FAIL. Unexpected failure.
Related Topics

Activate

See Also
IAxisJogDial Interface


IAxisJogDial Properties

IAxisJogDial Properties

The properties of the IAxisJogDial class are listed here.

Public Properties
Name | Description
Id | Gets or sets a value that can be used to identify the device. This value is supplied with any events generated by the Jog Dial.
Name | Gets the name specified by the manufacturer of the device.


IAxisJogDial::Id Property

IAxisJogDial::Id Property
IDL
__property LONG Id;
Remarks

Gets or sets a value that can be used to identify the device. This value is supplied with any events generated by the Jog Dial.

Related Topics

_IAxisJoystickEvents

See Also
IAxisJogDial Interface


IAxisJogDial::Name Property

IAxisJogDial::Name Property
IDL
__property BSTR* Name;
Remarks

Gets the name specified by the manufacturer of the device.

Related Topics

IAxisJoystickHandler::GetJoystickByName

See Also
IAxisJogDial Interface


IAxisJoystickHandler Interface

IAxisJoystickHandler Interface

The AxisJoystickHandler is responsible for enumerating connected devices and creating AxisJoystick objects representing them.

IDL
interface IAxisJoystickHandler : IDispatch;
Description

The AxisJoystickHandler is responsible for enumerating connected devices and creating AxisJoystick objects representing them. Internally it keeps a list of devices that are either physically connected or has at least one open AxisJoystick object representing it. For a device to be removed from the internal list, it must be physically disconnected, all AxisJoystick instances representing it must be closed and a call to the EnumerateJoysticks method must be made.

Remarks
Inheritance Hierarchy
IAxisJoystickHandler


IAxisJoystickHandler Methods

IAxisJoystickHandler Methods

The methods of the IAxisJoystickHandler class are listed here.

Public Methods
Name | Description
EnumerateJoysticks | Queries the system for connected devices that are Direct Input compatible joysticks supporting at least two joystick axes. Each device encountered that is not already registered with this AxisJoystickHandler, will be added.
GetJoystick | Creates an AxisJoystick representing the indicated device.
GetJoystickByGuid | Creates the AxisJoystick representing the device indicated by the instance GUID.
GetJoystickById | Creates and AxisJoystick representing the device with the indicated id.
GetJoystickByName | Creates and AxisJoystick representing the device with the given name.
GetJoystickByProductGuid | Creates and AxisJoystick representing the device indicated by the product GUID.


IAxisJoystickHandler::EnumerateJoysticks Method

IAxisJoystickHandler::EnumerateJoysticks Method

Queries the system for connected devices that are Direct Input compatible joysticks supporting at least two joystick axes. Each device encountered that is not already registered with this AxisJoystickHandler, will be added.

IDL
HRESULT EnumerateJoysticks(
    [out,retval] LONG* nbrJoysticks
);
Returns

The current number of devices registered in this AxisJoystickHandler.

Remarks

Devices will only be removed from the AxisJoystickHandler if they are not connected when calling EnumerateJoysticks and there are no open AxisJoystick objects representing the device. This means that the number of devices registered with the AxisJoystickHandler can exceed the number of joysticks connected to the system.

To make sure that no unconnected devices are registered with the AxisJoystickHandler, release or call the Close method on all instances of AxisJoystick in your application, and then make another call to EnumerateJoysticks.

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
Example

See Setup sample.

See Also
IAxisJoystickHandler Interface


IAxisJoystickHandler::GetJoystick Method

IAxisJoystickHandler::GetJoystick Method

Creates an AxisJoystick representing the indicated device.

IDL
HRESULT GetJoystick(
    [in] LONG index,
    [out,retval] IAxisJoystick** joystick
);
Parameters

index
The index of the device registered with the AxisJoystickHandler.

Returns

A pointer to an AxisJoystick representing the device indicated by index. NULL if index is out of range.

Remarks

EnumerateJoysticks Method must be called before any AxisJoysticks can be created. index should never be equal to or greater than the number of devices registered with the AxisJoystickHandler.

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
Example

See Setup sample.

See Also
IAxisJoystickHandler Interface


IAxisJoystickHandler::GetJoystickByGuid Method

IAxisJoystickHandler::GetJoystickByGuid Method

Creates the AxisJoystick representing the device indicated by the instance GUID.

IDL
HRESULT GetJoystickByGuid(
    [in] BSTR instanceGuid,
    [out,retval] IAxisJoystick** joystick
);
Parameters

instanceGuid
A string representation of the unique identifier of the device.

Returns

A pointer to an AxisJoystick representing the device indicated by instanceGuid. NULL if no such AxisJoystick exists.

Remarks

EnumerateJoysticks Method must be called before any AxisJoysticks can be created.

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
Related Topics

IAxisJoystick::Guid

See Also
IAxisJoystickHandler Interface


IAxisJoystickHandler::GetJoystickById Method

IAxisJoystickHandler::GetJoystickById Method

Creates and AxisJoystick representing the device with the indicated id.

IDL
HRESULT GetJoystickById(
    [in] LONG joystickId,
    [out,retval] IAxisJoystick** joystick
);
Parameters

joystickId
Id of the device. This can be set using the Id property of the AxisJoystick.

Returns

A pointer to an AxisJoystick representing the device with the given joystickId. NULL if no such AxisJoystick exists.

Remarks

EnumerateJoysticks Method must be called before any AxisJoysticks can be created.

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
Related Topics

IAxisJoystick::Id

See Also
IAxisJoystickHandler Interface


IAxisJoystickHandler::GetJoystickByName Method

IAxisJoystickHandler::GetJoystickByName Method

Creates and AxisJoystick representing the device with the given name.

IDL
HRESULT GetJoystickByName(
    [in] BSTR name,
    [out,retval] IAxisJoystick** joystick
);
Parameters

name
Manufacturer's name of the device.

Returns

A pointer to an AxisJoystick representing the device with the given name. NULL if no such AxisJoystick exists.

Remarks

EnumerateJoysticks Method must be called before any AxisJoysticks can be created. Any joystick whose name starts with the given string is considered a match.

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
Related Topics

IAxisJoystick::Name

See Also
IAxisJoystickHandler Interface


IAxisJoystickHandler::GetJoystickByProductGuid Method

IAxisJoystickHandler::GetJoystickByProductGuid Method

Creates and AxisJoystick representing the device indicated by the product GUID.

IDL
HRESULT GetJoystickByProductGuid(
    [in] BSTR productGuid,
    [out,retval] IAxisJoystick** joystick
);
Parameters

productGuid
A string representation of the unique identifier of the product (joystick model).

Returns

A pointer to an AxisJoystick representing the device with the given productGuid. NULL if no such AxisJoystick exists.

Remarks

EnumerateJoysticks Method must be called before any AxisJoysticks can be created.

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
Related Topics

IAxisJoystick::ProductGuid

See Also
IAxisJoystickHandler Interface


IAxisKeyPadHandler Interface

IAxisKeyPadHandler Interface

The AxisKeyPadHandler is responsible for enumerating connected devices and creating AxisKeyPad objects representing them.

IDL
interface IAxisKeyPadHandler : IDispatch;
Description

The AxisKeyPadHandler is responsible for enumerating connected devices and creating AxisKeyPad objects representing them. Internally it keeps a list of devices that are either physically connected or has at least one open AxisKeyPad object representing it.

Remarks
Inheritance Hierarchy
IAxisKeyPadHandler


IAxisKeyPadHandler Methods

IAxisKeyPadHandler Methods

The methods of the IAxisKeyPadHandler class are listed here.

Public Methods
Name | Description
EnumerateKeyPads | Queries the system for connected KeyPad devices.
GetKeyPad | Creates an AxisKeyPad representing the indicated device.
GetKeyPadById | Creates and AxisKeyPad representing the device with the indicated id.
GetKeyPadByName | Creates and AxisKeyPad representing the device with the given name.


IAxisKeyPadHandler::EnumerateKeyPads Method

IAxisKeyPadHandler::EnumerateKeyPads Method

Queries the system for connected KeyPad devices.

IDL
HRESULT EnumerateKeyPads(
    [out,retval] LONG* nbrKeyPads
);
Returns

The current number of connected KeyPad devices.

Remarks

This enumeration can only be called once for each session. If called more than once the same number of devices will be returned as in the first call, Even if more KeyPads has ben connected/dissconnected. To create a new correct enumeration the program needs to be restarted.

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
Example

See Setup sample.

See Also
IAxisKeyPadHandler Interface


IAxisKeyPadHandler::GetKeyPad Method

IAxisKeyPadHandler::GetKeyPad Method

Creates an AxisKeyPad representing the indicated device.

IDL
HRESULT GetKeyPad(
    [in] LONG index,
    [out,retval] IAxisKeyPad** jogKeyPad
);
Parameters

index
The index of the device registered with the AxisKeyPadHandler.

Returns

A pointer to an AxisKeyPad representing the device indicated by index. NULL if index is out of range.

Remarks

EnumerateKeyPads Method must be called before any AxisKeyPad can be created. index should never be equal to or greater than the number of devices registered with the AxisKeyPadHandler.

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
Example

See Setup sample.

See Also
IAxisKeyPadHandler Interface


IAxisKeyPadHandler::GetKeyPadById Method

IAxisKeyPadHandler::GetKeyPadById Method

Creates and AxisKeyPad representing the device with the indicated id.

IDL
HRESULT GetKeyPadById(
    [in] LONG keyPadId,
    [out,retval] IAxisKeyPad** keyPad
);
Parameters

keyPadId
Id of the device. This can be set using the Id property of the AxisKeyPad.

Returns

A pointer to an AxisKeyPad representing the device with the given keyPadId. NULL if no such AxisKeyPad exists.

Remarks

EnumerateKeyPads Method must be called before any AxisKeyPads can be created.

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
Related Topics

IAxisKeyPad::Id

See Also
IAxisKeyPadHandler Interface


IAxisKeyPadHandler::GetKeyPadByName Method

IAxisKeyPadHandler::GetKeyPadByName Method

Creates and AxisKeyPad representing the device with the given name.

IDL
HRESULT GetKeyPadByName(
    [in] BSTR name,
    [out,retval] IAxisKeyPad** keyPad
);
Parameters

name
Manufacturer's name of the device.

Returns

A pointer to an AxisKeyPad representing the device with the given name. NULL if no such AxisKeyPad exists.

Remarks

EnumerateKeyPads Method must be called before any AxisKeyPad can be created. Any keyPad whose name starts with the given string is considered a match.

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
Related Topics

IAxisKeyPad::Name

See Also
IAxisKeyPadHandler Interface


IAxisJogDialHandler Interface

IAxisJogDialHandler Interface

The AxisJogDialHandler is responsible for enumerating connected devices and creating AxisJogDial objects representing them.

IDL
interface IAxisJogDialHandler : IDispatch;
Description

The AxisJogDialHandler is responsible for enumerating connected devices and creating AxisJogDial objects representing them. Internally it keeps a list of devices that are either physically connected or has at least one open AxisJogDial object representing it.

Remarks
Inheritance Hierarchy
IAxisJogDialHandler


IAxisJogDialHandler Methods

IAxisJogDialHandler Methods

The methods of the IAxisJogDialHandler class are listed here.

Public Methods
Name | Description
EnumerateJogDials | Queries the system for connected Jog Dial devices.
GetJogDial | Creates an AxisJogDial representing the indicated device.
GetJogDialById | Creates and AxisJogDial representing the device with the indicated id.
GetJogDialByName | Creates and AxisJogDial representing the device with the given name.


IAxisJogDialHandler::EnumerateJogDials Method

IAxisJogDialHandler::EnumerateJogDials Method

Queries the system for connected Jog Dial devices.

IDL
HRESULT EnumerateJogDials(
    [out,retval] LONG* nbrJogDials
);
Returns

The current number of connected Jog Dial devices.

Remarks

This enumeration can only be called once for each session. If called more than once the same number of devices will be returned as in the first call, Even if more Jog Dials has ben connected/dissconnected. To create a new correct enumeration the program needs to be restarted.

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
Example

See Setup sample.

See Also
IAxisJogDialHandler Interface


IAxisJogDialHandler::GetJogDial Method

IAxisJogDialHandler::GetJogDial Method

Creates an AxisJogDial representing the indicated device.

IDL
HRESULT GetJogDial(
    [in] LONG index,
    [out,retval] IAxisJogDial** jogDial
);
Parameters

index
The index of the device registered with the AxisJogDialHandler.

Returns

A pointer to an AxisJogDial representing the device indicated by index. NULL if index is out of range.

Remarks

EnumerateJogDials Method must be called before any AxisJogDial can be created. index should never be equal to or greater than the number of devices registered with the AxisJogDialHandler.

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
Example

See Setup sample.

See Also
IAxisJogDialHandler Interface


IAxisJogDialHandler::GetJogDialById Method

IAxisJogDialHandler::GetJogDialById Method

Creates and AxisJogDial representing the device with the indicated id.

IDL
HRESULT GetJogDialById(
    [in] LONG jogDialId,
    [out,retval] IAxisJogDial** jogDial
);
Parameters

jogDialId
Id of the device. This can be set using the Id property of the AxisJogDial.

Returns

A pointer to an AxisJogDial representing the device with the given jogDialId. NULL if no such AxisJogDial exists.

Remarks

EnumerateJogDials Method must be called before any AxisJoysticks can be created.

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
Related Topics

IAxisJoystick::Id

See Also
IAxisJogDialHandler Interface


IAxisJogDialHandler::GetJogDialByName Method

IAxisJogDialHandler::GetJogDialByName Method

Creates and AxisJogDial representing the device with the given name.

IDL
HRESULT GetJogDialByName(
    [in] BSTR name,
    [out,retval] IAxisJogDial** jogDial
);
Parameters

name
Manufacturer's name of the device.

Returns

A pointer to an AxisJogDial representing the device with the given name. NULL if no such AxisJogDial exists.

Remarks

EnumerateJogDials Method must be called before any AxisJoysticks can be created. Any jogDial whose name starts with the given string is considered a match.

Exceptions
Exceptions | Description
0x80004005 | E_FAIL. Unexpected failure.
Related Topics

IAxisJogDial::Name

See Also
IAxisJogDialHandler Interface


_IAxisJoystickEvents Interface

_IAxisJoystickEvents Interface

Interface for the events fired by IAxisJoystick.

IDL
dispinterface _IAxisJoystickEvents;
Remarks
Related Topics

Listening to Events

Inheritance Hierarchy
AxisJoystickModuleLib::_IAxisJoystickEvents


_IAxisJoystickEvents Methods

_IAxisJoystickEvents Methods

The methods of the _IAxisJoystickEvents class are listed here.

Public Methods
Name | Description
ButtonDown | Event fired when a button is pressed down.
ButtonUp | Event fired when a button is released.
Error | Event fired when an error has occured.
JoystickMove | Event fired when the joystick is moved.
StatusChange | Event fired when the Status of an AxisJoystick has changed.


_IAxisJoystickEvents::ButtonDown Method

_IAxisJoystickEvents::ButtonDown Method

Event fired when a button is pressed down.

IDL
void ButtonDown(
    [in] LONG joystickId,
    [in] LONG buttonIndex
);
Parameters

joystickId
The Id property of the AxisJoystick firing the event.
buttonIndex
The index of the button that was pressed.

Remarks
Related Topics

Listening to Events

See Also
_IAxisJoystickEvents Interface
AxisJoystickModuleLib Library


_IAxisJoystickEvents::ButtonUp Method

_IAxisJoystickEvents::ButtonUp Method

Event fired when a button is released.

IDL
void ButtonUp(
    [in] LONG joystickId,
    [in] LONG buttonIndex
);
Parameters

joystickId
The Id property of the AxisJoystick firing the event.
buttonIndex
The index of the button that was released.

Remarks
Related Topics

Listening to Events

See Also
_IAxisJoystickEvents Interface
AxisJoystickModuleLib Library


_IAxisJoystickEvents::Error Method

_IAxisJoystickEvents::Error Method

Event fired when an error has occured.

IDL
void Error(
    [in] LONG joystickId,
    [in] LONG errorCode,
    [in] BSTR errorInfo
);
Parameters

joystickId
The Id property of the AxisJoystick firing the event.
errorCode
The JOYSTICK_ERROR code.
errorInfo
A short message explaining the error.

Remarks
Related Topics

Listening to Events

See Also
_IAxisJoystickEvents Interface
AxisJoystickModuleLib Library


_IAxisJoystickEvents::JoystickMove Method

_IAxisJoystickEvents::JoystickMove Method

Event fired when the joystick is moved.

IDL
void JoystickMove(
    [in] LONG joystickId,
    [in] LONG xValue,
    [in] LONG yValue,
    [in] LONG zValue
);
Parameters

joystickId
The Id property of the AxisJoystick firing the event.
xValue
The new value of the x-axis.
yValue
The new value of the y-axis.
zValue
The new value of the z-axis.

Remarks

The values are affected by respective axis configuration settings deadzone and overlap.

Related Topics

IAxisJoystick::SetConfiguration

IAxisJoystick::GetConfiguration

Listening to Events

See Also
_IAxisJoystickEvents Interface
AxisJoystickModuleLib Library


_IAxisJoystickEvents::StatusChange Method

_IAxisJoystickEvents::StatusChange Method

Event fired when the Status of an AxisJoystick has changed.

IDL
void StatusChange(
    [in] LONG joystickId,
    [in] LONG oldStatus,
    [in] LONG newStatus
);
Parameters

joystickId
The Id property of the AxisJoystick firing the event.
oldStatus
The JOYSTICK_STATUS before the change.
newStatus
The JOYSTICK_STATUS after the change.

Remarks
Related Topics

Listening to Events

See Also
_IAxisJoystickEvents Interface
AxisJoystickModuleLib Library


_IAxisKeyPadEvents Interface

_IAxisKeyPadEvents Interface

Interface for the events fired by IAxisKeyPad.

IDL
dispinterface _IAxisKeyPadEvents;
Remarks
Related Topics

Listening to Events

Inheritance Hierarchy
AxisJoystickModuleLib::_IAxisKeyPadEvents


_IAxisKeyPadEvents Methods

_IAxisKeyPadEvents Methods

The methods of the _IAxisKeyPadEvents class are listed here.

Public Methods
Name | Description
ButtonDown | Event fired when a button is pressed down.
ButtonUp | Event fired when a button is released.
Error | Event fired when an error has occured.


_IAxisKeyPadEvents::ButtonDown Method

_IAxisKeyPadEvents::ButtonDown Method

Event fired when a button is pressed down.

IDL
void ButtonDown(
    [in] LONG keyPadId,
    [in] LONG buttonIndex
);
Parameters

keyPadId
The Id property of the AxisKeyPad firing the event.
buttonIndex
The index of the button that was pressed.

Remarks
Related Topics

Listening to Events

See Also
_IAxisKeyPadEvents Interface
AxisJoystickModuleLib Library


_IAxisKeyPadEvents::ButtonUp Method

_IAxisKeyPadEvents::ButtonUp Method

Event fired when a button is released.

IDL
void ButtonUp(
    [in] LONG keyPadId,
    [in] LONG buttonIndex
);
Parameters

keyPadId
The Id property of the AxisKeyPad firing the event.
buttonIndex
The index of the button that was released.

Remarks
Related Topics

Listening to Events

See Also
_IAxisKeyPadEvents Interface
AxisJoystickModuleLib Library


_IAxisKeyPadEvents::Error Method

_IAxisKeyPadEvents::Error Method

Event fired when an error has occured.

IDL
void Error(
    [in] LONG keyPadId,
    [in] LONG errorCode,
    [in] BSTR errorInfo
);
Parameters

keyPadId
The Id property of the AxisKeyPad firing the event.
errorCode
The KEYPAD_ERROR code.
errorInfo
A short message explaining the error.

Remarks
Related Topics

Listening to Events

See Also
_IAxisKeyPadEvents Interface
AxisJoystickModuleLib Library


_IAxisJogDialEvents Interface

_IAxisJogDialEvents Interface

Interface for the events fired by IAxisJogDial.

IDL
dispinterface _IAxisJogDialEvents;
Remarks
Related Topics

Listening to Events

Inheritance Hierarchy
AxisJoystickModuleLib::_IAxisJogDialEvents


_IAxisJogDialEvents Methods

_IAxisJogDialEvents Methods

The methods of the _IAxisJogDialEvents class are listed here.

Public Methods
Name | Description
ButtonDown | Event fired when a button is pressed down.
ButtonUp | Event fired when a button is released.
Error | Event fired when an error has occured.
JogMove | Event fired when the jog wheel is moved.
ShuttleMove | Event fired when the Dial wheel is moved.


_IAxisJogDialEvents::ButtonDown Method

_IAxisJogDialEvents::ButtonDown Method

Event fired when a button is pressed down.

IDL
void ButtonDown(
    [in] LONG jogDialId,
    [in] LONG buttonIndex
);
Parameters

jogDialId
The Id property of the AxisJogDial firing the event.
buttonIndex
The index of the button that was pressed.

Remarks
Related Topics

Listening to Events

See Also
_IAxisJogDialEvents Interface
AxisJoystickModuleLib Library


_IAxisJogDialEvents::ButtonUp Method

_IAxisJogDialEvents::ButtonUp Method

Event fired when a button is released.

IDL
void ButtonUp(
    [in] LONG jogDialId,
    [in] LONG buttonIndex
);
Parameters

buttonIndex
The index of the button that was released.
joystickId
The Id property of the AxisJogDial firing the event.

Remarks
Related Topics

Listening to Events

See Also
_IAxisJogDialEvents Interface
AxisJoystickModuleLib Library


_IAxisJogDialEvents::Error Method

_IAxisJogDialEvents::Error Method

Event fired when an error has occured.

IDL
void Error(
    [in] LONG jogDialId,
    [in] LONG errorCode,
    [in] BSTR errorInfo
);
Parameters

jogDialId
The Id property of the AxisJogDial firing the event.
errorCode
The JOGDIAL_ERROR code.
errorInfo
A short message explaining the error.

Remarks
Related Topics

Listening to Events

See Also
_IAxisJogDialEvents Interface
AxisJoystickModuleLib Library


_IAxisJogDialEvents::JogMove Method

_IAxisJogDialEvents::JogMove Method

Event fired when the jog wheel is moved.

IDL
void JogMove(
    [in] LONG jogDialId,
    [in] LONG joggState
);
Parameters

joystickId
The Id property of the AxisJogDial firing the event.
DialState
The new value jog wheel. This value is either 1 or -1 representing a left or right move of the Jog wheel.

Remarks

Listening to Events

See Also
_IAxisJogDialEvents Interface
AxisJoystickModuleLib Library


_IAxisJogDialEvents::ShuttleMove Method

_IAxisJogDialEvents::ShuttleMove Method

Event fired when the Dial wheel is moved.

IDL
void ShuttleMove(
    [in] LONG jogDialId,
    [in] LONG DialState
);
Parameters

DialState
The new value Dial wheel.
joystickId
The Id property of the AxisJogDial firing the event.

Remarks

Listening to Events

See Also
_IAxisJogDialEvents Interface
AxisJoystickModuleLib Library


Enumerations

Enumerations

The following table lists structs, records, enums in this documentation.

Remarks
Enumerations
Name | Description
CAMERA_AXIS | An axis along which a camera can pan, tilt or zoom.
JOGDIAL_ERROR | Error codes used with the Error event.
JOYSTICK_AXIS | An axis along which a joystick can be moved.
JOYSTICK_ERROR | Error codes used with the Error event.
JOYSTICK_STATUS | Flags for determining the status of the AxisJoystick.
KEYPAD_BUTTON | This is record KEYPAD_BUTTON.
KEYPAD_DISPLAY_ALLIGNMENT | This is record KEYPAD_DISPLAY_ALLIGNMENT.
KEYPAD_ERROR | Error codes used with the Error event.


CAMERA_AXIS Enumeration

CAMERA_AXIS Enumeration
IDL
enum CAMERA_AXIS {
  CAMERA_AXIS_PAN = 0,
  CAMERA_AXIS_TILT = 1,
  CAMERA_AXIS_ZOOM = 2
};
Members
Members | Description
CAMERA_AXIS_PAN | Camera pan movement.
CAMERA_AXIS_TILT | Camera tilt movement.
CAMERA_AXIS_ZOOM | Camera zoom.
Remarks

An axis along which a camera can pan, tilt or zoom.

Related Topics

IAxisJoystick::MapAxis


JOGDIAL_ERROR Enumeration

JOGDIAL_ERROR Enumeration

Error codes used with the Error event.

IDL
enum JOGDIAL_ERROR {
  JOGDIAL_E_FAILED_ACTIVATE = 0x80050401L,
  JOGDIAL_E_FAILED_DEACTIVATE = 0x80050402L,
  JOGDIAL_E_FAILED_SET_PROPERTY = 0x80050404L,
  JOGDIAL_E_FAILED_REQUEST = 0x80050407L,
  JOGDIAL_E_INTERNAL = 0x80050408L
};
Members
Members | Description
JOGDIAL_E_FAILED_ACTIVATE | Activate method failed.
JOGDIAL_E_FAILED_DEACTIVATE | DeActivate method failed.
JOGDIAL_E_FAILED_REQUEST | Unexpected error when trying to get a property value.
JOGDIAL_E_INTERNAL | Unexpected internal error in AxisJoystickModule.
Remarks


JOYSTICK_AXIS Enumeration

JOYSTICK_AXIS Enumeration
IDL
enum JOYSTICK_AXIS {
  JOYSTICK_AXIS_X = 0,
  JOYSTICK_AXIS_Y = 1,
  JOYSTICK_AXIS_Z = 2
};
Members
Members | Description
JOYSTICK_AXIS_X | X-axis of the joystick.
JOYSTICK_AXIS_Y | Y-axis of the joystick.
JOYSTICK_AXIS_Z | Z-axis of the joystick. Normally manipulated by a rotatable knob on the top of the joystick or by rotating the entire joystick.
Remarks

An axis along which a joystick can be moved.

Related Topics

IAxisJoystick::MapAxis


JOYSTICK_ERROR Enumeration

JOYSTICK_ERROR Enumeration

Error codes used with the Error event.

IDL
enum JOYSTICK_ERROR {
  JOYSTICK_E_FAILED_ACTIVATE = 0x80040401L,
  JOYSTICK_E_FAILED_DEACTIVATE = 0x80040402L,
  JOYSTICK_E_FAILED_SEND = 0x80040403L,
  JOYSTICK_E_FAILED_SET_PROPERTY = 0x80040404L,
  JOYSTICK_E_FAILED_SET_CONFIGURATION = 0x80040405L,
  JOYSTICK_E_FAILED_SET_COOPERATIVELEVEL = 0x80040406L,
  JOYSTICK_E_FAILED_REQUEST = 0x80040407L,
  JOYSTICK_E_INTERNAL = 0x80040408L
};
Members
Members | Description
JOYSTICK_E_FAILED_ACTIVATE | Activate method failed.
JOYSTICK_E_FAILED_DEACTIVATE | DeActivate method failed.
JOYSTICK_E_FAILED_SEND | Error when trying to send command to the camera. The exact reason is given in the error message. It could be wrong user or password, wrong PTZControlURL or a network error.
JOYSTICK_E_FAILED_SET_PROPERTY | Failed to set a property. Caused by invalid property value.
JOYSTICK_E_FAILED_SET_CONFIGURATION | Failed to update configuration parameters of the joystick. Error caused by faulty parameters when using the IAxisJoystick::SetConfiguration method.
JOYSTICK_E_FAILED_SET_COOPERATIVELEVEL | Failed when trying to set parent window. This error might be caused by a faulty window handle passed to the IAxisJoystick::SetParent method.
JOYSTICK_E_FAILED_REQUEST | Unexpected error when trying to get a property value.
JOYSTICK_E_INTERNAL | Unexpected internal error in AxisJoystickModule.
Remarks


JOYSTICK_STATUS Enumeration

JOYSTICK_STATUS Enumeration
IDL
enum JOYSTICK_STATUS {
  JOYSTICK_CONNECTED = 1,
  JOYSTICK_ACQUIRED = 2,
  JOYSTICK_ACTIVE = 4
};
Members
Members | Description
JOYSTICK_CONNECTED | The device is physically connected to the computer.
JOYSTICK_ACQUIRED | The device can be accessed and polled.
JOYSTICK_ACTIVE | The AxisJoystick is activated, meaning that it is polling data from the device and is sending commands to the camera.
Remarks

Flags for determining the status of the AxisJoystick.


KEYPAD_BUTTON Enumeration

KEYPAD_BUTTON Enumeration
IDL
enum KEYPAD_BUTTON {
  KEYPAD_BUTTON_0 = 0,
  KEYPAD_BUTTON_1 = 1,
  KEYPAD_BUTTON_2 = 2,
  KEYPAD_BUTTON_3 = 3,
  KEYPAD_BUTTON_4 = 4,
  KEYPAD_BUTTON_5 = 5,
  KEYPAD_BUTTON_6 = 6,
  KEYPAD_BUTTON_7 = 7,
  KEYPAD_BUTTON_8 = 8,
  KEYPAD_BUTTON_9 = 9,
  KEYPAD_BUTTON_TAB = 10,
  KEYPAD_BUTTON_ALT = 11,
  KEYPAD_BUTTON_A = 12,
  KEYPAD_BUTTON_B = 13,
  KEYPAD_BUTTON_C = 14,
  KEYPAD_BUTTON_D = 15,
  KEYPAD_BUTTON_E = 16,
  KEYPAD_BUTTON_F1 = 17,
  KEYPAD_BUTTON_F2 = 18,
  KEYPAD_BUTTON_F3 = 19,
  KEYPAD_BUTTON_F4 = 20,
  KEYPAD_BUTTON_F5 = 21,
  KEYPAD_BUTTON_F6 = 22,
  KEYPAD_BUTTON_F7 = 23,
  KEYPAD_BUTTON_F8 = 24,
  KEYPAD_BUTTON_F9 = 25,
  KEYPAD_BUTTON_F10 = 28,
  KEYPAD_BUTTON_PLUS = 29,
  KEYPAD_BUTTON_MINUS = 30
};
Remarks

This is record KEYPAD_BUTTON.


KEYPAD_DISPLAY_ALLIGNMENT Enumeration

KEYPAD_DISPLAY_ALLIGNMENT Enumeration
IDL
enum KEYPAD_DISPLAY_ALLIGNMENT {
  LEFT = 0,
  CENTER = 1,
  RIGHT = 2
};
Remarks

This is record KEYPAD_DISPLAY_ALLIGNMENT.


KEYPAD_ERROR Enumeration

KEYPAD_ERROR Enumeration

Error codes used with the Error event.

IDL
enum KEYPAD_ERROR {
  KEYPAD_E_FAILED_ACTIVATE = 0x80060401L,
  KEYPAD_E_FAILED_DEACTIVATE = 0x80060402L,
  KEYPAD_E_FAILED_SET_PROPERTY = 0x80060404L,
  KEYPAD_E_FAILED_REQUEST = 0x80060407L,
  KEYPAD_E_INTERNAL = 0x80060408L,
  KEYPAD_E_FAILED_SET_BACKLIGHT = 0x80050409L
};
Members
Members | Description
KEYPAD_E_FAILED_ACTIVATE | Activate method failed.
KEYPAD_E_FAILED_DEACTIVATE | DeActivate method failed.
KEYPAD_E_FAILED_SET_PROPERTY | Failed to set a property. Caused by invalid property value.
KEYPAD_E_FAILED_REQUEST | Unexpected error when trying to get a property value.
KEYPAD_E_INTERNAL | Unexpected internal error in AxisJoystickModule.
Remarks


Sample Code

Sample Code

For complete samples, see the samples folder included with the AXIS Joystick SDK installation.

Topics
Name | Description
Setup | This example shows how to setup an AxisJoystick to control an AXIS PTZ camera. It is done in the simplest possible way, without changing any properties and without listening to events. In C# and VB.NET, make sure you have added AxisJoystickModuleLib to your references. Then add the following code to... more
Listening to Events | Listening to events is done by defining a method that has the correct parameters for the specific event, and then directing an event handler to call this method. Note that the joystickId that is supplied in all events generated by AxisJoystick can be set using the IAxisJoystick::Id property.
Zooming without Z-axis | This example illustrates how to use button events and the IAxisJoystick::MapAxis method to zoom using a joystick with only two axes. Whenever button 0 on the joystick is pressed down, zooming in or out will be done by moving the joystick up or down. This is achieved by switching the... more
Changing Configuration | Apart from setting the various propertys of the AxisJoystick, it can also be configured using the IAxisJoystick::SetConfiguration method. Configuration values are set per joystick axis.
Control Board - Setup | This example shows how to setup a connection to a Control Board device. This sample uses the keypad but JogShuttle is setup in the same way except that "EnumerateJogDials" should be used instead of "EnumerateKeyPad". Make sure that the iowkit.dll (Keypad), spinkit.dll (Jog Dial), GETTDeviceLib.dll, GETTDeviceLibWrapper.dll, vcruntime140.dll, vccorlib140.dll, msvcp140.dll and... more
Control Board - Listening to Events | Listening to events is done by defining a method that has the correct parameters for the specific event, and then directing an event handler to call this method.This sample uses the Keypad but Jog Dial is used in the same way. Note that the theKeyPadId that is supplied in all... more


Setup

Setup

This example shows how to setup an AxisJoystick to control an AXIS PTZ camera. It is done in the simplest possible way, without changing any properties and without listening to events.

In C# and VB.NET, make sure you have added AxisJoystickModuleLib to your references. Then add the following code to the top of your source file:

C++
Copy Code
#import "AxisJoystickModule.dll" embedded_idl, no_namespace

C#
Copy Code
#using AxisJoystickModuleLib;

VB.NET
Copy Code
Imports AxisJoystickModuleLib

The following code creates an AxisJoystickHandler, an object that keeps track on connected joystick devices. After checking that at least one device is connected, it creates an AxisJoystick object representing the first encountered device. The URL of the ptz.cgi (pan tilt zoom cgi) of the camera is set, and then the AxisJoystick is ready to be activated.

No username or password is set, so it is assumed that anonymous viewers are allowed to control the camera.

C++:
Copy Code
IAxisJoystickHandlerPtr aHandler;
aHandler.CreateInstance(__uuidof(AxisJoystickHandler));
aHandler.AddRef();

long aNbrJoysticks = 0;
aHandler->EnumerateJoysticks(&aNbrJoysticks);

IAxisJoystick* aJoystick = NULL;
if (aNbrJoysticks > 0)
   {
   myHandler->GetJoystick(0, &aJoystick);
   if (aJoystick)
   {
      aJoystick->put_PTZControlURL("http://10.13.24.80/axis-cgi/com/ptz.cgi");
      aJoystick->Activate();
   }
}

C#:
Copy Code
AxisJoystickHandler aHandler = new AxisJoystickHandler();
int aNbrJoysticks = aHandler.EnumerateJoysticks();
if (aNbrJoysticks > 0)
{
   AxisJoystick aJoystick = aHandler.GetJoystick(0);
   if (aJoystick != null)
   {
      aJoystick.PTZControlURL = "http://10.13.24.80/axis-cgi/com/ptz.cgi";
      aJoystick.Activate();
   }
}

VB.NET
Copy Code
Dim aHandler As New AxisJoystickHandler()
Dim aNbrJoysticks As Integer = aHandler.EnumerateJoysticks()
If aNbrJoysticks > 0 Then
    Dim aJoystick As AxisJoystick = aHandler.GetJoystick(0)
    If aJoystick IsNot Nothing Then
        aJoystick.PTZControlURL = "http://10.13.24.80/axis-cgi/com/ptz.cgi"
        aJoystick.Activate()
    End If
End If
Related Topics

IAxisJoystickHandler::EnumerateJoysticks

IAxisJoystickHandler::GetJoystick

IAxisJoystick::PTZControlURL

IAxisJoystick::Activate


Listening to Events

Listening to Events

Listening to events is done by defining a method that has the correct parameters for the specific event, and then directing an event handler to call this method.

Note that the joystickId that is supplied in all events generated by AxisJoystick can be set using the IAxisJoystick::Id property.

C++
Copy Code
HRESULT OnButtonDown(long theJoystickId, long theButtonNbr)
{
   std::cout<<"Joystick "<<theJoystickId<<": Button "<<theButtonNbr<<" down\n";
   return S_OK;
}
.
.
.
__hook(&_IAxisJoystickEvents::ButtonDown, aJoystick, &OnButtonDown);

C#
Copy Code
void OnButtonDown(int joystickId, int buttonIndex)
{
   Console.Out.WriteLine("Joystick " + joystickId + ": Button " + buttonIndex + " down.");
}
.
.
.
aJoystick.ButtonDown += new _IAxisJoystickEvents_ButtonDownEventHandler(OnButtonDown);

VB.NET
Copy Code
Private Sub OnButtonDown(ByVal joystickId As Integer, ByVal buttonIndex As Integer)
   Console.Out.WriteLine("Joystick " + joystickId + ": Button " + buttonIndex + " down.";
End Sub
.
.
.
AddHandler aJoystick.ButtonDown, AddressOf OnButtonDown
Related Topics

_IAxisJoystickEvents


Zooming without Z-axis

Zooming without Z-axis

This example illustrates how to use button events and the IAxisJoystick::MapAxis method to zoom using a joystick with only two axes.

Whenever button 0 on the joystick is pressed down, zooming in or out will be done by moving the joystick up or down. This is achieved by switching the mapping of the Y- and Z-axis of the joystick. When the button is pressed down axis-Y will be mapped to zooming and when the button is released it will be mapped to tilting again.

See Setup and Listening to Events to see how to create the AxisJoystick and setup event handling

C++
Copy Code
IAxisJoystick* myJoystick = NULL;
.
.
.
HRESULT OnButtonUp(long theJoystickId, long theButtonNbr)
{
   if (theButtonNbr == 0)
   {
        aJoysticks.MapAxis(JOYSTICK_AXIS_Y, CAMERA_AXIS_TILT);
        aJoysticks.MapAxis(JOYSTICK_AXIS_Z, CAMERA_AXIS_ZOOM);
   }
   return S_OK;
}

HRESULT OnButtonDown(long theJoystickId, long theButtonNbr)
{
   if (theButtonNbr == 0)
   {
        aJoysticks.MapAxis(JOYSTICK_AXIS_Y, CAMERA_AXIS_ZOOM);
        aJoysticks.MapAxis(JOYSTICK_AXIS_Z, CAMERA_AXIS_TILT);
   }
   return S_OK;
}

C#
Copy Code
AxisJoystick myJoystick;
.
.
.
void MainForm_ButtonUp(int joystickId, int buttonIndex)
{
   if (buttonIndex == 0)
   {
      myJoystick.MapAxis((int)JOYSTICK_AXIS.JOYSTICK_AXIS_Y, (int)CAMERA_AXIS.CAMERA_AXIS_TILT);
      myJoystick.MapAxis((int)JOYSTICK_AXIS.JOYSTICK_AXIS_Z, (int)CAMERA_AXIS.CAMERA_AXIS_ZOOM);
   }
}

void MainForm_ButtonDown(int joystickId, int buttonIndex)
{
   if (buttonIndex == 0)
   {
      myJoysticks[joystickId].MapAxis( (int)JOYSTICK_AXIS.JOYSTICK_AXIS_Y, (int)CAMERA_AXIS.CAMERA_AXIS_ZOOM);
      myJoysticks[joystickId].MapAxis((int)JOYSTICK_AXIS.JOYSTICK_AXIS_Z, (int)CAMERA_AXIS.CAMERA_AXIS_TILT);
   }
}

VB.NET
Copy Code
myJoystick As AxisJoystick
.
.
.
Private Sub MainForm_ButtonUp(ByVal joystickId As Integer, ByVal buttonIndex As Integer)
    If buttonIndex = 0 Then
        aJoysticks.MapAxis(JOYSTICK_AXIS.JOYSTICK_AXIS_Y, CAMERA_AXIS.CAMERA_AXIS_TILT)
        aJoysticks.MapAxis(JOYSTICK_AXIS.JOYSTICK_AXIS_Z, CAMERA_AXIS.CAMERA_AXIS_ZOOM)
    End If
End Sub

Private Sub MainForm_ButtonDown(ByVal joystickId As Integer, ByVal buttonIndex As Integer)
    If buttonIndex = 0 Then
        aJoystick.MapAxis(JOYSTICK_AXIS.JOYSTICK_AXIS_Y, CAMERA_AXIS.CAMERA_AXIS_ZOOM)
        aJoystick.MapAxis(OYSTICK_AXIS.JOYSTICK_AXIS_Z, CAMERA_AXIS.CAMERA_AXIS_TILT)
    End If
End Sub
Related Topics

Setup

Listening to Events

IAxisJoystick::MapAxis

_IAxisJoystickEvents


Changing Configuration

Changing Configuration

Apart from setting the various propertys of the AxisJoystick, it can also be configured using the IAxisJoystick::SetConfiguration method. Configuration values are set per joystick axis.

C++
Copy Code
anAxisJoystick->SetConfiguration(AXIS_X, 25, 50, 1, 1.0, 0.5f, FALSE);
anAxisJoystick->SetConfiguration(AXIS_Y, 25, 50, 1, 1.0, 0.5f, TRUE);
anAxisJoystick->SetConfiguration(AXIS_Z, 25, 50, 1, 1.0, 0.5f, FALSE);

C#
Copy Code
anAxisJoystick.SetConfiguration((int)JOYSTICK_AXIS.AXIS_X, 25, 50, 1, 1.0, 0.5f, FALSE);
anAxisJoystick.SetConfiguration((int)JOYSTICK_AXIS.AXIS_Y, 25, 50, 1, 1.0, 0.5f, TRUE);
anAxisJoystick.SetConfiguration((int)JOYSTICK_AXIS.AXIS_Z, 25, 50, 1, 1.0, 0.5f, FALSE);

VB.NET
Copy Code
anAxisJoystick.SetConfiguration(JOYSTICK_AXIS.AXIS_X, 25, 50, 1, 1.0, 0.5F, FALSE);
anAxisJoystick.SetConfiguration(JOYSTICK_AXIS.AXIS_Y, 25, 50, 1, 1.0, 0.5F, TRUE);
anAxisJoystick.SetConfiguration(JOYSTICK_AXIS.AXIS_Z, 25, 50, 1, 1.0, 0.5F, FALSE);
Related Topics

IAxisJoystick::SetConfiguration

IAxisJoystick::GetConfiguration


Control Board - Setup

Control Board - Setup

This example shows how to setup a connection to a Control Board device. This sample uses the keypad but JogShuttle is setup in the same way except that "EnumerateJogDials" should be used instead of "EnumerateKeyPad".

Make sure that the iowkit.dll (Keypad), spinkit.dll (Jog Dial), GETTDeviceLib.dll, GETTDeviceLibWrapper.dll, vcruntime140.dll, vccorlib140.dll, msvcp140.dll and concrt140.dll is placed in the path of the executing program.

When using 64 bit version then corresponding 64 bit versions should be used instead. (iowkitX64.dll, spinkitX64.dll, GETTDeviceLib_x64.dll, GETTDeviceLibWrapper_x64.dll and 64 bit versions of vcruntime140.dll, vccorlib140.dll, msvcp140.dll and concrt140.dll )

Note the GETTDeviceLib.dll, GETTDeviceLibWrapper.dll, vcruntime140.dll, vccorlib140.dll, msvcp140.dll and concrt140.dll is needed to support the KeyPad Rev2 and JogDial Rev2 which is the latest version of the hardware. iowkit.dll and spinkit.dll should still be included for backward compatibility with older devices.

In C# AxisJoystickModuleLib to your references. Then add the following code to the top of your source file:

C++

Copy Code
#import "AxisJoystickModule.dll" embedded_idl, no_namespace

C#

Copy Code
#using AxisJoystickModuleLib;

as

The following code creates an AxisKeyPadHandler , an object that keeps track on connected device. After checking that a device is connected, it creates an AxisKeyPad object representing the first encountered device. Then the AxisKeyPad is ready to be activated.

C++:

Copy Code
IAxisKeyPadHandlerPtr     myKeyPadHandler;
myKeyPadHandler.CreateInstance(__uuidof(AxisKeyPadHandler));

IAxisKeyPad*  aKeyPad = NULL;
long aNbrKeyPads = 0;

myKeyPadHandler->EnumerateKeyPads(&aNbrKeyPads);
if (aNbrKeyPads > 0)
{
  myKeyPadHandler->GetKeyPad(0, &aKeyPad);
  if (aKeyPad)
  {
    aKeyPad->Activate();
  }
 }

C#:

Copy Code

private static AxisKeyPadHandlerClass aKeyPadHandler = new AxisKeyPadHandlerClass();
AxisKeyPad aKeyPad = null;

int aNbrKeyPads = aKeyPadHandler.EnumerateKeyPads();
if (aNbrKeyPads > 0)
{
  aKeyPad = aKeyPadHandler.GetKeyPad(0);
  if (aKeyPad != null)
  {
    aKeyPad.Activate();
   }
 }

See Also

IAxisKeyPadHandler::EnumerateKeyPads

IAxisKeyPadHandler::GetKeyPad

IAxisKeyPad::Activate

IAxisJogShuttleHandler::EnumerateJogShuttles

IAxisJogShuttleHandler::GetJogShuttle

IAxisJogShuttle::Activate


Control Board - Listening to Events

Control Board - Listening to Events

Listening to events is done by defining a method that has the correct parameters for the specific event, and then directing an event handler to call this method.This sample uses the Keypad but Jog Dial is used in the same way.

Note that the theKeyPadId that is supplied in all events generated by AxisKeyPad can be set using the IAxisKeyPad::Id property.

C++

Copy Code
HRESULT OnKeyPadButtonDown(long theKeyPadId, long theButtonNbr)
{
  std::cout<<"KeyPad "<<theKeyPadId<<": Button "<<theButtonNbr<<" down\n";
  return S_OK;
}
.
.
.
__hook(&_IAxisKeyPadEvents::ButtonDown, aKeyPad, &JoystickManager::OnKeyPadButtonDown);

C#

Copy Code
private static void AxisKeyPad_ButtonDown(int joystickId, int buttonIndex)
{
  System.Console.WriteLine(joystickId + ":KeyPad Button " + buttonIndex + " DOWN");
}
.
.
.
aKeyPad.ButtonDown += AxisKeyPad_ButtonDown;

See Also

_IAxisKeyPadEvents

_IAxis JogShuttle Events


IAxisJoystick Events

IAxisJoystick Events

The events fired by the AxisJoystick class.

Remarks


Axis Joystick SDK Reference Enumerations

Axis Joystick SDK Reference Enumerations
Enumerations
Name | Description
CAMERA_AXIS | An axis along which a camera can pan, tilt or zoom.
JOGDIAL_ERROR | Error codes used with the Error event.
JOYSTICK_AXIS | An axis along which a joystick can be moved.
JOYSTICK_ERROR | Error codes used with the Error event.
JOYSTICK_STATUS | Flags for determining the status of the AxisJoystick.
KEYPAD_BUTTON | This is record KEYPAD_BUTTON.
KEYPAD_DISPLAY_ALLIGNMENT | This is record KEYPAD_DISPLAY_ALLIGNMENT.
KEYPAD_ERROR | Error codes used with the Error event.


Structs, Records, Enums (AutoDoc Folder)

Legend
Legend
Enumeration


AxisJoystickModuleLib Library Interfaces

AxisJoystickModuleLib Library Interfaces
Interfaces
Name | Description
IAxisJoystick | Represents a direct input compatible joystick having at least two joystick axes.
IAxisKeyPad | Represents a KeyPad device.
IAxisJogDial | Represents a Jog Dial device.
IAxisJoystickHandler | The AxisJoystickHandler is responsible for enumerating connected devices and creating AxisJoystick objects representing them.
IAxisKeyPadHandler | The AxisKeyPadHandler is responsible for enumerating connected devices and creating AxisKeyPad objects representing them.
IAxisJogDialHandler | The AxisJogDialHandler is responsible for enumerating connected devices and creating AxisJogDial objects representing them.
_IAxisJoystickEvents | Interface for the events fired by IAxisJoystick.
_IAxisKeyPadEvents | Interface for the events fired by IAxisKeyPad.
_IAxisJogDialEvents | Interface for the events fired by IAxisJogDial.


Interfaces (AutoDoc Folder)

Legend
Legend
Interface


Contents

Contents
This is the table of contents of this documentation.
Introduction
What's New
Limitations and Considerations
Redistribution
License Agreement
Axis Joystick SDK Reference
AxisJoystickModuleLib Library
Interfaces
IAxisJoystick Interface
IAxisJoystick Methods
Activate Method
Close Method
DeActivate Method
GetConfiguration Method
MapAxis Method
RunControlPanel Method
SetConfiguration Method
SetParent Method
SetProxy Method
IAxisJoystick Properties
Guid Property
Id Property
Name Property
NbrAxes Property
NbrButtons Property
NetworkTimeout Property
Password Property
PollInterval Property
ProductGuid Property
PTZControlURL Property
Status Property
Username Property
IAxisKeyPad Interface
IAxisKeyPad Methods
Activate Method
ClearDisplay Method
Close Method
DeActivate Method
SetAllKeysBackLight Method
SetAllKeysBackLightBrightness Method
SetBackLight Method
SetDisplayContrast Method
SetDisplayState Method
SetDisplayText Method
SetDisplayTextRow Method
IAxisKeyPad Properties
Id Property
Name Property
NbrDisplayChars Property
NbrDisplayRows Property
IAxisJogDial Interface
IAxisJogDial Methods
Activate Method
Close Method
DeActivate Method
IAxisJogDial Properties
Id Property
Name Property
IAxisJoystickHandler Interface
IAxisJoystickHandler Methods
EnumerateJoysticks Method
GetJoystick Method
GetJoystickByGuid Method
GetJoystickById Method
GetJoystickByName Method
GetJoystickByProductGuid Method
IAxisKeyPadHandler Interface
IAxisKeyPadHandler Methods
EnumerateKeyPads Method
GetKeyPad Method
GetKeyPadById Method
GetKeyPadByName Method
IAxisJogDialHandler Interface
IAxisJogDialHandler Methods
EnumerateJogDials Method
GetJogDial Method
GetJogDialById Method
GetJogDialByName Method
_IAxisJoystickEvents Interface
_IAxisJoystickEvents Methods
ButtonDown Method
ButtonUp Method
Error Method
JoystickMove Method
StatusChange Method
_IAxisKeyPadEvents Interface
_IAxisKeyPadEvents Methods
ButtonDown Method
ButtonUp Method
Error Method
_IAxisJogDialEvents Interface
_IAxisJogDialEvents Methods
ButtonDown Method
ButtonUp Method
Error Method
JogMove Method
ShuttleMove Method
Enumerations
CAMERA_AXIS Enumeration
JOGDIAL_ERROR Enumeration
JOYSTICK_AXIS Enumeration
JOYSTICK_ERROR Enumeration
JOYSTICK_STATUS Enumeration
KEYPAD_BUTTON Enumeration
KEYPAD_DISPLAY_ALLIGNMENT Enumeration
KEYPAD_ERROR Enumeration
Sample Code
Setup
Listening to Events
Zooming without Z-axis
Changing Configuration
Control Board - Setup
Control Board - Listening to Events


Index

Index
These are all topics and symbols available in this documentation.
_ | A | C | E | I | J | K | L | R | S | W | Z
_
_IAxisJogDialEvents interface
_IAxisJogDialEvents methods
about _IAxisJogDialEvents interface
_IAxisJogDialEvents::ButtonDown method
_IAxisJogDialEvents::ButtonUp method
_IAxisJogDialEvents::Error method
_IAxisJogDialEvents::JogMove method
_IAxisJogDialEvents::ShuttleMove method
_IAxisJoystickEvents interface
_IAxisJoystickEvents methods
about _IAxisJoystickEvents interface
_IAxisJoystickEvents::ButtonDown method
_IAxisJoystickEvents::ButtonUp method
_IAxisJoystickEvents::Error method
_IAxisJoystickEvents::JoystickMove method
_IAxisJoystickEvents::StatusChange method
_IAxisKeyPadEvents interface
_IAxisKeyPadEvents methods
about _IAxisKeyPadEvents interface
_IAxisKeyPadEvents::ButtonDown method
_IAxisKeyPadEvents::ButtonUp method
_IAxisKeyPadEvents::Error method
A
Axis Joystick SDK Reference
AxisJoystickModuleLib library
Interfaces
C
CAMERA_AXIS enumeration
CAMERA_AXIS_PAN enumeration member
CAMERA_AXIS_TILT enumeration member
CAMERA_AXIS_ZOOM enumeration member
CENTER enumeration member
Changing Configuration
Control Board - Listening to Events
Control Board - Setup
E
Enumerations
I
IAxisJogDial interface
about IAxisJogDial interface
IAxisJogDial methods
IAxisJogDial properties
IAxisJogDial::Activate method
IAxisJogDial::Close method
IAxisJogDial::DeActivate method
IAxisJogDial::Id property
IAxisJogDial::Name property
IAxisJogDialHandler interface
about IAxisJogDialHandler interface
IAxisJogDialHandler methods
IAxisJogDialHandler::EnumerateJogDials method
IAxisJogDialHandler::GetJogDial method
IAxisJogDialHandler::GetJogDialById method
IAxisJogDialHandler::GetJogDialByName method
IAxisJoystick Events
IAxisJoystick interface
about IAxisJoystick interface
IAxisJoystick methods
IAxisJoystick properties
IAxisJoystick::Activate method
IAxisJoystick::Close method
IAxisJoystick::DeActivate method
IAxisJoystick::GetConfiguration method
IAxisJoystick::Guid property
IAxisJoystick::Id property
IAxisJoystick::MapAxis method
IAxisJoystick::Name property
IAxisJoystick::NbrAxes property
IAxisJoystick::NbrButtons property
IAxisJoystick::NetworkTimeout property
IAxisJoystick::Password property
IAxisJoystick::PollInterval property
IAxisJoystick::ProductGuid property
IAxisJoystick::PTZControlURL property
IAxisJoystick::RunControlPanel method
IAxisJoystick::SetConfiguration method
IAxisJoystick::SetParent method
IAxisJoystick::SetProxy method
IAxisJoystick::Status property
IAxisJoystick::Username property
IAxisJoystickHandler interface
about IAxisJoystickHandler interface
IAxisJoystickHandler methods
IAxisJoystickHandler::EnumerateJoysticks method
IAxisJoystickHandler::GetJoystick method
IAxisJoystickHandler::GetJoystickByGuid method
IAxisJoystickHandler::GetJoystickById method
IAxisJoystickHandler::GetJoystickByName method
IAxisJoystickHandler::GetJoystickByProductGuid method
IAxisKeyPad interface
about IAxisKeyPad interface
IAxisKeyPad methods
IAxisKeyPad properties
IAxisKeyPad::Activate method
IAxisKeyPad::ClearDisplay method
IAxisKeyPad::Close method
IAxisKeyPad::DeActivate method
IAxisKeyPad::Id property
IAxisKeyPad::Name property
IAxisKeyPad::NbrDisplayChars property
IAxisKeyPad::NbrDisplayRows property
IAxisKeyPad::SetAllKeysBackLight method
IAxisKeyPad::SetAllKeysBackLightBrightness method
IAxisKeyPad::SetBackLight method
IAxisKeyPad::SetDisplayContrast method
IAxisKeyPad::SetDisplayState method
IAxisKeyPad::SetDisplayText method
IAxisKeyPad::SetDisplayTextRow method
IAxisKeyPadHandler interface
about IAxisKeyPadHandler interface
IAxisKeyPadHandler methods
IAxisKeyPadHandler::EnumerateKeyPads method
IAxisKeyPadHandler::GetKeyPad method
IAxisKeyPadHandler::GetKeyPadById method
IAxisKeyPadHandler::GetKeyPadByName method
Introduction
J
JOGDIAL_E_FAILED_ACTIVATE enumeration member
JOGDIAL_E_FAILED_DEACTIVATE enumeration member
JOGDIAL_E_FAILED_REQUEST enumeration member
JOGDIAL_E_FAILED_SET_PROPERTY enumeration member
JOGDIAL_E_INTERNAL enumeration member
JOGDIAL_ERROR enumeration
JOYSTICK_ACQUIRED enumeration member
JOYSTICK_ACTIVE enumeration member
JOYSTICK_AXIS enumeration
JOYSTICK_AXIS_X enumeration member
JOYSTICK_AXIS_Y enumeration member
JOYSTICK_AXIS_Z enumeration member
JOYSTICK_CONNECTED enumeration member
JOYSTICK_E_FAILED_ACTIVATE enumeration member
JOYSTICK_E_FAILED_DEACTIVATE enumeration member
JOYSTICK_E_FAILED_REQUEST enumeration member
JOYSTICK_E_FAILED_SEND enumeration member
JOYSTICK_E_FAILED_SET_CONFIGURATION enumeration member
JOYSTICK_E_FAILED_SET_COOPERATIVELEVEL enumeration member
JOYSTICK_E_FAILED_SET_PROPERTY enumeration member
JOYSTICK_E_INTERNAL enumeration member
JOYSTICK_ERROR enumeration
JOYSTICK_STATUS enumeration
K
KEYPAD_BUTTON enumeration
KEYPAD_BUTTON_0 enumeration member
KEYPAD_BUTTON_1 enumeration member
KEYPAD_BUTTON_2 enumeration member
KEYPAD_BUTTON_3 enumeration member
KEYPAD_BUTTON_4 enumeration member
KEYPAD_BUTTON_5 enumeration member
KEYPAD_BUTTON_6 enumeration member
KEYPAD_BUTTON_7 enumeration member
KEYPAD_BUTTON_8 enumeration member
KEYPAD_BUTTON_9 enumeration member
KEYPAD_BUTTON_A enumeration member
KEYPAD_BUTTON_ALT enumeration member
KEYPAD_BUTTON_B enumeration member
KEYPAD_BUTTON_C enumeration member
KEYPAD_BUTTON_D enumeration member
KEYPAD_BUTTON_E enumeration member
KEYPAD_BUTTON_F1 enumeration member
KEYPAD_BUTTON_F10 enumeration member
KEYPAD_BUTTON_F2 enumeration member
KEYPAD_BUTTON_F3 enumeration member
KEYPAD_BUTTON_F4 enumeration member
KEYPAD_BUTTON_F5 enumeration member
KEYPAD_BUTTON_F6 enumeration member
KEYPAD_BUTTON_F7 enumeration member
KEYPAD_BUTTON_F8 enumeration member
KEYPAD_BUTTON_F9 enumeration member
KEYPAD_BUTTON_MINUS enumeration member
KEYPAD_BUTTON_PLUS enumeration member
KEYPAD_BUTTON_TAB enumeration member
KEYPAD_DISPLAY_ALLIGNMENT enumeration
KEYPAD_E_FAILED_ACTIVATE enumeration member
KEYPAD_E_FAILED_DEACTIVATE enumeration member
KEYPAD_E_FAILED_REQUEST enumeration member
KEYPAD_E_FAILED_SET_BACKLIGHT enumeration member
KEYPAD_E_FAILED_SET_PROPERTY enumeration member
KEYPAD_E_INTERNAL enumeration member
KEYPAD_ERROR enumeration
L
LEFT enumeration member
License Agreement
Limitations and Considerations
Listening to Events
R
Redistribution
RIGHT enumeration member
S
Sample Code
Setup
W
What's New
Z
Zooming without Z-axis


Introduction

Introduction
AXIS Joystick SDK version 4.00

This documentation lists the functionality included in the AXIS Joystick SDK and explains how the components can be integrated and used in containing applications. The purpose of the AXIS Joystick SDK is to offer an easy to use programmer's interface for using Joysticks together with AXIS PTZ Cameras, and to easy receive input from the AXIS Keypad and AXIS Jog Dial.

AXIS Joystick SDK is compatible with both managed (.NET) and unmanaged (C++) application development. Features include being able to easily manage and configure connected devices, receiving events when a button is pressed or a joystick moved and having a joystick automatically controlling pan, tilt and zoom of an AXIS PTZ camera.

Please read the License Agreement carefully before proceeding.

Microsoft, Windows, Internet Explorer, DirectInput, Visual C++, VisualBasic, .NET, VisualStudio are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

Remarks
Topics
Name | Description
What's New |
Limitations and Considerations |
Redistribution |
License Agreement |