# Mimic: Main Page

## Overview
The mimic library is based on the _GenICam reference implementation_ and get simplified access 
to GenICam based cameras. The interface is available in following programming languages:

* C
* CLR/C#

The implementation encapsulates and simplify the module structure defined in the
GenICam standard definition ([emva.org](https://www.emva.org/standards-technology/genicam/)).
On the system available GenTL producers can be detected through the [Mimic](@ref mimic::Mimic) 
class and opened with the [Mimic_Producer](@ref mimic::Mimic_Producer) class.

## How to Start
Applications using the mimic library can detect GenTL producers on the system with the 
[Mimicr](@ref mimic::Mimic) class. The class scans for available GenTL producers and gives
additional information about it. 
A producer could be opened by the [openProducer](@ref mimic::Mimic::openProducer) method which 
returns a [Mimic_Producer](@ref mimic::Mimic_Producer) object. Alternatively, a 
[Mimic_Producer](@ref mimic::Mimic_Producer) object can be created by its constructor giving 
a GenTL producer (cti) as parameter.

The application can scan for cameras available on a [Mimic_Producer](@ref mimic::Mimic_Producer) object.
For each detected camera, additional information is available and finaly the 
[openCamera](@ref mimic::Mimic_Producer::openCamera) method can be used to create a [Mimic_Camera](@ref mimic::Mimic_Camera) 
object which opens a connection to a camera.
The [Mimic_Camera](@ref mimic::Mimic_Camera) object has a public attribute [nodeMap](@ref mimic::Mimic_Camera::nodeMap) of
the type [Mimic_NodeMap](@ref mimic::Mimic_NodeMap) which could be used to configure the device.
After configuration, the acquisition can be started and data acquired which are returned as 
[Mimic_Buffer](@ref mimic::Mimic_Buffer) object.


For each supported language simple examples are provided in a separated repository.
