Definitions / Abbreviations / Acronyms
Term | Description |
---|---|
AAR | Android Archive |
ACM | Abstract Control Module |
API | Application Programming Interface |
AAR | Android Archive |
BLE | Bluetooth Low-Energy |
CDC | Communications Device Class |
FN | Fabrique Nationale |
ICD | Interface Control Document |
SDK | Software Development Kit |
OS | Operating System |
USB | Universal Serial Bus |
UWP | Universal Windows Platform |
...
The diagram in figure 1 below illustrates the high-level architecture of the SDK and its relationship to applications that are developed with it. Blocks highlighted in white and blue indicate implementations that Unity provides. Blocks highlighted in grey are presented for illustration purposes only, and are not implemented provided by Unity.
...
Project Structure
...
Language: C#
Project Type: .NET Standard 2.0 Library
Dependencies:
Reason:
A .NET Standard 2.0 library allows for easy integration with cross-platform development frameworks (including Unity and Xamarin) that target the .NET API.
Since the VictoR Communications library must be .NET Standard 2.0, it makes sense to align this library to the same project type for ease of integration.
VictoR Communications Library
Language: C#
Project Type: .NET Standard 2.0 Library with
Dependencies:
The WinRT API Pack (accessed through the Windows SDK Contracts NuGet package) provides access to the Windows SDK’s BLE and USB libraries, and still supports integration into Unity (or other .NET projects).
Reason:
A .NET Standard 2.0 library allows for easy integration with cross-platform development frameworks (including Unity and Xamarin) that target the .NET API.
The WinRT API Pack (accessed through the Windows SDK Contracts NuGet package) provides access to the Windows SDK’s BLE libraries, and still supports integration into Unity (or other .NET projects)Some dependencies require that the project be a .NET Standard 2.0 library.
Note: A Unity project that uses this library must target UWP. Windows applications can target UWP or standard Win32.
Android
VictoR Core Library
Language: Java
Project Type: AAR Library
Dependencies:
Reason:
A Java-based AAR library can be integrated with Unity and
...
bound to C# using Unity provided helper classes.
Since the VictoR Communications library must be Java, it makes sense to align this library to the same project type for ease of integration.
VictoR Communications Library
Language: Java
Project Type: AAR LibraryReason:
Java is the only language that the Android SDK supports for access to its BLE libraries. Dependencies:
USB Serial for Android Library
The USB Serial for Android Library provides a high-level abstraction around the Android SDK’s low-level USB API for virtual serial COM port communication.
Reason:
A Java-based AAR library can be integrated with Unity and bound to C# using Unity provided helper classes.
Java is the only language that the Android SDK supports for access to its BLE and USB libraries.
...
Library Breakdown
VictoR Core
...
Bluetooth Low-Energy (BLE)
Universal Serial Bus (USB) via Communications Device Class (CDC ) Abstract Control Model (ACM)
The VictoR device presents as a virtual serial COM port that the VictoR Communications library utilizes to communicate via the proprietary protocol established by the VictoR firmware ICD.
VictoR Android Communications
The VictoR Communications Android Library provides Android OS-specific implementations of the VictorDeviceManager and VictorDevice interfaces for the following communications protocols:
Bluetooth Low-Energy (BLE)
Universal Serial Bus (USB) via Communications Device Class (CDC ) Abstract Control Model (ACM)
The VictoR device presents as a virtual serial COM port that the VictoR Communications library utilizes to communicate via the proprietary protocol established by the VictoR firmware ICD.
VictoR Core and VictoR Communications
...
Supported Build Types
UWP
Android
Supported Libraries
Windows
VictoR Communications
VictoR Core
Android
VictoR Communications
A C# binding is provided in the VictorAndroidBleDeviceManager VictorAndroidDeviceManager script that can be used with the Windows VictoR Core library.
VictoR Core
This is included and supported, albeit not necessary to use directly. To use this, the developer would need to build a C# binding around it using Unity’s Android JNI Module in the same manner as the VictorAndroidBleDeviceManager VictorAndroidDeviceManager script.
The Assets folder houses example Scripts, PreFabs, and GameObjects built to demonstrate the FN SDK’s functionality. GameObjects utilize Scripts implementing various features from the VictoR Core Library to provide example use cases. Fields within these Scripts are exposed to enable users to make their own modifications. PreFabs of these GameObjects provide preconfigured assets that can be reused across Scenes.
A Third Party Notice is included to indicate any third party libraries used by the Unity Package.
A License file will be included to indicate any relevant licensing information dealing with the FN SDK, the Unity Package, and any third party libraries used.
...