2.4. 数据类型¶
2.4.1. CVI_IPCM_CUST_VUART_PORT¶
【说明】
虚拟串口使用的客制化通信port号
【定义】
#define CVI_IPCM_CUST_VUART_PORT 0
【注意事项】
无
【相关数据类型及接口】
无
2.4.2. CVI_IPCM_CUST_MSG_PORT¶
【说明】
参数解析使用的客制化通信port号
【定义】
#define CVI_IPCM_CUST_MSG_PORT 1
【注意事项】
无
【相关数据类型及接口】
无
2.4.3. CVI_IPCM_CUST_KER_PORT_ST¶
【说明】
linux端内核态可以使用的起始port号,支持内核态注册;
在linux端,port号大于或等于CVI_IPCM_CUST_KER_PORT_ST的消息会被内核态先接收,调用内核态的callback;
存在以下情况:
用户态和内核态都注册了callback,则alios的msg会先到内核态;
内核态处理完毕后,如果callback返回1,则用户态不会再收到msg,即用户态callback不会被调用
内核态处理完毕后,如果callback返回0,则msg会继续往用户态发送,即用户态callback也会被调用
内核态注册了callback,用户态没有注册callback,则msg只会在内核态处理
内核态没有注册callback,用户态注册了callback,则msg只会在用户态处理
用户态和内核态都没有注册callback,则msg不会被处理,会打印err
【定义】
#define CVI_IPCM_CUST_KER_PORT_ST 64
【注意事项】
无
【相关数据类型及接口】
无
2.4.4. IPCM_MSG_TYPE_E¶
【说明】
定义msg的类别
【定义】
typedef enum _IPCM_MSG_TYPE_E {
IPCM_MSG_TYPE_SHM = 0, // msg_param is share memory addr
IPCM_MSG_TYPE_RAW_PARAM, // msg_param is the param
} IPCM_MSG_TYPE_E;
【成员】
成员名称 |
描述 |
|---|---|
IPCM_MSG_TYPE_SHM |
msg长 度超过4byte,callback返回的是IPCM_CUST_SHM_DATA_S(share memory pool的addr和size) |
IPCM_MSG_TYPE_RAW_PARAM |
msg内容不超过4bytes ,callback返回的是msg param |
【注意事项】
无
【相关数据类型及接口】
无
2.4.5. IPCM_CUST_SHM_DATA_S¶
【说明】
当msg长度超过4byte,定义share memory pool的addr和size
【定义】
typedef struct _IPCM_CUST_SHM_DATA_S {
CVI_VOID *pData;
CVI_U32 u32Size;
} IPCM_CUST_SHM_DATA_S;
【成员】
成员名称 |
描述 |
|---|---|
pData |
share memory的地址 |
u32Size |
share memory数据的size |
【注意事项】
无
【相关数据类型及接口】
无
2.4.6. IPCM_CUST_MSG_S¶
【说明】
定义ipcm cust消息结构体,注册cust handler后,如果收到cust消息,handler会返回该结构体的指针
【定义】
typedef struct _IPCM_CUST_MSG_S {
CVI_U8 u8PortID;
CVI_U8 u8MsgID : 7;
CVI_U8 u8DataType : 1;
union {
IPCM_CUST_SHM_DATA_S stData; // while u8DataType is 0
CVI_U32 u32Param; // while u8DataType is 1
};
} IPCM_CUST_MSG_S;
【成员】
成员名称 |
描述 |
|---|---|
u8PortID; |
port号 |
u8MsgID |
msg号 |
u8DataType |
msg数据类型 0: 返回 stData 1: 返回 u32Param |
【注意事项】
无
【相关数据类型及接口】
无
2.4.7. IPCM_CUST_MSGPROC_FN¶
【说明】
定义ipcm cust的handler
【定义】
typedef CVI_S32 (*IPCM_CUST_MSGPROC_FN)(CVI_VOID *pPriv, IPCM_CUST_MSG_S *pstData);
【成员】
成员名称 |
描述 |
|---|---|
pPriv |
用户数据指 针;注册handle时传入的数据指针 |
pstData |
接收到的msg指针 |
【注意事项】
无
【相关数据类型及接口】
无