This is the delivery checklist for the FN SDK Final Acceptance Test meeting held July 6, 2022.
This list was created from the FN SDK Statement of work milestones as well as the derived software requirements.
1. FN FN VictoR SDK Phase 1
1.1 Project Initiation & Planning Phase (90 hrs)
- 1.1.1 Project Kickoff Meeting
- 1.1.2 Gather, elicit, clarify detailed requirements
- 1.1.3. Define risks & mitigation plan
- 1.1.4. Deliver project plan
1.2. Technical Design Phase (96 hrs)
- 1.2.1. Define the software architecture
- 1.2.2. Define the coding standards
- 1.2.3. Define the versioning & deprecation policies
- 1.2.4. Define the build & packaging pipeline (Cl)
1.3. Development Phase
1.3.1. Basic project setup & infrastructure (16 hrs)
- 1.3.1.1. Jira, Confluence, Source Code Repository
- 1.3.1.2. Setup TestRails project
- 1.3.1.3. Acquire hardware for development & QA
- 1.3.1.4. Acquire latest version of VictoR Controller Project source code
- 1.3.1.5. Acquire latest version of VictoR Interface Control Document
1.3.2. VictoR Core Library (680 hrs)
- (See below)
1.3.4. Quality Assurance
- 1.3.4.1. Integration testing with real devices
- 1.3.4.2. Define test plan
- 1.3.4.3. Test Plan Development
- 1.3.4.3.1. Feature Validation
- 1.3.4.3.2. Adhoc/Stability testing
- 1.3.4.4. Generate final test report
1.4. Delivery (90 hrs)
- 1.4.1. Package source code & files for delivery
- 1.4.2. Meetings, Documents, Knowledge Transfer
- 1.4.3. Final acceptance meeting
1. Software Development Kit
ID | Name | Description | |
---|---|---|---|
1.1 | SDK Libraries | The FN VictoR SDK shall provide developers with a series of stand-alone software libraries that enable the creation of applications that interact with the FN VictoR device. |
2. Communications
- 1.3.2.1. Set up development environment
- 1.3.2.2. Core Framework
- 1.3.2.3. Communications API
- 1.3.2.3.1. Bluetooth Low Energy Implementation
- 1.3.2.3.2. USB Implementation
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, | |
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, | |
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, | |
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, | |
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, | |
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. |
3. Platform / OS
- 1.3.2.5. Common Logging API
- 1.3.2.6. Platform/ Operating System API
- 1.3.2.6.1. Windows Support Implementation
- 1.3.2.6.2. Android OS Support Implementation
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 | Android USB | The FN VictoR SDK shall support USB communications to an FN VictoR device for Android OS application development. | |
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.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
- 1.3.2.4. Configuration API
- 1.3.2.4.2. Set default username
- 1.3.2.4.5. Set mounting orientation
- 1.3.2.4.6. Enable/Disable buzzer
- 1.3.2.4.7. Enable/Disable LEDs
- 1.3.2.4.9. Set sleep mode timer
- 1.3.2.4.10. Set communication mode (BLE, USB)
- 1.3.2.4.11. Set optic selection (Short, Long, Both)
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 VictoR Mounting Orientation Training Parameter | The Device Configuration Service shall provide the ability to get the Picatinny rail mounting position from an FN VictoR device as a value indicating a position defined with respect to the muzzle of either above (12 o’clock), below (6 o’clock), left (9 o’clock), or right (3 o’clock). | |
5.13 | Write VictoR Mounting Orientation Training Parameter | The Device Configuration Service shall provide the ability to set the Picatinny rail mounting position of an FN VictoR device to a value indicating a position defined with respect to the muzzle of either above (12 o’clock), below (6 o’clock), left (9 o’clock), or right (3 o’clock). | |
5.14 | 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.15 | 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.16 | 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.17 | 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.18 | 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.19 | 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.20 | 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.21 | 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.22 | 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.23 | 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.24 | 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.25 | 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.34 | 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.35 | 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. |
7. Unity Engine Integration
1.3.3. VictoR Platform Bindings (300 hrs)
- 1.3.3.1. Create Unity project
- 1.3.3.2. Implement Unity interface to Core Library
- 1.3.3.3. Create base prefabs & gameobjects
- 1.3.3.4. Create single example scene
- 1.3.3.5. Generate .unitypackage
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 and can be imported into 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 the Unity LTS Release 2020.3.27f1. |
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 | |
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
1.3.5. Documentation (128 hrs)
- 1.3.5.1. Generate code documentation
- 1.3.5.2. Create getting started guide
- 1.3.5.3. Create technical documentation on the SDK
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. |
Features Removed from Statement of Work/Not Supported
2. Communications
ID | Name | Description | |
---|---|---|---|
|
|
Out of scope for this phase. | |
|
|
Out of scope for this phase. | |
2.18 |
|
Simultaneous device connections implemented but not tested because of lack of devices. |
4. Device Information Service
ID | Name | Description | |
---|---|---|---|
Holster Draw not supported by firmware. | |||
|
|
| |
|
|
| |
|
|
|
5. Device Configuration Service
Not supported by firmware.
1.3.2.4.1. Set device name1.3.2.4.3. Set computer vision model (none, VictoR, LTS, SmartProtectoR)1.3.2.4.4. Set computer vision application1.3.2.4.8. Enable/Disable physical buttons
ID | Name | Description | |
---|---|---|---|
Trigger detection removed from the Statement of Work. | |||
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
|
6. Object Transfer Service
ID | Name | Description | |
---|---|---|---|
Object Transfer Service removed from Statement of Work. | |||
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
|
Test Documentation
Documentation
Meeting Information
LINK TO MEETING VIDEO HERE