sinat_33635313 2024-02-28 10:26 采纳率: 50%
浏览 5

一台摄 像机接Silicon Software 卡以Medium模式工作的初始化问题

Silicon Software 卡Medium模式下初始化问题

之前使用过该卡,用的是双BASE,每个端口分别接一台相机。,初始化过程:
得到板卡数量和型号->Fg_InitConfig(Confile,bordIndics),使用配置文件初始化抓取器->Fg_getParameter(fg,FG_FORMAT,&format,dmaPort)从抓取器中获取当前参数值,操作要求输入抓取器的端口号(PORT_A / PORT_B)->

eventName = "FG_START_OF_FRAME_CAM_PORT_0";
eventMask=Fg_getEventMask(fg, eventName.c_str());
Fg_registerEventCallback(fg,eventMask,callbackfun,&fgdata,FG_EVENT_DEFAULT_FLAGS, NULL);

在双BASE模式下,将重复设置一次,参数eventName = "FG_START_OF_FRAME_CAM_PORT_1",同时定义新的回调函数。

提问:1、如果接一台相机,且因数据量比较大采用Medium模传输,相机的两个输出端口分别接至采集卡的两个cameralink端口,eventName 设置为什么? 2、需要分别对两个端口(PORT_A/PORT_B)进行设置(包括事件)吗?如何设置? 3、读取的每一个端口数据是整帧图像数据吗?如果不是,该如何对齐数据并合成一帧完整的数据?
希望有朋友能帮助在下解答一下,万分感谢。

  • 写回答

3条回答 默认 最新

  • 关注

    sinat_33635313 上午好☀️☀️☀️️
    本答案参考通义千问

    1. 如果只接一台相机,并且使用Medium模式传输大量数据,通常情况下,一台相机只会通过一个端口连接到采集卡。因此,如果相机的两个输出端口分别连接了采集卡的两个Cameralink端口,你只需要关注其中的一个,例如PORT_A。在这种情况下,eventName 可以设置为 "FG_START_OF_FRAME_CAM_PORT_A"。另一个端口 PORT_B 不需要单独处理。

    2. 不需要 分别对两个端口设置事件。由于只有一台相机,你只需针对实际使用的端口(这里指 PORT_A)设置事件。事件设置如下:

      • 初始化时,使用 Fg_InitConfigFg_getParameter 获取 PORT_A 的相关参数。
      • 设置事件名称为 eventName = "FG_START_OF_FRAME_CAM_PORT_A";
      • 获取事件掩码 eventMask = Fg_getEventMask(fg, eventName.c_str());
      • 注册事件回调 Fg_registerEventCallback(fg, eventMask, callbackfun, &fgdata, FG_EVENT_DEFAULT_FLAGS, NULL);
    3. 读取的端口数据 可能不是整帧图像数据,因为Cameralink协议可能会拆分数据流以提高传输效率。你需要在回调函数中解析数据,确保它们被正确地拼接成一帧完整的图像。这通常涉及以下步骤:

      • 在回调函数 callbackfun 中,检查接收到的事件类型是否与你设置的 "FG_START_OF_FRAME_CAM_PORT_A" 相匹配。
      • 获取接收到的数据缓冲区,它可能包含多个帧的部分数据。
      • 将这些部分数据合并成一个完整的帧,可能需要检查帧头或帧尾标志来确定何时结束一个帧。
      • 使用合并后的数据执行后续处理,如解码、显示等。
    void callbackfun(void* data, uint32_t size, uint32_t timestamp, void* user_data, uint32_t flags) {
        if (strcmp(eventName.c_str(), "FG_START_OF_FRAME_CAM_PORT_A") == 0) {
            // 解析帧头,确认开始位置
            // ...
            // 逐个读取数据块并拼接
            // ...
            // 当所有数据块合并后,处理完整的帧数据
            // ...
        }
    }
    

    请注意,具体的实现取决于 Silicon Software 卡的具体API文档和Cameralink数据包格式。务必查阅官方文档以获得准确的指导。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月28日

悬赏问题

  • ¥15 远程访问linux主机超时
  • ¥15 odoo17存货管理优势于中国国内该行业传统ERP或MES的详细解读和举例
  • ¥15 CPU卡指令整合指令数据都在图片上
  • ¥15 火车票关联12306问题
  • ¥15 odoo17处理受托加工产品
  • ¥15 如何用MATLAB编码图三的积分
  • ¥15 圆孔衍射光强随孔径变化
  • ¥15 MacBook pro m3max上用vscode运行c语言没有反应
  • ¥15 ESP-PROG配置错误,ALL ONES
  • ¥15 结构功能耦合指标计算