DRAFT
- FNSDKEXT-56Getting issue details... STATUS
1. Software Development Kit
ID | Name | Description |
---|---|---|
1.1 | SDK Libraries | The FN VictoR SDK shall provide developers with a stand-alone software library that supports the creation of applications that interact with the FN VictoR device. |
2. Communications
ID | Name | Description |
---|---|---|
2.1 | BLE Communications Interface | The FN VictoR SDK shall provide developers with a common cross-platform interface that facilitates communications with an FN VictoR device over a Bluetooth Low Energy (BLE) connection. |
2.2 | BLE Scan | The BLE Communications Interface shall support scanning and identification of nearby FN VictoR device radios. |
2.3 | BLE Scanned Devices | The BLE Communications Interface shall provide the ability to query for a list of scanned FN VictoR devices. |
2.4 | BLE Connection | The BLE Communications Interface shall provide the ability to connect to any FN VictoR device in its scanned devices list. |
2.5 | BLE Connected Devices | The BLE Communications Interface shall provide the ability to query for a list of connected FN VictoR devices. |
2.6 | BLE Disconnection | The BLE Communications Interface shall provide the ability to disconnect from any FN VictoR device in its connected devices list. |
2.7 | BLE Reconnection | The BLE Communications Interface shall attempt to reconnect to any FN VictoR device in its connected devices list if the connection to that device is lost. |
2.8 | Read BLE GATT Characteristic | The BLE Communications Interface shall provide the ability to read from GATT Characteristics of the Device Information, Device Configuration, and Object Transfer GATT Services within an FN VictoR device. |
2.9 | Write BLE GATT Characteristic | The BLE Communications Interface shall provide the ability to write to GATT Characteristics of the Device Information, Device Configuration, and Object Transfer GATT Services within an FN VictoR device. |
2.10 | Subscribe to BLE GATT Characteristic Notify | The BLE Communications Interface shall provide the ability to subscribe to notifications from supported GATT Characteristics of the Device Information, Device Configuration, and Object Transfer GATT Services within an FN VictoR device. |
2.11 | Subscribe to BLE GATT Characteristic Indicate | The BLE Communications Interface shall provide the ability to subscribe to indications from supported GATT Characteristics of the Device Information, Device Configuration, and Object Transfer GATT Services within an FN VictoR device. |
2.12 | Acknowledge BLE GATT Characteristic Indicate | The BLE Communications Interface shall provide the ability to acknowledge received indications from supported GATT Characteristics of the Device Information, Device Configuration, and Object Transfer GATT Services within an FN VictoR device. |
2.13 | USB Communications Interface | The FN VictoR SDK shall provide developers with a common cross-platform interface that facilitates communications with an FN VictoR device over a Universal Serial Bus (USB) connection. |
2.14 | USB Connected Devices | The USB Communications Interface shall provide the ability to query for a list of connected FN VictoR devices. |
2.15 | Read USB Characteristic Equivalent | The USB Communications Interface shall provide the ability to read from the USB-equivalent characteristic data structures of the Device Information, Device Configuration, and Object Transfer USB-equivalent service interfaces within an FN VictoR device. |
2.16 | Write USB Characteristic Equivalent | The USB Communications Interface shall provide the ability to write to the USB-equivalent characteristic data structures of the Device Information, Device Configuration, and Object Transfer USB-equivalent service interfaces within an FN VictoR device. |
2.17 | Single Device Support | The FN VictoR SDK shall support either BLE or USB communications to a single device, depending on which communications mode the device is currently configured to use. |
2.18 |
|
|
3. Platform / OS
ID | Name | Description |
---|---|---|
3.1 | Windows BLE | The FN VictoR SDK shall support BLE communications to an FN VictoR device for Windows OS application development. |
3.2 | Windows USB | The FN VictoR SDK shall support USB communications to an FN VictoR device for Windows OS application development. |
3.3 | Android BLE | The FN VictoR SDK shall support BLE communications to an FN VictoR device for Android OS application development. |
3.4 |
|
|
3.5 | Windows Version Target | The FN VictoR SDK shall support development for applications targeting Windows 10. |
3.6 | Android Version Target | The FN VictoR SDK shall support development for applications targeting Android 10. |
4. Device Information Service
ID | Name | Description |
---|---|---|
4.1 | Device Information Service | The FN VictoR SDK shall provide developers with a multi-platform, multi-protocol Device Information Service that allows for reading and writing of device information characteristics to and from the Device Information Service within an FN Victor device over a common interface. |
4.2 | Read Bluetooth Device ID | The Device Information Service shall provide the ability to read the Bluetooth device identifier of an FN VictoR device. |
4.3 | Read USB Device ID | The Device Information Service shall provide the ability to read the USB device identifier of an FN VictoR device. |
4.4 | Read Firmware Version | The Device Information Service shall provide the ability to read the firmware version of an FN VictoR device. |
4.5 | Read BLE Protocol Version | The Device Information Service shall provide the ability to read the highest version of the BLE protocol supported by an FN VictoR device. |
4.6 | Read USB Protocol Version | The Device Information Service shall provide the ability to read the highest version of the USB protocol supported by an FN VictoR device. |
4.7 | Read Trigger Detection Algorithm Version | The Device Information Service shall provide the ability to read the highest supported version of the trigger detection algorithm supported by an FN VictoR device. |
4.8 | Read Trained Neural Network Model File | The Device Information Service shall provide the ability to read the name of the trained TensorFlow Neural Network model file that is currently loaded in an FN VictoR device. |
4.9 | Read Next Shot ID | The Device Information Service shall provide the ability to read the ID of the next shot to be used by an FN VictoR device. |
4.10 | Read Current Battery Level | The Device Information Service shall provide the ability to read the current battery voltage percentage of an FN VictoR device. |
4.11 | Notify Current Battery Level | The Device Information Service shall provide the ability to receive current battery voltage percentage notifications from an FN VictoR device. |
4.12 | Read Last Holster Draw Timestamp | The Device Information Service shall provide the ability to read the last holster draw timestamp from an FN VictoR device. |
4.13 | Read Last Holster Draw Total Draw Time | The Device Information Service shall provide the ability to read the last holster draw total draw time from an FN VictoR device. |
4.14 | Notify Last Holster Draw Information | The Device Information Service shall provide the ability to receive last holster draw information notifications (timestamp and total draw time fields) from an FN VictoR device. |
4.15 | Read RAM Utilization | The Device Information Service shall provide the ability to read the percentage of volatile memory (RAM) currently in use by an FN VictoR device. |
4.16 | Read eMMC Utilization | The Device Information Service shall provide the ability to read the percentage of non-volatile memory (eMMC) already used by an FN VictoR device. |
4.17 | Read CPU Utilization | The Device Information Service shall provide the ability to read the utilization percentage of all four CPU cores in an FN VictoR device. |
5. Device Configuration Service
ID | Name | Description |
---|---|---|
5.1 | Device Configuration Service | The FN VictoR SDK shall provide developers with a multi-platform, multi-protocol Device Configuration Service that allows for reading and writing of device configuration parameters to and from an FN Victor device over a common interface. |
5.2 | Read Optical Path Video Parameter | The Device Configuration Service shall provide the ability to get the optical path video parameter from an FN VictoR device as a value indicating short-range, long-range, or auto-range. |
5.3 | Write Optical Path Video Parameter | The Device Configuration Service shall provide the ability to set the optical path video parameter (optical path field) of an FN VictoR device to a value indicating short-range, long-range, or auto-range. |
5.4 | Read Bluetooth Link General System Parameter | The Device Configuration Service shall provide the ability to get the Bluetooth link general system parameter from an FN VictoR device as a value indicating disabled or enabled. |
5.5 | Write Bluetooth Link General System Parameter | The Device Configuration Service shall provide the ability to set the Bluetooth link general system parameter of an FN VictoR device to a value indicating disable or enable. |
5.6 | Read System LED General System Parameter | The Device Configuration Service shall provide the ability to get the system LED general system parameter from an FN VictoR device as a value indicating disabled or enabled. |
5.7 | Write System LED General System Parameter | The Device Configuration Service shall provide the ability to set the system LED general system parameter of an FN VictoR device to a value indicating disable or enable. |
5.8 | Read Buzzer General System Parameter | The Device Configuration Service shall provide the ability to get the buzzer general system parameter from an FN VictoR device as as a value indicating disabled or enabled. |
5.9 | Write Buzzer General System Parameter | The Device Configuration Service shall provide the ability to set the buzzer general system parameter of an FN VictoR device to a value indicating disable or enable. |
5.10 | Read System Time | The Device Configuration Service shall provide the ability to get the system time from an FN VictoR device as a Unix Epoch formatted timestamp. |
5.11 | Write System Time | The Device Configuration Service shall provide the ability to set the system time of an FN VictoR device to a Unix Epoch formatted timestamp. |
5.12 | Read Aimpoint Offsets Training Parameter | The Device Configuration Service shall provide the ability to get the aimpoint offsets training parameter from an FN VictoR device as a column offset +/- the maximum image width and a row offset +/- the maximum image height. |
5.13 | Write Aimpoint Offsets Training Parameter | The Device Configuration Service shall provide the ability to set the aimpoint offsets training parameter of an FN VictoR device to a column offset +/- the maximum image width and a row offset +/- the maximum image height. |
5.14 | Read Shot Rejection Angle Training Parameter | The Device Configuration Service shall provide the ability to get the shot rejection angle training parameter from an FN VictoR device as an angle between 0 and 90 degrees. |
5.15 | Write Shot Rejection Angle Training Parameter | The Device Configuration Service shall provide the ability to set the shot rejection angle training parameter of an FN VictoR device to an angle between 0 and 90 degrees. |
5.16 | Read System Power Command | The Device Configuration Service shall provide the ability to get whether the last system power command sent to an FN VictoR device was to power off or to reboot system. |
5.17 | Write System Power Command | The Device Configuration Service shall provide the ability to send a system power command to an FN VictoR device indicating it should power off or reboot system. |
5.18 | Read Vision System Command | The Device Configuration Service shall provide the ability to get whether the last vision system command sent to an FN VictoR device was a “target recognition system control” command or a “get a shot clip” command. |
5.19 | Write Vision System Command | The Device Configuration Service shall provide the ability to send a vision system command to an FN VictoR device as either a “target recognition system control” command or a “get a shot clip” command. |
5.20 | Read Target Recognition System Control Vision System Command Data | The Device Configuration Service shall provide the ability to get the last vision system command data sent to an FN VictoR device as either a value indicating “interface engine control stop” or “interface engine control start” if the command was a “target recognition system control” command. |
5.21 | Read Shot Clip Vision System Command Data | The Device Configuration Service shall provide the ability to get the last vision system command data sent to an FN VictoR device as a value indicating the shot identifier if the command was a “get a shot clip” command. |
5.22 | Write Target Recognition System Vision System Command Data | The Device Configuration Service shall provide the ability to set the vision system command data sent to an FN VictoR device as either a value indicating “interface engine control stop” or “interface engine control start” if the command was a “target recognition system control” command. |
5.23 | Write Shot Clip Vision System Command Data | The Device Configuration Service shall provide the ability to set the vision system command data sent to an FN VictoR device as a value indicating the shot identifier if the command was a “get a shot clip” command. |
5.24 | Read Trigger Threshold Value Trigger Detection Parameter | The Device Configuration Service shall provide the ability to get the trigger threshold value trigger detection parameter from an FN VictoR device as a value between 0 and Tmax. |
5.25 | Write Trigger Threshold Value Trigger Detection Parameter | The Device Configuration Service shall provide the ability to set the trigger threshold value trigger detection parameter of an FN VictoR device to a value between 0 and Tmax. |
5.26 | Read Maximum Trigger Threshold Value Trigger Detection Parameter | The Device Configuration Service shall provide the ability to get the maximum trigger threshold value (Tmax) trigger detection parameter from an FN VictoR device as a value between 0 and 65535. |
5.27 | Write Maximum Trigger Threshold Value Trigger Detection Parameter | The Device Configuration Service shall provide the ability to set the maximum trigger threshold value (Tmax) trigger detection parameter of an FN VictoR device to a value between 0 and 65535. |
5.28 | Read Trigger Impact Window Trigger Detection Parameter | The Device Configuration Service shall provide the ability to get the trigger impact window trigger detection parameter from an FN VictoR device as a value between 1 and 99 milliseconds. |
5.29 | Write Trigger Impact Window Trigger Detection Parameter | The Device Configuration Service shall provide the ability to set the trigger impact window trigger detection parameter of an FN VictoR device to a value between 1 and 99 milliseconds. |
5.30 | Read Post-Trigger Impact Window Trigger Detection Parameter | The Device Configuration Service shall provide the ability to get the post-trigger impact window trigger detection parameter from an FN VictoR device as a value between 0 and 65535 milliseconds. |
5.31 | Write Post-Trigger Impact Window Trigger Detection Parameter | The Device Configuration Service shall provide the ability to set the post-trigger impact window trigger detection parameter of an FN VictoR device to a value between 0 and 65535 milliseconds. |
5.32 | Read Detection Threshold Target Recognition System Parameter | The Device Configuration Service shall provide the ability to get the detection threshold target recognition system parameter from an FN VictoR device as a percentage between 0 and 100. |
5.33 | Write Detection Threshold Target Recognition System Parameter | The Device Configuration Service shall provide the ability to set the detection threshold target recognition system parameter of an FN VictoR device to a percentage between 0 and 100. |
6. Object Transfer Service
ID | Name | Description |
---|---|---|
6.1 | Object Transfer Service | The FN VictoR SDK shall provide developers with a multi-platform, BLE protocol Object Transfer Service that allows for reading and writing of binary objects including video, images, and vision system model files to and from an FN Victor device over a common interface. |
6.2 | Write Command PDU | The Object Transfer Service shall provide the ability to write Object Transfer Command PDUs to an FN VictoR device |
6.3 | Read Response PDU | The Object Transfer Service shall provide the ability to read Object Transfer Response PDUs from an FN VictoR device. |
6.4 | Notify Response PDU | The Object Transfer Service shall provide the ability to receive notifications of incoming Object Transfer Response PDUs from an FN VictoR device. |
6.5 | File Read Command Class | The Object Transfer Service shall support the File Read Command Class of object transfer commands. |
6.6 | Write File Command | The Object Transfer service shall provide the ability to write the Read File Object Transfer Command to an FN VictoR device with a specified byte offset, number of bytes to read, and file name to read from the device. |
6.7 | Read File Command Data | The Object Transfer service shall provide the ability to read the Read File Object Transfer Command Data from an FN VictoR device which contains the requested file contents in binary format. |
6.8 | Notify File Command Data | The Object Transfer service shall provide the ability to receive Read File Object Transfer Command Data notifications from an FN VictoR device which contains the requested file contents in binary format. |
7. Unity Engine Integration
ID | Name | Description |
---|---|---|
7.1 | Unity Integration | The FN VictoR SDK shall come bundled with a Unity package that includes a reference implementation of how to use the FN SDK in a Unity project. |
7.2 | Library Plug-in | The Unity package shall include the FN VictoR SDK library as a managed plug-in. |
7.3 | Unity/SDK Interface | The Unity package shall include Scripts that provide Unity developers with an interface to the various classes, methods, and utilities of the FN VictoR SDK library. |
7.4 | Unity/SDK Prefabs | The Unity package shall include Prefabs with pre-configured GameObjects that use the Scripts of the Unity/SDK Interface to provide a developer-friendly mechanism for interacting with an FN VictoR device while developing in the Unity Editor. |
7.5 | Example Unity Scene | The Unity package shall include a scene that utilizes the Prefabs of the Unity/SDK Interface to provide developers with a “ready-to-go” example illustrating all of the Prefabs needed in a scene as well as any configuration parameters that need to be configured for successful FN VictoR device interaction. |
7.6 | Unity Version Target | The Unity package shall support development of Unity projects targeting Unity 2020.3 LTS. |
8. Logging
ID | Name | Description |
---|---|---|
8.1 | Logging System | The FN VictoR SDK shall provide developers with a multi-platform Logging System that aides in the development, debugging, and monitoring of interactions between their applications and the SDK, and interactions between the SDK and the FN VictoR device. |
8.2 | Logging Levels | The Logging System shall provide DEBUG, INFO, WARN, ERROR, and FATAL log levels. |
8.3 | DEBUG Log Level | The DEBUG Log Level shall provide information about SDK and/or FN VictoR device behavior that may be useful to diagnose or debug issues. |
8.4 | INFO Log Level | The INFO Log Level shall provide information about SDK and/or FN VictoR device events that would be considered useful knowledge for general purposes. |
8.5 | WARN Log Level | The WARN Log Level shall provide information about SDK and/or FN VictoR device events that may be an indication of a problem with SDK or device interaction. |
8.6 | ERROR Log Level | The ERROR Log Level shall provide information about SDK and/or FN VictoR device errors that indicate a definite but potentially recoverable problem with SDK or device interaction. |
8.7 | FATAL Log Level | The FATAL Log Level shall provide information about SDK and/or FN VictoR device errors that indicate a critical problem with SDK or device interaction that results in application termination. |
8.8 | Logging Targets | The Logging System shall support logging to the standard output and standard error streams, or to a file. |
9. Documentation
ID | Name | Description |
---|---|---|
9.1 | Code Documentation | The FN VictoR SDK shall come with a fully documented API for developers |
9.2 | Technical Documentation | Unity shall provide FN with technical documentation on the design of the FN VictoR SDK that details design choices, outlines the software architecture, and illustrates intended use cases. |
9.3 | Getting Started Guide | Unity shall provide FN with a getting started guide that explains how to set up a Windows or Android development project and integrate it with the FN VictoR SDK. |