Related Products: BVMS SDK, Cameo SDK, BVMS
Analyzing BVMS systems interaction with BVMS SDK based application is a challenging task. One needs to determine if the issue is based on wrong implementation of the BVMS SDK functionality, wrong programming practices, functionality and runtime behavior of BVMS system with SDK functionality or BVMS SDK issues. In order to troubleshoot BVMS SDK or Cameo SDK application support needs the following information and logging.
Please prove the following information to support.
1. Detailed description of the expected behavior of the SDK functionality.
2. Detailed description of the actual behavior of the SDK functionality.
3. SDK Components
What type is the standalone SDK application (based on ClientSDK, ServerSDK, or CameoSDK) and on which machine is it running?
Are there additionally client scripts, server scripts or workstation startup scripts?
4. SDK Interactions
Do SDK components interact with remote Operator Clients?
Do SDK components interact with the Operator Client UI?
Do SDK components control devices?
Do SDK components link to 3rdParty devices or applications?
Which shared resources are accessed by SDK actions? (Dome cameras, AMG, Operator Client UI)
Do SDK components interact with an unreliable environment? (Unstable network, offline devices, offline PCs, etc.)
Do SDK components properly handle offline situations? (offline devices, configuration changes, etc.)
Please provide source code and/or Log files
The optimal approach is to provide both source code and logging for the problematic BVMS SDK application. If it is not possible to provide the code, we will start the troubleshooting process based only on the logging.
Provide a little sample application that illustrates the BVMS SDK issue and list the reproduction steps.
Add log outputs to the SDK application functionality. The logs should illustrate which BVMS SDK functionality was called at which time. Provide the logs to support.
List of Typical Mistakes that are often seen when troubleshooting BVMS / Cameo SDK based applications
Use of Thread. Sleep() in event handlers - Consequence: loss of events in customer SDK application.
Implementations that are not thread safe - Consequence: unexpected SDK application effects
Unintentional introduction of multithreading issues by using timers - Consequence: unexpected SDK application effects
Application without "speed control" - Consequence: operator overload in case of high event frequency
Lack of configuration change handling - Consequence: data inconsistencies in SDK application (access to no longer existing devices)
Lack of traces/logging in SDK code - Consequence: not detected malfunctions and troubleshooting difficulties
Lack of error tolerance in SDK code - Consequence: unhandled exceptions in SDK application / script
Lack of exception handling - Consequence: SDK application crashes