# 功能介绍

### 1、支持的PLC变量类型

        ST_BOOL
        ST_BYTE
        ST_WORD
        ST_DWORD
        ST_LWORD
        ST_SINT
        ST_USINT
        ST_INT
        ST_UINT
        ST_DINT
        ST_UDINT
        ST_LINT
        ST_REAL
        ST_LREAL
        ST_STRING

### 2、初始化一个设备的连接句柄

    /**
     * @brief      创建一个连接
     * ConnParam   连接参数结构体
     * return:     成功返回handler的句柄，失败返回nullptr
     */
    TAG_HANDER AcpCreatConnHandler(ConnParam* pConnParam);

### 3、读取变量

    /**
     * @brief       读取变量
     * handler:     连接句柄
     * taginfo：    变量信息结构体，包含变量路径，读取变量地址和大小
     * nTimeOutMs:  超时时间ms
     * tagNum:      读取列表数量
     * return:      成功返回0,失败返回-1或者错误码
     */
    int AcpReadTagValue(TAG_HANDER handler,TagInfo* taginfo,int nTimeOutMs);//读单一变量
    int AcpReadTagList(TAG_HANDER handler,TagInfo* taginfo,int tagNum,int nTimeOutMs);//读变量列表

### 4、写入变量

    /**
     * @brief       写入变量
     * handler:     连接句柄
     * taginfo：    变量信息结构体，包含变量路径，读取变量地址和大小
     * nTimeOutMs:  超时时间ms
     * tagNum:      读取列表数量
     * return:      成功返回0,失败返回-1或者错误码
     */
    int AcpWriteTagValue(TAG_HANDER handler,TagInfo* taginfo,int nTimeOutMs);//写单一变量
    int AcpWriteTagList(TAG_HANDER handler,TagInfo* taginfo,int tagNum,int nTimeOutMs);//写变量列表

### 5、注册回调函数

    /**
    * @brief       注册回调函数
    * handler：    连接句柄
    * NotifyCallback： 注册的回调函数名称
    * lpContext：通用指针，允许你传递一个上下文数据到回调函数中
    * return：   成功返回0,失败返回-1或者错误码
    */
    int AcpRegisterNotifyCallBack(TAG_HANDER handler,pfnNotifyCallback NotifyCallback,void* lpContext);

### 6、移除回调函数

    /**
    * @brief     移除订阅回调
    * handler：  连接句柄
    * return:    成功返回0,失败返回-1或者错误码
    */
    int AcpRemoveNotifyCallBack(TAG_HANDER handler);

### 7、添加变量组订阅

    /**
    * @brief      添加变量组订阅
    * handler：   连接句柄
    * taginfo：   变量信息结构体，包含订阅变量路径
    * tagNum：    订阅变量数量
    * nTimeOutMs: 超时时间ms
    * return:     成功返回true,失败返回false
    */
    int AcpAddTagsNotification(TAG_HANDER handler,TagValue* taginfo,
    int tagNum,TagSubParam* pSubParam,int nTimeOutMs);