/********************************************************
*                                                                                                            
* 文 件 名： 2oo2DataTransferManage.h   
* 版权说明： 北京交控科技有限公司 
* 创建时间： 2011-06-24
* 作    者： 郭文章
* 功能描述： 联锁应用数据转换头文件  
* 函数包括：
* 使用注意：
* 修改记录：   
*
********************************************************/ 

#ifndef _APP_DATA_CONVERT_H_
#define _APP_DATA_CONVERT_H_

#include "CommonMemory.h"
#include "../Main/MainApp.h"
#include "../DataManage/DeviceDataManage.h"
#include "../Route/RouteDataManage.h"
#include "../Signal/SignalDataManage.h"
#include "../Switch/SwitchDataManage.h"
#include "../Section/AxisSectionDataManage.h"
#include "../Section/AxisConfigDataManage.h"
#include "../Section/LogicSectionDataManage.h"
#include "../Section/PhysicalSectionDataManage.h"
#include "../Relay/RelayDataManage.h"
#include "../esb/ESBDataManage.h"
#include "../psd/PSDDataManage.h"
#include "../Overlap/OverlapDataManage.h"
#include "../AutoReturn/AutoReturnDataManage.h"
#include "../AutoRoute/AutoRouteDataManage.h"
#include "../AllAutoReturn/AllAutoReturnDataManage.h"
#include "../NonRoute/NonRouteDataManage.h"
#include "../Indicator/IndicatorDataManage.h"
#include "../Garagedoor/GaragedoorDataManage.h"
#include "../spks/SpksDataManage.h"
#include "../WashMachine/WashMachineDataManage.h"
#include "../AllAutoReturn/AllAutoReturnDefine.h"
#include "../EnvelopeManage/EnvelopeManageAPI.h"
#include "../AxisSort/AxisSort_api.h"
#include "../CutoffPoint/CutoffPointDataManage.h"
#include "../Train/TrainDataManage.h"
#include "../WLScreen/WholeLineScreenAPI.h"
#include "../ERROR/ErrorDataManage.h"
#include "../ESB/ESBDataManage.h"
#include "../FloodGate/FloodGateDataManage.h"
#include "../HLHTMsgHead/HLHTHeadContexManage.h"
#include "../NonAutoReturn/NonAutoReturnDataManage.h"
#include "../ParsePack/ParsePackAtsData.h"
#include "../ParsePack/ParsePackGateWayData.h"
#include "../ParsePack/ParsePackCiData.h"
#include "../ParsePack/ParsePackLeuData.h"
#include "../ParsePack/ParsePackVobcData.h"
#include "../ParsePack/ParsePackITEData.h"
#include "../Route/LogicalRouteDataManage.h"
#include "../Route/LongRouteDataManage.h"
#include "../ReverseCut/ReverseCutDataManage.h"
#include "../AxisSort/AxisSort.h"

#ifdef __cplusplus
extern "C" {
#endif

/*
* 功能描述： 拷贝结构中有效的id数据
	输入参数
		const void *pDataStru 结构体指针
		UINT16 struNum:数组长度,
		UINT16 struLength:结构体长度
	输出参数
		UINT8 *pCurCiAppDataPointer:当前数据指针,
* 返回值  ： 拷贝数据的长度
* 注   意 ； 只适用于结构体第一个元素为两个字节的ID
*/
UINT32 CopyValidGetDataStru(UINT8 *pCurCiAppDataPointer, const void *pDataStru, UINT16 struNum, UINT16 struLength);
/*
* 功能描述： 拷贝互联互通结构中有效的数据
	输入参数
		UINT16 struNum:数组长度,
		UINT16 struLength:结构体长度
	输出参数
		UINT8 *pCurCiAppDataPointer:当前数据指针,
* 返回值  ： 拷贝数据的长度
*/
UINT32 CopyValidGetVobcBackHlht(UINT8 *pCurCiAppDataPointer, UINT16 struNum, UINT16 struLength);

/*
* 功能描述： 拷贝结构中有效的通信车id数据
	输入参数
		VobcToCiDataStruct *pDataStru 结构体指针
		UINT16 struNum:数组长度,
	输出参数
		UINT8 *pCurCiAppDataPointer:当前数据指针,
* 返回值  ： 拷贝数据的长度
* 注   意 ； 只适用于结构体第一个元素为两个字节的ID
*/
UINT32 CopyValidGetVobcDataStru(UINT8* pCurCiAppDataPointer, VobcToCiDataStruct* pDataStru, UINT16 struNum);

/*
* 功能描述：拷贝结构中通信正常的ITE数据
* 参数说明：IteToCiDataStruct pDataStru[ITE_TO_CI_SUM_MAX] ITE结构体数组
*		    UINT16 struNum 数组长度
*		    UINT8* pCurCiAppDataPointer 当前数据指针（出参）
* 返 回 值：拷贝的数据长度
* Created By LQ 2024.06.15
*/
UINT32 CopyValidGetIteDataStru(UINT8* pCurCiAppDataPointer, IteToCiDataStruct pDataStru[ITE_TO_CI_SUM_MAX], UINT16 struNum);

/*
* 功能描述： 拷贝结构中逻辑进路数据
	输出参数
		UINT8 *pCurCiAppDataPointer:当前数据指针,
* 返回值  ： 拷贝数据的长度
* 注   意 ； 只适用于结构体第一个元素为两个字节的ID
*/
UINT32 CopyValidGetLogicRouteDataStru(UINT8* pCurCiAppDataPointer);

/*
* 功能描述： 拷贝有效数据到对应的全局数组
* 参数说明： 
	输入参数
	const UINT8 *pCurCiAppDataPointer:当前数据指针
	UINT16 struNum:数组长度,
	UINT16 struLength:结构体长度
	输出参数
	void *pDataStru:结构体指针,
* 返回值  ： 拷贝数据的长度
* 注   意 ； 只适用于结构体第一个元素为两个字节的ID
*/
UINT32 CopyValidSetDataStru(const UINT8 *pCurCiAppDataPointer, void *pDataStru, UINT16 struNum, UINT16 struLength);
/*
* 功能描述： 拷贝有效数据到互联互通结构
	输入参数
		const UINT8 *pCurCiAppDataPointer:当前数据指针
		UINT16 struNum:数组长度,
		UINT16 struLength:结构体长度
	输出参数
		无
* 返回值  ： 拷贝数据的长度
*/
UINT32 CopyValidSetVobcBackHlht(const UINT8 *pCurCiAppDataPointer, UINT16 struNum, UINT16 struLength);

/*
* 功能描述： 拷贝通信车有效数据到对应的全局数组
* 参数说明：
	输入参数
	const UINT8 *pCurCiAppDataPointer:当前数据指针
	UINT16 struNum:数组长度,
	输出参数
	VobcToCiDataStruct *pDataStru:结构体指针,
* 返回值  ： 拷贝数据的长度
* 注   意 ； 只适用于结构体第一个元素为两个字节的ID
*/
UINT32 CopyValidSetVobcDataStru(const UINT8* pCurCiAppDataPointer, VobcToCiDataStruct* pDataStru, UINT16 struNum);

/*
* 功能描述：拷贝ITE有效数据到对应的全局数组
* 参数说明：const UINT8 *pCurCiAppDataPointer:当前数据指针
*        	UINT16 struNum 数组长度
*	        IteToCiDataStruct pDataStru[ITE_TO_CI_SUM_MAX] ITE结构体数组 （出参）
* 返 回 值：拷贝数据的长度
* Created By LQ 2024.06.15
*/
UINT32 CopyValidSetIteDataStru(const UINT8* pCurCiAppDataPointer, IteToCiDataStruct pDataStru[ITE_TO_CI_SUM_MAX], UINT16 struNum);

/*
* 功能描述： 拷贝逻辑进路有效数据到对应的全局数组
* 参数说明：
	输入参数
	const UINT8 *pCurCiAppDataPointer:当前数据指针
* 返回值  ： 拷贝数据的长度
* 注   意 ； 只适用于结构体第一个元素为两个字节的ID
*/
UINT32 CopyValidSetLogicRouteDataStru(const UINT8* pCurCiAppDataPointer);

/*
* 功能描述： 获取CI应用数据
* 参数说明： UINT8 *pCiAppDataPointer, CI应用数据指针
* 返回值  ： void      
*/
UINT32 GetCiAppData(UINT8 *pCiAppDataPointer);

/*
* 功能描述： 设置CI应用数据
* 参数说明： UINT8 *pCiAppDataPointer, CI应用数据指针
			 const UINT32 len，数据长度
* 返回值  ： void      
*/
UINT8 SetCiAppData(const UINT8 *pCiAppDataPointer,const UINT32 len);

#ifdef __cplusplus
}
#endif

#endif
