Categories
Knowledge Support Support exacqVision Client Categories Products

Using External USB DVD Drives with an exacqVision System

External USB DVD drives can be connected to an exacqVision system if they are compatible with the operating system (Windows 7 or Ubuntu 10.04 Linux). Although third-party USB DVD drives are not specifically supported or certified for use with exacqVision systems, Samsung SE-S084D/TSBS and LG GP08NU6B DVD drives have been successfully used for this purpose.

<br>

Categories
Knowledge Support Support exacqVision Server Categories Products

Windows-based ExacqVision Systems Must Record Directly to Fixed Drives

The Windows version of ExacqVision Server must record directly to drives that Windows identifies as fixed drives, such as iSCSI drives.

Network-attached storage (NAS), or mapped drives, cannot be used for direct recording because the ExacqVision system cannot detect whether the drives are being used for other purposes. Such conflicts can cause recording issues on the ExacqVision system.

However, you can archive to NAS (network-attached storage) drives. More information can be found in the ExacqVision User Manual, which can beĀ downloaded here.

<br>

Categories
Knowledge Support Support exacqVision Client Categories Products

Lower Frame Rates Displayed than Expected

At times, the number of frames per second displayed on an exacqVision system might be lower than expected. This can be caused by network bandwidth, the processor, or the display driver. To determine the cause of the issue, click the kB/s indicator in the exacqVision Client status bar multiple times to cycle through the following information:

  1. kB/s (total bandwidth)
  2. rfps (received frames per second)
  3. dfps (decoded frames per second)
  4. fps (displayed frames per second)

<br>

Take note of each parameter and compare them as follows:

  • If rfps is lower than the configured frame rate on the server, the network bandwidth is limiting the frame rate displayed.
  • If dfps is lower than rfps, the processor is limiting the frame rate.
  • If fps is lower than dfps, the display driver is the limiting factor.
  • If fps equals the configured frame rate on the server, exacqVision is displaying every encoded frame.
Categories
Knowledge Support Support exacqVision Client Categories Products

How to: Using exacqVision API Network I/O

Overview

This article explains the usage of basic and advanced I/O functionality in exacqVision API (evAPI).

<br>

Usage

The network I/O functions provided in evAPI are required to send requests and receive responses from an exacqVision server.  After initializing the API instance and connecting to a server, the I/O functions are necessary to maintain communication with the server.  If functions such as EVAPI_Select, EVAPI_Send and EVAPI_Recv are not used, the API will not send or receive any data with the server.

When using evAPI network I/O in a multi-threaded environment, it is necessary to put a mutex around the network I/O functions and any other API function calls on a particular API instance.  This ensures the integrity of the underlying read and write buffers.  The mutex is not necessary for API function calls in the callback because the callback is executed from within EVAPI_Select and EVAPI_Read.  See the advanced I/O example below for more information.

<br>

Basic Network I/O

The purpose of the basic network I/O functionality provided with evAPI is to enable the end user to send and receive data with an exacqVision server without worrying about the underlying network details.

Functions:

EVAPI_Select: initiates a send and receive on the underlying network socket.  The timeout value is the maximum amount of time the function will block before returning, although generally the function will return sooner.  This function needs to be called frequently to ensure the receipt and sending of data with the server.

EVAPI_SetTimeout: specifies the blocking timeout in milliseconds for EVAPI_Login, EVAPI_SearchCamera, and EVAPI_SearchCameraMulti.

EVAPI_CreateWindow (Windows only): creates a window with a window procedure that receives messages on socket status via WSAAsyncSelect and provides a drawing surface for subscribed video streams.  The messages received on socket status act as an I/O pump and don’t require the use EVAPI_Select when subscribed to a video stream.  To insure proper behavior, call this function right before subscribing to a video stream as in the window sample in the SDK.  If there is a delay in calling EVAPI_CreateWindow and subscribing to a video stream, it will be necessary to call EVAPI_Select once to get the I/O pump started.

<br>

Example:

Function Main

Intialize evAPI (EVAPI_Init)

Connect to server (EVAPI_Connect)

// No need for select call when using the blocking login since it will be called // internally.

Login to server (EVAPI_Login)

            While application running

              // If EVAPI_Select is not called after the EVAPI_PTZGotoPreset, then

// the request will sit in the write buffer

Make request to server (EVAPI_PTZGotoPreset) 

Perform network I/O (EVAPI_Select)

            End while

End Function Main

<br>

Advanced Network I/O

The purpose of the advanced network I/O functions provided with evAPI is to allow greater control over sending and receiving on the network socket.

<br>

Functions:

EVAPI_GetSocket returns the socket that evAPI is using to send and receive data from the exacqVision server.

EVAPI_IsWriting returns the amount of data in the buffer to be written to the socket.

EVAPI_Recv calls socket function recv on the evAPI socket and reads the data into a buffer in the API instance.  Execution of this function will result in parsing of the incoming data prior to the function returning.  The callback will be executed for any relevant data.

EVAPI_Send calls socket function send on the evAPI socket and sends data in the write buffer of the API instance.

EVAPI_SetNonBlocking sets the blocking status of the I/O functions.  This currently affects only EVAPI_Login.

<br>

Example:

Function evCallback(Parameters: ParamTypeparam, int value, Payload* payload, size_tlength )

Switch to handle ParamTypes

Case Login

            Set login to true

End Case

Case Config

// Not necessary to mutex since there is a mutex around the read call

Make evAPI function call

End Case

End Switch

End Function evCallback

Function Main

Intialize evAPI (EVAPI_Init)

Set callback to Function evCallback (EVAPI_SetCallback)

Set to non-blocking (EVAPI_SetNonBlocking)

Connect to server (EVAPI_Connect)

Login to server (EVAPI_Login)

// If EVAPI_Select is not called after the EVAPI_Login, then the

// request will sit in the write buffer

Perform network I/0 (EVAPI_Select)

// Have to wait for the login to succeed or for a timeout before continuing

            While not login or not timeout

            End While

            If not login

                        Goto End Function Main

            End if

   Spawn I/O Thread

            While application running

Lock mutex

                          Call an evAPI function

Unlock mutex

            End while

End Function Main

I/O Thread

            Create empty read set of sockets (fd_set read)

            Create empty write set of sockets (fd_set write)

            Get underlying API socket (EVAPI_GetSocket)

            While thread running

If there is data in the write buffer (EVAPI_IsWriting)

            Add the socket to the write set (FD_SET)

End if

// Always add the socket to the read set

Add the socket to the read set (FD_SET)

Check to see if socket is ready to read and/or write (select)

If the socket is in the write set (FD_ISSET)

   Lock mutex

            Write the data (EVAPI_Write)

   Unlock mutex

End if

If the socket is in the read set (FD_ISSET)

   Lock mutex

            Read the data (EVAPI_Read)

   Unlock mutex

End if

            End while

End I/O Thread

<br>

How-to-Using-exacqVision-API-Network-IO.pdf
Categories
Knowledge Support Support exacqVision Client Categories Products

Canon IP Camera With ONVIF Does Not Connect

The first time you use exacqVision Client to connect to a Canon IP camera using ONVIF, the connection might not be established successfully. If you see a status of Connecting for over a minute when you try to connect to the camera on the IP Cameras page, change the setting method using the camera’s web interface.

Note: The system log might also display a message such as “The security token could not be authenticated or authorized” if this situation occurs.

To change the camera’s setting method, complete the following steps:

  1. Open the camera’s web interface.
  2. Select Setting Page.
  3. In the pop-up window, enter the User Name and Password and then click OK.
  4. Select Date and Time from the panel on the left.
  5. Select Date and Time Settings.
  6. From the Setting Method drop-down list, select Synchronize With Computer Time.
  7. Select Maintenance from the panel on the left.
  8. Next to the Reboot entry, click Exec. Click OK in the pop-up menu to reboot.
  9. Try again to connect to the camera on the IP Cameras page in exacqVision Client.

<br>

Canon-IP-Camera-With-ONVIF-Does-Not-Connect.pdf
Categories
Knowledge Support Support exacqVision Client Categories Products

MJPEG not supported on ACTi TCM and KCM cameras

Although ACTi TCM and KCM camera models allow dual streaming in MJPEG, MPEG-4, and H.264 video formats, they do not support motion detection in MJPEG format. Thus, the MJPEG option is not available on the Camera Setup page for those models in exacqVision Client.

<br>

MJPEG-not-supported-on-ACTi-TCM-and-KCM-cameras.pdf