Demo entry 6770444

adas_dev

   

Submitted by anonymous on Nov 13, 2018 at 13:33
Language: C++. Code size: 1.6 kB.

struct adas_dev_s {
    ADAS_PROTOCOL_TYPE_E enProtocolType;        /* adas 协议类型*/
    uint32_t u32DevIdSet[ADAS_DEV_ID_IDX_MAX];  /* 在线的外设集合, 值为1标识有外设, 0,表示没有, 对应的下标为ADAS_DEV_ID_IDX_E*/
    uint32_t u32DevSn;                          /* 设备编号:用于表明设备的在ADAS_SET中的唯一编号,
                                                 * 每次创建设备,从上次的设备编号中加1,到最大值后回到0*/

    uint32_t u32ManufNum[ADAS_DEV_ID_IDX_MAX];  /* 厂商编号, 其实应该一个外设一个厂商编号*/   
    uint16_t u16CmdSN;                          /*命令流水号*/
    pthread_mutex_t stCmdSnLock;                /* 流水号的互斥锁*/

    int s32Fd;                                  /* 连接的socket*/
    void *pPri;                                 /* 私有资源 */
    bool bRunFlag;                              /* 运行标志位*/
    LIST_NODE_S stList;
    pthread_mutex_t stLock;
    bool bInited;                               /* 初始化标志位: true: 已经被初始化, false: 没有初始化*/
    bool bValid;                            /* 标记此DEV 是否有效,true:表示有效, false表示无效,当设备被创建时被设置为true,当准备删除此设备时设置为false*/
    uint32_t u32UserCnt;                            /* u32UserCnt表示当前设备的用户数,0(表示没有用户),>0(表示有用户),最多32个用户
                                             * 每次外部线程使用设备进行收发命令时会增加用户数,当使用完成后减少用户数,
                                             * 只有当bValid 为true时才会增加用户数*/
    uint32_t u32UserSet;                    /* 每一位代表一个用户, 0,没有用户, 1,有用户*/

    /* 设备的删除: 设备的只有在 bValid = false,并且 u32UserCnt = 0 时才会被删除、释放*/
    /* 通过单片机判断设备是否在线*/

    /* 在每次单片机发送查询外设的时候加1,当收到对应的应答时清零,如果某个外设超过一定次数都没有收到应答,则标记该外设不在线,
     * 如果某次收到对应的应答,则标记该外设存在*/
    uint32_t u32LostReplayCnt[ADAS_DEV_ID_IDX_MAX];  

    /*私有资源*/
    ADAS_DEV_CTRL_S *pstCtrl;
};

This snippet took 0.00 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).