GenICam

GenICam (abbreviated for Generic Interface for Cameras) is a generic programming interface for machine vision (industrial) cameras. The goal of the standard is to decouple industrial camera interfaces technology (such as GigE Vision, USB3 Vision, CoaXPress or Camera Link) from the user application programming interface (API). GenICam is administered by the European Machine Vision Association (EMVA). The work on the standard began in 2003 and the first module in GenICam, i.e., GenApi, was ratified in 2006 whereas the final module, i.e., GenTL was ratified in 2008.
Many companies in the machine vision industry have contributed to the standard. The main companies involved in drafting the GenICam standards are:
Because many companies were involved in drafting the GenICam standard, and because of the potential benefits it seemed to offer, some camera manufacturers have already started to use GenICam in their products. However, many who helped develop the standard still use a proprietary SDK. For instance FLIR uses the Spinnaker SDK (https://www.ptgrey.com/spinnaker-sdk). 
GenICam consists of three modules to help solving the main tasks in machine vision field in a generic way. These modules are:
GenICam provides supports for five basic functions: