zoukankan      html  css  js  c++  java
  • 【DM642学习笔记五】FVID驱动模型 API函数

    1、FVID_control

    作用:发送一个控制命令到mini_driver

    语法: status = FVID_control(fvidChan, cmd, args);

    参数:

    FVID_HandlefvidChan           

                Intcmd                        

                 Ptrargs                       

                 Return Value Int status

    参数说明:

    fvidChan是FVID_create()创建的指向通道的句柄.

     cmd有两个值: IOM_ABORT----作用是中止所以的未定的I/O工作

                  IOM_FLUSH----作用是所以采集口的工作被丢弃,所以显示I/O的工作正常进行.

    返回值:

       如果调用成功,FVID_control返回IOM_COMPLETED .如果有错误产生,这个调用会返回一个负值.

    Example:

     

    FVID_control(fvidChan,IOM_ABORT, NULL);

    2、FVID_create()

       作用:分配并初始化FVID通道对象;

     语法:fvidChan = FVID_create(name, mode, *status, optArgs, *attrs);

    Stringname                 

    Intmode                    

    Int*status                 

    PtroptArgs                 

    FVID_Attrs*attrs           

    其中:name是设备实例的句柄,是一个字符串

    mode 是选择的模式,只有两个值:IOM_INPUT设置采集模式,IOM_OUTPUT设置显示模式.

    status是The status argument isan out parameter that this function fills with a pointer to thestatus that was returned by the mini-driver.

    attrs 是指向FVID_Attrs结构的指针:

    FVID_Attrs的定义如下:typedefstruct FVID_Attrs

                  {

                                                           Uns timeout;

                                                          } FVID_Attrs;

    timeout成员用来指定旗语同步,它的值可以是:

    1.     >SYS_FOREVER:会让FVID_alloc, FVID_free andFVID_exchange的调用不确定的等待到这个调用完成.

    2.     >数字的timeout值会让这些APIs阻塞一段指定的时间(以系统时钟).

    3.     >0值会让APIs不阻塞,他们会立刻返回,这种情况下,应用程序会检查返回的status值来保证调用已经成功完成.

    备注:FVID_alloc, FVID_free andFVID_exchange 的调用只能在 DSP/BIOS task (TSK).

    ·        FVID_create的返回值:

    如果通道成功的打开了,那么FVID_create返回一个指向通道的句柄.这个句柄可以用来让后来的模块调用这个通道.

    Example

    FVID_ATTRS dispAttrs =FVID_ATTRS;

    chan-

    Handle =FVID_create(“display0”, IOM_INPUT, NULL, NULL,

    &dispAttrs);

    3、FVID.h的定义

     

    #defineFVID_BASE      IOM_USER

    #defineFVID_ALLOC     (FVID_BASE + 0)
      #defineFVID_FREE      (FVID_BASE + 1)
      #define FVID_EXCHANGE  (FVID_BASE + 2)

    typedef GIO_HandleFVID_Handle;

    typedef struct FVID_IFrame{
        Char*y1;
        Char*cb1;
        Char*cr1;
        Char*y2;
        Char*cb2;
        Char*cr2;
    }FVID_IFrame;


    typedef struct FVID_PFrame {
        Char*y;
        Char*cb;
        Char*cr;
    } FVID_PFrame;



    typedef struct FVID_RawIFrame{
        Char*buf1;   
        Char*buf2;   
    } FVID_RawIFrame;

    typedef structFVID_RawPFrame{
        Char*buf;   
    } FVID_RawPFrame;


    typedef struct FVID_Frame {
       QUE_Elem       queElement;
        union{
           FVID_IFrame    iFrm;    
           FVID_PFrame    pFrm;    
           FVID_RawIFrame riFrm;   
           FVID_RawPFrame rpFrm;   
        }frame;   
    } FVID_Frame;


    #define FVID_alloc(gioChan, bufp)
           GIO_submit(gioChan, FVID_ALLOC, bufp, NULL, NULL)



    #define FVID_control(gioChan, cmd, args)
           GIO_control(gioChan, cmd, args)



    #define  FVID_create(name, mode, status, optArgs,attrs)
           GIO_create(name, mode, status, optArgs, attrs)



    #define FVID_delete(gioChan)
           GIO_delete(gioChan)



    #define FVID_exchange(gioChan, bufp)
           GIO_submit(gioChan, FVID_EXCHANGE, bufp, NULL, NULL)

     


    #define FVID_free(gioChan, bufp)
           GIO_submit(gioChan, FVID_FREE, bufp, NULL, NULL)


    #ifdef __cplusplus
    }
    #endif

    #endif

  • 相关阅读:
    vue form dynamic validator All In one
    TypeScript api response interface All In One
    closable VS closeable All In One
    macOS 如何开启 WiFi 热点 All In One
    vue css inline style All In One
    vs2010里面 新建网站里面的 asp.net网站 和 新建项目里面的 asp.net Web应用程序 的区别 (下)
    牛腩新闻 59 整合添加新闻页 FreeTextBox 富文本编辑器,检测到有潜在危险的 Request.Form 值,DropDownList 的使用
    牛腩新闻 61尾声: error.aspx的使用 防止报错
    vs2010里面 新建网站里面的 asp.net网站 和 新建项目里面的 asp.net Web应用程序 的区别 (上)
    牛腩新闻 62:尾声续2 asp.net的编译和发布
  • 原文地址:https://www.cnblogs.com/eaglediao/p/7136535.html
Copyright © 2011-2022 走看看