Skinetic SDK
Platform specific requirements
Please note that the next requirements for the SDK are not only essential during the development phase but also crucial for ensuring the smooth operation of any software using the SDK on the client's platform.
Failing to fulfill these requirements may lead to potential issues or limitations in utilizing the SDK's features, impacting the end-user experience.
Therefore, it is highly recommended to thoroughly assess and fulfill these prerequisites both during development and before deployment to ensure seamless execution of the software utilizing the SDK.
Firmware requirements
Skinetic device with a firmware version below 1.3.0 and HSD mk.* devices are not compatible with the new backend that is activated by default. In order to properly connect with earlier firmware versions, it is mandatory to enable the legacy backend through the Experimental API.
Failing to set the legacy backend will result in connection error and an Invalid parameters
or Unknown message
error will be logged.
Linux
USB Mode with .rules File
To use the USB mode of our SDK on Linux, follow these steps:
Copy .rules File: Place the
70-skinetic-hid.rules
file (provided with the SDK) into the/etc/udev/rules.d/
directory. This is essential to grant the necessary permissions for the USB device to be recognized by the SDK.Apply Rule Changes: To apply the new rules, you can choose one of the following methods:
- Restart the
udev
service by running:sudo service udev restart
- Reboot your machine
- Unplug the USB device and then plug it back in
- Restart the
Connect USB Device: Now, connect Skinetic using USB. It should be detected and accessible by the SDK in USB mode.
Bluetooth Mode and Visibility
To resolve Bluetooth connection issue with Skinetic on Linux, please update your firmware with Skinetic Hub
Windows
Microsoft Visual C++ Redistributable
When using our SDK on Windows, ensure that the Microsoft Visual C++ Redistributable is installed. This is required to provide the necessary runtime components for the SDK to function correctly.
Install Redistributable: If not already installed, you can download and install the Microsoft Visual C++ Redistributable from the official Microsoft website.
Redistribute with Your Application: If you plan to distribute your application that uses our SDK, you should include the necessary Microsoft Visual C++ Redistributable package along with your application installer. This ensures that users won't face compatibility issues.
Remember to keep these points in mind to ensure a smooth experience when using our SDK on both Linux and Windows platforms.
OsX
Bluetooth Mode with btScan executable
To use the Bluetooth mode of our SDK on OSX, place the btScan
file (provided with the SDK) into the same directory as the SkineticSDK.dylib
. This is essential to find your Skinetic device.
Bluetooth Mode and Visibility
To resolve Bluetooth connection issue with Skinetic on OsX, please update your firmware with Skinetic Hub
Building
Building with g++ on Linux
Suppose you have a C++ source file named main.cpp
in your project, and you want to build it with the SDK's dynamic library:
g++ -std=c++11 -o helloworld helloworld.cpp -I/path/to/skinetic-sdk
Building with Visual C++ on Windows
If you are using Visual Studio, follow these steps to build your project:
Create a new Visual C++ project or open your existing project.
Add
main.cpp
to your project.Set the include directories:
- Right-click on the project in the Solution Explorer and select "Properties."
- Go to Configuration Properties -> C/C++ -> General.
- Add the path to the SDK include directory in "Additional Include Directories."
Set the library directories:
- Go to Configuration Properties -> Linker -> General.
- Add the path to the SDK library directory in "Additional Library Directories."
Add the SDK library to your project:
- Go to Configuration Properties -> Linker -> Input.
- Add the SDK library name (sdk.lib for Release or sdkd.lib for Debug) to "Additional Dependencies."
Build your project using Visual Studio.
Building with CMake
If you prefer using CMake to build your project, you can create a CMakeLists.txt
file with the following content:
cmake_minimum_required(VERSION 3.12)
project(my_app)
# Add your C++ source files to the project
set(SOURCES main.cpp)
# Path to the SDK
set(SDK_PATH /path/to/sdk)
# Include the SDK's header files
include_directories(${SDK_PATH}/include)
# Link against the SDK's dynamic library
add_executable(my_app ${SOURCES})
target_link_libraries(my_app ${SDK_PATH}/lib/SkineticSDK.so)
Note: Replace /path/to/sdk
with the actual path where you extracted the SDK.
Building for Android using Android Studio (Gradle)
Copy the
SkineticSDK.aar
file into your Android project'slibs
directory.Open your Android project in Android Studio.
In the
build.gradle
file (Module-levelbuild.gradle
), add the following line inside the dependencies block:
implementation files('libs/sdk.aar')
Sync your project with Gradle to include the SDK in your Android project.
Now, you can use the SDK's functionality in your Android app.
The SDK should now be integrated into your Android project, and you can access its functionality from your Java/Kotlin code.
These examples should provide you with a starting point for building your projects with the SDK on different platforms. Make sure to adjust the paths and filenames based on your specific project setup and SDK version.
Have a look at SDK API's documentation and examples for further details on using the APIs and to explore the available features and functionalities.
Experimental API
The SDK has separated API that exposes experimental features. We recommend using these experimental features only for testing or experimenting and not to rely on them when deploying your solution. They might as well be fully integrated into the main API or completely removed at some point.
Experimental Features
Legacy mode enabling
The legacy mode can be enabled to maintain backward compatibility with earlier version of the firmware. See Compatibility Matrix for more details.
Audio device handling
This feature allows introspecting available audio devices and open an audio connection to on of them. Then the haptic rendering while output the haptic signals toward the audio devices. This audioConnection() acts as a substitute to the standard connection(), afterward all other features of the API can be used to control the haptic rendering.
This feature is not available through the Android API.
ASH-fx (Audio-to-Haptic)
This feature allows to generate haptic automatically by listening to a target loopback audio device. It comes along several functions to inspect the available loopback devices. The generated haptic can be forwarded either to an audio device or through the standard Skinetic protocol.
This feature is not available through the Android API.