/******************************************************************************

                  版权所有 (C), 2013-2023, 科大智能电气有限公司

 ******************************************************************************
  文 件 名   : lib60870_public.h
  版 本 号   : V1.0
  生成日期   : 2022年04月07日
  最近修改   :
  功能描述   : lib60870_public.c的头文件 101及104规约实现中的任务管理及校验等功能
  函数列表   :
  修改历史   :
  1.日    期   : 2022年04月07日
    修改内容   : 创建文件

******************************************************************************/
#ifndef __LIB60870_PUBLIC_H
#define __LIB60870_PUBLIC_H
/**************************************文件包含*******************************/
#include <stdlib.h>
#include <stdio.h>
#include "lib60870_common.h"
/**************************************宏定义*********************************/
#define TAG_TPYE_BOOL       1     //布尔
#define TAG_TPYE_INT        2     //整形
#define TAG_TPYE_STR        4     //字符串
#define TAG_TPYE_UTINY      32    //无符号小整形
#define TAG_TPYE_SHORT      33    //短整形
#define TAG_TPYE_UINT       35    //无符号整形
#define TAG_TPYE_LONG       36    //长整形
#define TAG_TPYE_ULONG      37    //无符号长整形
#define TAG_TPYE_FLOAT      38    //单精度浮点
#define TAG_TPYE_DOUBLE     39    //双精度浮点
#define TAG_TPYE_TINY       43    //小整形
#define TAG_TPYE_USHORT     45    //无符号短整形

/************************************数据结构定义*****************************/
/**
* @brief
*/

/**************************************数据声明*******************************/

/**************************************内部函数声明***************************/

/************************************外部接口函数声明*************************/
extern unsigned char CS10x_SendTask(CS10xHandle_t pstSelf);
extern void SetSendTask(CS10xHandle_t pstSelf, unsigned int uiFlagNo, unsigned short usParam_low, unsigned short usParam_hig);
extern void SetTaskFlag(VFLAGS *pstFlags, unsigned int uiFlagNo);
extern unsigned int GetTaskFlag(VFLAGS *pstFlags, unsigned int uiFlagNo);
extern void ClearTaskFlag(VFLAGS *pstFlags, unsigned int uiFlagNo);
extern int CheckClearTaskFlag(VFLAGS *pstFlags, unsigned int uiFlagNo);
extern void ClearAllTaskflgs(CS10xHandle_t pstSelf);
extern unsigned char checksum_8(unsigned char *pucBuf, unsigned char ucLen);
extern int CheckParamTagAndLen(unsigned char ucTag, unsigned char ucLen);
extern unsigned char CP56Time2a_Pack2Buf(unsigned char *pucOutBuf, const __CP56Time2a *pstCp56);
extern unsigned char CP56Time2a_GetFromBuf(const unsigned char *pucInBuf, __CP56Time2a *pstCp56);
extern unsigned char IntBytes_Pack2Buf(unsigned char *pucOutBuf, unsigned int uiVal, unsigned char ucSize);
extern unsigned int IntBytes_GetFromBuf(const unsigned char *pucInBuf, unsigned char ucSize);
extern unsigned char Float_Pack2Buf(unsigned char *pucOutBuf, float fVal);
extern float Float_GetFromBuf(const unsigned char *pucInBuf);
extern unsigned char U16_Pack2Buf(unsigned char *pucOutBuf, unsigned short usVal);
extern unsigned short U16_GetFromBuf(const unsigned char *pucInBuf);
#endif
