Silicon Software SDK

Silicon Software图像采集卡简介

介绍功能强大且灵活的microEnable Frame Grabber系列软件开发套件(SDK)。

在某些情况下,不同的参数将用于不同的图像采集卡设置(即彩色或灰度采集卡)。这些差异可以在相应相机制造商的软件手册中找到。

microEnable帧接收器系列是其基于FPGA技术的现代图像采集卡。

在Silicon Software图像采集卡上,基本上有3种可能性可以使用某些功能集(通过applet表示)。

  • 可以加载和访问预定义的applet(称为Acquisition Applet or SmartApplets);
  • 可以使用VisualApplets(称为VA Applet)创建和访问具有特定功能的自定义applet 。

一个主要区别是:

  • 对于AcquisitionApplets / SmartApplets,处理.dll文件;
  • 对于VA Applets,处理.hap文件;

初始化抓帧器


使用microEnable之前,必须先初始化抓帧器。初始化必须通过启动程序来处理。初始化与设备的连接时,将建立驱动程序并初始化所有必要的内部数据结构。


Fg_getParameter()或Fg_getParameterEx()会通知已设置的特殊值。

释放帧捕获器


完成采集或发生错误后,必须使用Fg_FreeGrabber()释放帧捕获器资源。




抓取帧并显示的步骤

  1. 搜索连接到电脑中的硬件板子数目,并选择一个将要被初始化的帧捕捉器编号。

  2. 通过帧捕捉器型号编号获取Applet。

    必须在配置特殊参数之前创建并选择正确的applet。必须加载Applet以初始化帧抓取器。可以通过逻辑数字选择几种可能可用的图像采集卡之一。对于应用于采集的每个采集卡,必须加载一个applet。采集卡1的变量号必须为0,采集卡2的变量号必须为1,依此类推。

  3. 初始化帧抓取器

  4. 设置参数

  5. 创建显示窗口并设置窗口缓冲区

  6. 计算缓冲区大小并分配内存

  7. 开始抓取

  8. 循环抓取当前帧,并显示当前帧

  9. 释放资源:关闭显示窗口,停止抓帧,释放内存,释放帧捕捉器

sisoboards.h

板子类型的常数定义。

定义的板子类型
siso_board_type
enum siso_board_type {
   
    PN_MICROENABLE = 0xa1,                             /**< microEnable I */
    PN_MICROENABLEII = 0xa2,                           /**< microEnable II */
    PN_MICROENABLE3I = 0xa3,                           /**< microEnable III */
    PN_MICROENABLE3IXXL = 0xa31,                       /**< microEnable III-XXL */

    PN_MICROENABLE4AD1CL = 0xa40,                      /**< microEnable IV AD1-CL */
    PN_MICROENABLE4BASE =
        PN_MICROENABLE4AD1CL,                          /**< \deprecated old name for PN_MICROENABLE4AD1CL, maintained only for source compatibility */
    PN_MICROENABLE4BASEx4 = 0xa43,                     /**< \deprecated name for a prototype never used*/
    PN_MICROENABLE4AD4CL = 0xa42,                      /**< microEnable IV AD4-CL */
    PN_MICROENABLE4VD1CL = 0xa41,                      /**< microEnable IV VD1-CL */
    PN_MICROENABLE4FULLx1 =
        PN_MICROENABLE4VD1CL,                          /**< \deprecated old name for PN_MICROENABLE4VD1CL, maintained only for source compatibility */
    PN_MICROENABLE4VD4CL = 0xa44,                      /**< microEnable IV VD4-CL */
    PN_MICROENABLE4FULLx4 =
        PN_MICROENABLE4VD4CL,                          /**< \deprecated old name for PN_MICROENABLE4VD4CL, maintained only for source compatibility */
    PN_MICROENABLE4AS1CL = 0xa45,                      /**< microEnable IV AS1-CL */
    PN_MICROENABLE4VQ4GE = 0xe44,                      /**< microEnable IV VQ4-GE */
    PN_MICROENABLE4GIGEx4 =
        PN_MICROENABLE4VQ4GE,                          /**< \deprecated old name for PN_MICROENABLE4VQ4GE, maintained only for source compatibility */
    PN_MICROENABLE4AQ4GE = 0xe42,                      /**< microEnable IV AQ4-GE */
    PN_MICROENABLE4_H264CLx1 = 0xb41,                  /**< kappa h264 Fujitsu MB86H51 */
    PN_MICROENABLE4_H264pCLx1 = 0xb42,                 /**< kappa h264 Fujitsu MB86H46A */

    PN_PX100 = 0xc41,                                  /**< PixelPlant PX100 */
    PN_PX200 = 0xc42,                                  /**< PixelPlant PX200 */
    PN_PX210 = 0xc43,                                  /**< PixelPlant PX210-CL */
    PN_PX300 = 0xc44,                                  /**< PixelPlant PX300-CxP */

    PN_MICROENABLE5A1CXP4 = 0xa51,                     /**< microEnable 5 A01-CXP */
    PN_MICROENABLE5A1CLHSF2 = 0xa52,                   /**< microEnable 5 A1-CLHS-F2 */
    PN_MICROENABLE5AQ8CXP6B = 0xa53,                   /**< microEnable 5 AQ8-CXP6B */
    PN_MICROENABLE5AQ8CXP4 =
        PN_MICROENABLE5AQ8CXP6B,                       /**< \deprecated old name for PN_MICROENABLE5AQ8CXP6B, maintained only for source compatibility */
    PN_MICROENABLE5VQ8CXP6B = 0xa54,                   /**< microEnable 5 VQ8-CXP6B */
    PN_MICROENABLE5VQ8CXP4 =
        PN_MICROENABLE5VQ8CXP6B,                       /**<\deprecated old name for PN_MICROENABLE5VQ8CXP6B, maintained only for source compatibility */
    PN_MICROENABLE5AD8CLHSF2 = 0xa55,                  /**< microEnable 5 AD8-CLHS-F2 */
    PN_MICROENABLE5VQ8CXP6D = 0xa56,                   /**< microEnable 5 VQ8-CXP6D */
    PN_MICROENABLE5AQ8CXP6D = 0xa57,                   /**< microEnable 5 AQ8-CXP6D */
    PN_MICROENABLE5VD8CL = 0xa58,                      /**< microEnable 5 VD8-CL */
    PN_MICROENABLE5VF8CL =
        PN_MICROENABLE5VD8CL,                          /**< \deprecated old name for PN_MICROENABLE5VD8CL, maintained only for source compatibility */
    PN_MICROENABLE5A2CLHSF2 = 0xa59,                   /**< microEnable 5 A2-CLHS-F2 */
    PN_MICROENABLE5AD8CL = 0xa5a,                      /**< microEnable 5 AD8-CL */

    PN_MICROENABLE5_LIGHTBRIDGE_VCL_PROTOTYPE = 0x750, /**< LightBridge VCL Prototype */
    PN_MICROENABLE5_LIGHTBRIDGE_MARATHON_VCL = 0x751,  /**< LightBridge/Marathon VCL */
    PN_MICROENABLE5_LIGHTBRIDGE_VCL = 0x7510,          /**< LightBridge VCL */
    PN_MICROENABLE5_MARATHON_VCL = 0x7511,             /**< mE5 marathon VCL */
    PN_MICROENABLE5_MARATHON_AF2_DP = 0x752,           /**< mE5 marathon AF2 (CLHS dual port) */
    PN_MICROENABLE5_MARATHON_ACX_QP = 0x753,           /**< mE5 marathon ACX QP (CXP quad port) */
    PN_MICROENABLE5_LIGHTBRIDGE_MARATHON_ACL = 0x754,  /**< LightBridge/Marathon ACL */
    PN_MICROENABLE5_LIGHTBRIDGE_ACL = 0x7540,          /**< LightBridge ACL */
    PN_MICROENABLE5_MARATHON_ACL = 0x7541,             /**< mE5 marathon ACL */
    PN_MICROENABLE5_MARATHON_ACX_SP = 0x755,           /**< mE5 marathon ACX SP (CXP single port) */
    PN_MICROENABLE5_MARATHON_ACX_DP = 0x756,           /**< mE5 marathon ACX DP (CXP dual port) */
    PN_MICROENABLE5_MARATHON_VCX_QP = 0x757,           /**< mE5 marathon VCX QP (CXP quad port) */
    PN_MICROENABLE5_MARATHON_VF2_DP = 0x758,           /**< mE5 marathon VF2 (CLHS dual port) */
    PN_MICROENABLE5_LIGHTBRIDGE_MARATHON_VCLx = 0x759, /**< LightBridge/Marathon VCLx */
    //PN_MICROENABLE5_LIGHTBRIDGE_VCLx = 0x7590,         /**< LightBridge VCLx */
    PN_MICROENABLE5_MARATHON_VCLx = 0x7591,            /**< mE5 marathon VCLx (VCL with XC7K410T FPGA) */

    PN_TDI = 0xb50,                                    /**< Thunderbolt Device Interface/II */
    PN_TDI_I = 0xb500,                                 /**< Thunderbolt Device Interface */
    PN_TDI_II = 0xb501,                                /**< Thunderbolt Device Interface II*/
    PN_TGATE_USB = 0xb57,                              /**< T-Gate USB/II */
    PN_TGATE_I_USB = 0xb570,                           /**< T-Gate USB/II */
    PN_TGATE_II_USB = 0xb571,                          /**< T-Gate USB/II */
    PN_TGATE = 0xb5e,                                  /**< T-Gate/II */
    PN_TGATE_I = 0xb5e0,                               /**< T-Gate/II */
    PN_TGATE_II = 0xb5e1,                              /**< T-Gate/II */
    PN_TGATE_35 = 0xb58,                               /**< T-Gate/II 35 USB */
    PN_TGATE_I_35 = 0xb580,                            /**< T-Gate/II 35 USB */
    PN_TGATE_II_35 = 0xb581,                           /**< T-Gate/II 35 USB */
    PN_TGATE_35_USB = 0xb59,                           /**< T-Gate/II 35 USB */
    PN_TGATE_I_35_USB = 0xb590,                        /**< T-Gate/II 35 USB */
    PN_TGATE_II_35_USB = 0xb591,                       /**< T-Gate/II 35 USB */
    PN_TTDI = 0xb5f,                                   /**< Test Thunderbolt Device Interface */

    PN_MICROENABLE5_ABACUS_4G_PROTOTYPE = 0xb51,       /**< microEnable 5 Abacus 4G Prototype */
    PN_MICROENABLE5_ABACUS_4G =
        PN_MICROENABLE5_ABACUS_4G_PROTOTYPE,           /**< \deprecated old name for PN_MICROENABLE5_ABACUS_4G_PROTOTYPE, maintained only for source compatibility */
    PN_MICROENABLE5_ABACUS_4G_BASE = 0xb52,            /**< microEnable 5 Abacus 4G Base */
    PN_MICROENABLE5_ABACUS_4G_BASE_II = 0xb53,         /**< microEnable 5 Abacus 4G Base II (7K70T FPGA) */

    PN_MICROENABLE6_KCU105 = 0xA60,                    /**< microEnable 6 Evaluation Board */

#ifdef PLATFORM_PROTOTYPING
    PN_ML605 = 0xff46, /**< Xilinx ML605 Evaluation board */
#endif

    PN_UNKNOWN = 0xffff,
	PN_GENERIC_EVA = 0x10000000,
    PN_NONE = 0
};

板类型标识符。每个设备都由其中一个标识符标识。可以通过Fg_getBoardType函数或使用带FG_BOARD_INFORMATION参数的Fg_getParameterWithType函数来查询。

只有连接器的物理布局不同的板子变体(例如CL连接器和PoCL连接器)使用相同的类型值。


fgrab_prototyp.h

设备和Applet的信息

这些函数将返回给定设备或applet或其组合的静态信息。在相同的输入上再次调用这些函数通常会再次返回相同的信息。


Fg_getBoardType
int Fg_getBoardType(int BoardIndex);
  • 说明
    Fg_getBoardType()返回板的类型:如果是microEnable III / -XXL或microEnable IV-Full x1 / -Full x4。PixelPlant目前无法被检测到。

  • 返回值
    ◼ BoardIndex
    板子的索引。

  • 返回值
    fg_error:没有带有给定索引的板。

板子类型的定义可以看:sisoboards.h

举例:

uint32_t   boardType = BINFO_BOARDTYPE;
Fg_getParameterWithType(fg, FG_BOARD_INFORMATION, &boardType, 0, FG_PARAM_TYPE_UINT32_T);

Fg_getBoardNameByType
const char * Fg_getBoardNameByType(const int BoardType, const int UseShortName);
  • 说明
    Fg_getBoardNameByType()返回板类型的名称。
  • 参数
    ◼ BoardType
    板类型
    ◼ UseShortName
    获取板的简名称
  • 返回值
    NULL:没有给定类型的板

Fg_getSerialNumber
unsigned int Fg_getSerialNumber(Fg_Struct *Fg);
  • 说明
    函数Fg_getSerialNumber()读取帧捕获器的序列号。
  • 参数
    ◼ Fg
    指向帧抓取器结构Fg_Struct的指针。
  • 返回值
    板子的序列号。
    要得到与板子上相同的表示法,应该用十六进制写出来。

Fg_getSWVersion
const char *const Fg_getSWVersion();
  • 说明
    函数Fg_getSWVersion()返回正在运行的SDK的版本。

Fg_getAppletVersion
const char *Fg_getAppletVersion(Fg_Struct *Fg, int AppletId);
  • 说明
    获取当前运行的applet的版本。
  • 参数
    ◼ Fg
    指向帧抓取器结构Fg_Struct的指针。
    ◼ AppletId
    由Fg_getappletId()返回的applet ID。
  • 返回值
    如果不是使用VisualApplets创建的设计,则返回设计的applet版本号。

Fg_getAppletId
int Fg_getAppletId(Fg_Struct *Fg, const char *ignored);
  • 说明
    获取当前运行的applet的ID。
  • 参数
    ◼ Fg
    指向帧抓取器结构Fg_Struct的指针。
    ◼ ignored
    should be NULL。
    只是为了与早期的软件接口兼容。它被忽略,应该是NULL。
  • 返回值
    returns the applet ID of the design if it is not a design created using VisualApplets.

对于ID的定义可以看:fgrab_define.h




查询连接到系统中与帧捕获器相关的信息
Fg_getSystemInformation
int Fg_getSystemInformation(
   Fg_Struct *Fg, 
   const enum Fg_Info_Selector selector, 
   const enum FgProperty  propertyId, 
   int param1, 
   void* buffer, 
   unsigned int* bufLen
 );
  • 说明
    以空终止字符串的形式返回当前帧捕获系统的各种信息。
    对于要查询的附加控制/寻址信息,可以使用param1,这取决于要查询的值。

    例如:在多板系统中查询某个板的信息时,必须对该板进行寻址。Param1可用于板子的寻址。

    当将空指针作为缓冲区传递时,函数

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值