/********************************************************
*                                                                                                            
* 文 件 名： WashMachineDataManage.c   
* 版权说明： 北京交控科技有限公司 
* 创建时间： 2014-12-24
* 作    者： 联锁组
* 功能描述： 洗车机数据管理  
* 修改记录：   
*
********************************************************/ 

#include "WashMachineDataManage.h"



WashMachineDataStruct WashMachineDataStru[WASHMACHINE_SUM_MAX];       /*定义洗车机数据结构体*/


/*
* 功能描述： 获取指定ID洗车机数据
* 参数说明： 
* 返回值  ： WashMachineDataStruct *
*/
WashMachineDataStruct *GetWashMachineData(void)
{
	return WashMachineDataStru;
}

/*
* 功能描述： 获取指定ID洗车机就绪状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
* 返回值  ： 0: 获取数据失败
*			>0: 洗车机就绪状态     
*/
UINT8 GetWashMachineReadyState(const UINT16 WashMachineId)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
    UINT8 retVal = 0u;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].WashMachineReadyState;
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;

}
/*
* 功能描述： 设置指定ID洗车机就绪状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
             const UINT8 state,设置状态
* 返回值  ： 0: 设置失败
*			 1: 设置成功     
*/
UINT8 SetWashMachineReadyState(const UINT16 WashMachineId,const UINT8 state)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
	UINT8 retVal = 0u;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if ((WASHMACHINE_COL_READY_YES == state) || (WASHMACHINE_COL_READY_NO == state))
		{
			WashMachineDataStru[bufIndex].WashMachineReadyState = state;  /*洗车机就绪状态*/

			retVal = CI_SUCCESS;
		}
		else
		{
			retVal = CI_ERROR;
		}
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}

/*
* 功能描述： 获取指定ID洗车机请求确认状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
* 返回值  ： 0: 获取数据失败
*			>0: 请求确认状态    
*/
UINT8 GetWashMachineRequestVerifySta(const UINT16 WashMachineId)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
    UINT8 retVal = 0u;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].WashMachineRequestVerifyState;
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;

}
/*
* 功能描述： 设置指定ID洗车机请求确认状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
             const UINT8 state,设置状态
* 返回值  ： 0: 设置失败
*			 1: 设置成功     
*/
UINT8 SetWashMachineRequestVerifySta(const UINT16 WashMachineId,const UINT8 state)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
	UINT8 retVal = 0u;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if ((WASHMACHINE_COL_REQUEST_VALID == state) || (WASHMACHINE_COL_REQUEST_INVALID == state))
		{
			WashMachineDataStru[bufIndex].WashMachineRequestVerifyState = state;  

			retVal = CI_SUCCESS;
		}
		else
		{
			retVal = CI_ERROR;
		}
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;

}

/*
* 功能描述： 获取指定ID洗车机列车紧急停车状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
* 返回值  ： 0: 获取数据失败
*			>0: 列车紧急停车状态    
*/
UINT8 GetTrainEmergencyStopState(const UINT16 WashMachineId)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
    UINT8 retVal = 0u;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].TrainEmergencyStopState;
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;

}
/*
* 功能描述： 设置指定ID洗车机列车紧急停车状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
             const UINT8 state,设置状态
* 返回值  ： 0: 设置失败
*			 1: 设置成功     
*/
UINT8 SetTrainEmergencyStopState(const UINT16 WashMachineId,const UINT8 state)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
	UINT8 retVal = 0u;
	UINT8 lineIdentity = 0u;						 /*CI-VOBC接口标识*/

	lineIdentity = GetCiFunctionSwitchConfig(VOBC_INTERFACE_IDENTITY);/*获取CI-VOBC接口标识*/
	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if (LINE_FAO == lineIdentity)
		{/*FAO线路*/
			if ((WASHMACHINE_COL_FALUT_YES == state) || (WASHMACHINE_COL_FALUT_NO == state))
			{
				WashMachineDataStru[bufIndex].TrainEmergencyStopState = state;  

				retVal = CI_SUCCESS;
			}
			else
			{
				retVal = CI_ERROR;
			}
		}
		else if ((LINE_FAOHLHT == lineIdentity) || (LINE_FAOHLHT_ONESELF == lineIdentity) || (LINE_FAOHLHT_ONESELFSECOND == lineIdentity)
			|| (LINE_CC == lineIdentity))
		{/*FAO+HLHT线路*/
			if ((WASHMACHINE_COL_FALUT_YES_2 == state) || (WASHMACHINE_COL_FALUT_NO_2 == state))
			{
				WashMachineDataStru[bufIndex].TrainEmergencyStopState = state;  

				retVal = CI_SUCCESS;
			}
			else
			{
				retVal = CI_ERROR;
			}
		}
		else
		{
			retVal = CI_ERROR;
		}
	
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}


/*
* 功能描述： 获取指定ID洗车机允许车头清洗状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
* 返回值  ： 0: 获取数据失败
*			>0: 允许车头清洗状态    
*/
UINT8 GetHeadWashAllowState(const UINT16 WashMachineId)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
    UINT8 retVal = 0u;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].HeadWashAllowState;
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;

}
/*
* 功能描述： 设置指定ID洗车机允许车头清洗状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
             const UINT8 state,设置状态
* 返回值  ： 0: 设置失败
*			 1: 设置成功     
*/
UINT8 SetHeadWashAllowState(const UINT16 WashMachineId,const UINT8 state)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
	UINT8 retVal = 0u;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if ((WASHMACHINE_COL_HEADWASH_YES== state) || (WASHMACHINE_COL_HEADWASH_NO == state))
		{
			WashMachineDataStru[bufIndex].HeadWashAllowState = state;  

			retVal = CI_SUCCESS;
		}
		else
		{
			retVal = CI_ERROR;
		}
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}

/*
* 功能描述： 获取指定ID洗车机允许车尾清洗状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
* 返回值  ： 0: 获取数据失败
*			>0: 允许车尾清洗状态    
*/
UINT8 GetTailWashAllowState(const UINT16 WashMachineId)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
    UINT8 retVal = 0u;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].TailWashAllowState;
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;

}
/*
* 功能描述： 设置指定ID洗车机允许车尾清洗状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
             const UINT8 state,设置状态
* 返回值  ： 0: 设置失败
*			 1: 设置成功     
*/
UINT8 SetTailWashAllowState(const UINT16 WashMachineId,const UINT8 state)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
	UINT8 retVal = 0u;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if ((WASHMACHINE_COL_TAILWASH_YES== state) || (WASHMACHINE_COL_TAILWASH_NO == state))
		{
			WashMachineDataStru[bufIndex].TailWashAllowState = state;  

			retVal = CI_SUCCESS;
		}
		else
		{
			retVal = CI_ERROR;
		}
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}
/*
* 功能描述： 获取指定ID洗车机允许出洗车库状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
* 返回值  ： 0: 获取数据失败
*			>0: 允许出洗车库状态     
*/
UINT8 GetTrainOutWashPortAllowSta(const UINT16 WashMachineId)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
    UINT8 retVal = 0u;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].TrainOutWashTrainPortAllowState;
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;

}

/*
* 功能描述： 设置指定ID洗车机允许允许出洗车库状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
             const UINT8 state,设置状态
* 返回值  ： 0: 设置失败
*			 1: 设置成功     
*/
UINT8 SetTrainOutWashPortAllowSta(const UINT16 WashMachineId,const UINT8 state)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
	UINT8 retVal = 0u;
	UINT8 lineIdentity = 0u;						 /*CI-VOBC接口标识*/

	lineIdentity = GetCiFunctionSwitchConfig(VOBC_INTERFACE_IDENTITY);/*获取CI-VOBC接口标识*/
	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if (LINE_FAO == lineIdentity)
		{/*FAO线路*/
			if ((WASHMACHINE_COL_OUT_YES== state) || (WASHMACHINE_COL_OUT_NO == state))
			{
				WashMachineDataStru[bufIndex].TrainOutWashTrainPortAllowState = state;  

				retVal = CI_SUCCESS;
			}
			else
			{
				retVal = CI_ERROR;
			}
		}
		else if ((LINE_FAOHLHT == lineIdentity) || (LINE_FAOHLHT_ONESELF == lineIdentity) || (LINE_FAOHLHT_ONESELFSECOND == lineIdentity)
			|| (LINE_CC == lineIdentity))
		{/*FAO+HLHT线路*/
			if ((WASHMACHINE_COL_OUT_YES_2== state) || (WASHMACHINE_COL_OUT_NO_2 == state))
			{
				WashMachineDataStru[bufIndex].TrainOutWashTrainPortAllowState = state;  

				retVal = CI_SUCCESS;
			}
			else
			{
				retVal = CI_ERROR;
			}
		}
		else
		{
			retVal = CI_ERROR;
		}
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}


/*
* 功能描述： 获取指定ID洗车机洗车请求驱动状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
* 返回值  ： 0: 获取数据失败
*			>0: 洗车请求驱动状态     
*/
UINT8 GetWashTrainRequestDrvState(const UINT16 WashMachineId)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
    UINT8 retVal = 0u;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].WashTrainRequestDrvState;
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}
/*
* 功能描述： 设置指定ID洗车机洗车请求驱动状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID  
*			 const UINT8 drvState, 驱动状态
* 返回值  ： 无
*			   
*/
void SetWashTrainRequestDrvState(const UINT16 WashMachineId, const UINT8 drvState)
{
	UINT16 bufIndex = 0u;  /*数组下标*/

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if ((WASHMACHINE_DRVSTATE_REQ_FALSE == drvState) || (WASHMACHINE_DRVSTATE_REQ_TRUE == drvState))
		{
			WashMachineDataStru[bufIndex].WashTrainRequestDrvState = drvState;  
		}
		else
		{
			/*不做处理*/
		}
	}
	else
	{
		/*不做处理*/
	}
}

/*
* 功能描述： 获取指定ID洗车机车头停稳驱动状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
* 返回值  ： 0: 获取数据失败
*			>0: 车头停稳驱动状态    
*/
UINT8 GetTrainHeadStopSteadyDrvState(const UINT16 WashMachineId)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
    UINT8 retVal = 0u;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].TrainHeadStopSteadyDrvState;
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}
/*
* 功能描述： 设置指定ID洗车机车头停稳驱动状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID  
*			 const UINT8 drvState, 驱动状态
* 返回值  ： 无
*			      
*/
void SetTrainHeadStopSteadyDrvState(const UINT16 WashMachineId, const UINT8 drvState)
{
	UINT16 bufIndex = 0u;  /*数组下标*/

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if ((WASHMACHINE_HEAD_STEADY_YES == drvState) || (WASHMACHINE_HEAD_STEADY_NO == drvState))
		{
			WashMachineDataStru[bufIndex].TrainHeadStopSteadyDrvState = drvState;  
		}
		else
		{
			/*不做处理*/
		}
	}
	else
	{
		/*不做处理*/
	}	
}

/*
* 功能描述： 获取指定ID洗车机车尾停稳驱动状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
* 返回值  ： 0: 获取数据失败
*			>0: 车尾停稳驱动状态  
*/
UINT8 GetTrainTailStopSteadyDrvState(const UINT16 WashMachineId)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
    UINT8 retVal = 0u;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].TrainTailStopSteadyDrvState;
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}
/*
* 功能描述： 设置指定ID洗车机车尾停稳驱动状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID  
*			 const UINT8 drvState, 驱动状态
* 返回值  ： 无
*			        
*/
void SetTrainTailStopSteadyDrvState(const UINT16 WashMachineId, const UINT8 drvState)
{
	UINT16 bufIndex = 0u;  /*数组下标*/

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if ((WASHMACHINE_TAIL_STEADY_YES == drvState) || (WASHMACHINE_TAIL_STEADY_NO == drvState))
		{
			WashMachineDataStru[bufIndex].TrainTailStopSteadyDrvState = drvState;  
		}
		else
		{
			/*不做处理*/
		}
	}
	else
	{
		/*不做处理*/
	}	
}

/*
* 功能描述： 获取指定ID洗车机的当前洗车VOBC ID
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
* 返回值  ： 0: 当前洗车VOBC ID无效
*			>0: 当前洗车VOBC ID有效    
*/
UINT16 GetWashMachineCurVobcID(const UINT16 WashMachineId)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
	UINT16 retVal = 0u;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].CurVobcId;
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}

/*
* 功能描述： 设置指定ID洗车机的当前洗车VOBC ID
* 参数说明： const UINT16 WashMachineId, 洗车机ID
*            const UINT16 curVobcId，当前洗车VOBC ID  
* 返回值  ： 无
*			 
*/
void SetWashMachineCurVobcID(const UINT16 WashMachineId,const UINT16 curVobcId)
{
	UINT16 bufIndex = 0u;  /*数组下标*/ 

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		WashMachineDataStru[bufIndex].CurVobcId = curVobcId;  
	}
	else
	{
		/*不做处理*/
	}	
}

#if 0
/*
* 功能描述： 设置指定ID洗车机列车紧急停车状态-互联互通
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
             const UINT8 state,设置状态
* 返回值  ： 0: 设置失败
*			 1: 设置成功     
*/
UINT8 SetTrainEmergencyStopStateHLHT(const UINT16 WashMachineId,const UINT8 state)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
	UINT8 retVal = 0u;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if ((WASHMACHINE_COL_FALUT_NO_2 == state) || (WASHMACHINE_COL_FALUT_YES_2 == state))
		{
			WashMachineDataStru[bufIndex].TrainEmergencyStopState = state;  

			retVal = CI_SUCCESS;
		}
		else
		{
			retVal = CI_ERROR;
		}
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}
#endif

/*
* 功能描述： 获取指定ID洗车机暂停洗车请求驱动状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
* 返回值  ： 0: 获取数据失败
*			>0: 暂停洗车请求驱动状态     
*/
UINT8 GetPauseTrainWashRequestDrvSta(const UINT16 WashMachineId)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
	UINT8 retVal = 0u;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].PauseTrainWashRequestDrvState;
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}

/*
* 功能描述： 设置指定ID洗车机暂停洗车请求驱动状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID  
*			 const UINT8 drvState, 驱动状态
* 返回值  ： void    
*/
void SetPauseTrainWashRequestDrvSta(const UINT16 WashMachineId, const UINT8 drvState)
{
	UINT16 bufIndex = 0u;  /*数组下标*/

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if ((WASHMACHINE_PAUSE_DRVREQ_TRUE == drvState) || (WASHMACHINE_PAUSE_DRVREQ_FALSE == drvState))
		{
			WashMachineDataStru[bufIndex].PauseTrainWashRequestDrvState = drvState;  
		}
		else
		{
			; /*不处理*/
		}
	}
	else
	{
		; /*不处理*/
	}
}

/*
* 功能描述： 获取指定ID通过洗车机请求驱动状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID    
* 返回值  ： 0: 获取数据失败
*			>0: 通过洗车机请求驱动状态     
*/
UINT8 GetPassWashMachineReqDrvSta(const UINT16 WashMachineId)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
	UINT8 retVal = 0u;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].PaseWashMachineRequesDrvtState;
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}

/*
* 功能描述： 设置指定ID通过洗车机请求驱动状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID  
*			 const UINT8 drvState, 驱动状态
* 返回值  ：无
*			       
*/
void SetPassWashMachineReqtDrvSta(const UINT16 WashMachineId, const UINT8 drvState)
{
	UINT16 bufIndex = 0u;  /*数组下标*/

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if ((PASS_WASHMACHINE_DRVREQ_TRUE == drvState) || (PASS_WASHMACHINE_DRVREQ_FALSE == drvState))
		{
			WashMachineDataStru[bufIndex].PaseWashMachineRequesDrvtState = drvState;  
		}
		else
		{
			/*不做处理*/
		}
	}
	else
	{
		/*不做处理*/
	}
}

/*
* 功能描述： 设置指定ID洗车机工作模式设置驱动状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID
*			 const UINT8 drvState, 驱动状态
* 返回值  ：无
*by cgh 20231108
*/
void SetWashMachineWorkModeDrvState(const UINT16 WashMachineId, const UINT8 drvState)
{
	UINT16 bufIndex = 0U;  /*数组下标*/

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if ((WASHMACHINE_WORKMODE_INVALID_DRV == drvState)
			|| (WASHMACHINE_WORKMODE_ALL_DRV == drvState)
			|| (WASHMACHINE_WORKMODE_SIDE_DRV == drvState)
			|| (WASHMACHINE_WORKMODE_DEFAULT_DRV == drvState))
		{
			WashMachineDataStru[bufIndex].WashMachineWorkModeDrvtState = drvState;
		}
		else
		{
			/*不做处理*/
		}
	}
	else
	{
		/*不做处理*/
	}
}

/*
* 功能描述： 获取指定ID洗车机洗车模式设置驱动状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID
* 返回值  ： 0XFF: 获取数据失败
*			0x01\0x02\0x00: 洗车模式设置驱动状态
* by cgh 20231108
*/
UINT8 GetWashMachineWorkModeDrvState(const UINT16 WashMachineId)
{
	UINT16 bufIndex = 0U;  /*数组下标*/
	UINT8 retVal = 0U;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].WashMachineWorkModeDrvtState;
	}
	else
	{
		retVal = WASHMACHINE_WORKMODE_INVALID_DRV;
	}
	return retVal;
}

/*
* 功能描述： 设置指定ID洗车机工作模式反馈状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID
*			 const UINT8 chBackState, 反馈状态
* 返回值  ：无
*by cgh 20231108
*/
void SetWashWorkModeBackState(const UINT16 WashMachineId, const UINT8 chBackState)
{
	UINT16 bufIndex = 0U;  /*数组下标*/

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if ((WASH_WORKMODE_BACK_ALL_OK == chBackState)
			|| (WASH_WORKMODE_BACK_SIDE_OK == chBackState)
			|| (WASH_WORKMODE_BACK_ALL_NO == chBackState)
			|| (WASH_WORKMODE_BACK_SIDE_NO == chBackState)
			|| (WASH_WORKMODE_BACK_DEFAULT == chBackState))
		{
			WashMachineDataStru[bufIndex].chSetWashWorkModeBack = chBackState;
		}
		else
		{
			/*不做处理*/
		}
	}
	else
	{
		/*不做处理*/
	}
}

/*
* 功能描述： 获取指定ID洗车机洗车模式反馈状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID
* 返回值  ： 0: 获取数据失败
*			>0: 洗车模式反馈状态
* by cgh 20231108
*/
UINT8 GetWashWorkModeBackState(const UINT16 WashMachineId)
{
	UINT16 bufIndex = 0U;  /*数组下标*/
	UINT8 retVal = 0U;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].chSetWashWorkModeBack;
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}

/*
* 功能描述： 设置指定ID洗车机降级模式洗车同意状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID
*			 const UINT8 chDownWashAllowState, 降级模式洗车同意状态
* 返回值  ：无
*by cgh 20231113
*/
void SetDownWashAllowState(const UINT16 WashMachineId, const UINT8 chDownWashAllowState)
{
	UINT16 bufIndex = 0U;  /*数组下标*/

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if ((WASH_COL_STATE_ALLOW_YES == chDownWashAllowState)
			|| (WASH_COL_STATE_ALLOW_NO == chDownWashAllowState))
		{
			WashMachineDataStru[bufIndex].chDownWashAllowState = chDownWashAllowState;
		}
		else
		{
			/*不做处理*/
		}
	}
	else
	{
		/*不做处理*/
	}
}

/*
* 功能描述： 获取指定ID洗车机降级模式洗车同意状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID
* 返回值  ： 0: 获取数据失败
*			>0: 降级模式洗车同意状态
* by cgh 20231108
*/
UINT8 GetDownWashAllowState(const UINT16 WashMachineId)
{
	UINT16 bufIndex = 0U;  /*数组下标*/
	UINT8 retVal = 0U;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].chDownWashAllowState;
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}

/*
* 功能描述： 设置指定ID洗车机降级模式洗车同意通过状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID
*			 const UINT8 chBackState, 降级模式洗车同意通过状态
* 返回值  ：无
*by cgh 20231113
*/
void SetDownWashAllowPassState(const UINT16 WashMachineId, const UINT8 chDownWashAllowPassState)
{
	UINT16 bufIndex = 0U;  /*数组下标*/

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if ((WASH_COL_STATE_ALLOW_PASS_YES == chDownWashAllowPassState)
			|| (WASH_COL_STATE_ALLOW_PASS_NO == chDownWashAllowPassState))
		{
			WashMachineDataStru[bufIndex].chDownWashAllowPassState = chDownWashAllowPassState;
		}
		else
		{
			/*不做处理*/
		}
	}
	else
	{
		/*不做处理*/
	}
}

/*
* 功能描述： 获取指定ID洗车机降级模式洗车同意通过状态
* 参数说明： const UINT16 WashMachineId, 洗车机ID
* 返回值  ： 0: 获取数据失败
*			>0: 降级模式洗车同意通过状态
* by cgh 20231108
*/
UINT8 GetDownWashAllowPassState(const UINT16 WashMachineId)
{
	UINT16 bufIndex = 0U;  /*数组下标*/
	UINT8 retVal = 0U;

	bufIndex = GetWashMachineIdConfigBufIndex(WashMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].chDownWashAllowPassState;
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}


/*********************************************************新增************************************************/


/*
* 功能描述：获取指定ID洗车机洗车同意按钮当前状态
* 参数说明： const UINT16 washMachineId, 洗车机ID
* 返回值  ： 0: 设置数据失败
*           >0: 设置数据成功
*/
UINT8 GetWashmachineXTACurState(const UINT16 washMachineId)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
	UINT8 retVal = CI_ERROR;

	bufIndex = GetWashMachineIdConfigBufIndex(washMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].WashmachineXTACurState;  
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}
/*
* 功能描述：设置指定ID洗车机洗车同意按钮当前状态
* 参数说明： const UINT16 washMachineId, 洗车机ID
*            const UINT8 xtaState, 洗车同意按钮状态
* 返回值  ： 0: 设置数据失败
*           >0: 设置数据成功
*/
UINT8 SetWashmachineXTACurState(const UINT16 washMachineId, const UINT8 xtaState)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
	UINT8 retVal = CI_ERROR;

	bufIndex = GetWashMachineIdConfigBufIndex(washMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if ((XTA_STATE_RAISE_UP == xtaState) || (XTA_STATE_PRESS_DOWN == xtaState))
		{
			WashMachineDataStru[bufIndex].WashmachineXTACurState = xtaState;  
			retVal = CI_SUCCESS;
		}
		else
		{
			retVal = CI_ERROR;
		}
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}

/*
* 功能描述：获取指定ID洗车机洗车同意按钮之前状态
* 参数说明： const UINT16 washMachineId, 洗车机ID
* 返回值  ： 0: 设置数据失败
*           >0: 设置数据成功
*/
UINT8 GetWashmachineXTAPreState(const UINT16 washMachineId)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
	UINT8 retVal = CI_ERROR;

	bufIndex = GetWashMachineIdConfigBufIndex(washMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].WashmachineXTAPreState;  
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}
/*
* 功能描述：设置指定ID洗车机洗车同意按钮之前状态
* 参数说明： const UINT16 washMachineId, 洗车机ID
*            const UINT8 xtaState, 洗车同意按钮状态
* 返回值  ： 0: 设置数据失败
*           >0: 设置数据成功
*/
UINT8 SetWashmachineXTAPreState(const UINT16 washMachineId, const UINT8 xtaState)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
	UINT8 retVal = CI_ERROR;

	bufIndex = GetWashMachineIdConfigBufIndex(washMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if ((XTA_STATE_RAISE_UP == xtaState) || (XTA_STATE_PRESS_DOWN == xtaState))
		{
			WashMachineDataStru[bufIndex].WashmachineXTAPreState = xtaState;  
			retVal = CI_SUCCESS;
		}
		else
		{
			retVal = CI_ERROR;
		}
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}


/*
* 功能描述：获取指定ID洗车机洗车同意按钮逻辑状态
* 参数说明： const UINT16 washMachineId, 洗车机ID
*            const UINT8 xtaState, 洗车同意按钮状态
* 返回值  ： 0: 设置数据失败
*           >0: 设置数据成功
*/
UINT8 GetWashmachineXTALogicState(const UINT16 washMachineId)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
	UINT8 retVal = CI_ERROR;

	bufIndex = GetWashMachineIdConfigBufIndex(washMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].WashmachineXTALogicState;  
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}
/*
* 功能描述：设置指定ID洗车机洗车同意按钮逻辑状态
* 参数说明： const UINT16 washMachineId, 洗车机ID
*            const UINT8 xtaState, 洗车同意按钮状态
* 返回值  ： 0: 设置数据失败
*           >0: 设置数据成功
*/
UINT8 SetWashmachineXTALogicState(const UINT16 washMachineId, const UINT8 xtaState)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
	UINT8 retVal = CI_ERROR;

	bufIndex = GetWashMachineIdConfigBufIndex(washMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if ((XTA_STATE_RAISE_UP == xtaState) || (XTA_STATE_PRESS_DOWN == xtaState))
		{
			WashMachineDataStru[bufIndex].WashmachineXTALogicState = xtaState;  
			retVal = CI_SUCCESS;
		}
		else
		{
			retVal = CI_ERROR;
		}
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}

/*
* 功能描述：设置指定ID洗车机洗车同意按钮按下起始周期号
* 参数说明： const UINT16 washMachineId, 洗车机ID
*            const UINT32 startCycNum, 起始周期号
* 返回值  ： 0: 设置数据失败
*           >0: 设置数据成功
*/
UINT8 SetWashMachineXTAPressDownCyc(const UINT16 washMachineId, const UINT32 startCycNum)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
	UINT8 retVal = CI_ERROR;

	bufIndex = GetWashMachineIdConfigBufIndex(washMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		WashMachineDataStru[bufIndex].WashmachineXTAPressDownCycle = startCycNum;  
		retVal = CI_SUCCESS;
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}
/*
* 功能描述： 获取指定ID洗车机洗车同意按钮按下起始周期号
* 参数说明： const UINT16 doorId，洗车机ID
* 返回值  ： 0: 获取数据失败
*           >0: 起始周期号
*/
UINT32 GetWashMachineXTAPressDownCyc(const UINT16 washMachineId)
{
	UINT16 bufIndex = 0u;  /*数组下标*/
	UINT32 retVal = CI_ERROR;

	bufIndex = GetWashMachineIdConfigBufIndex(washMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].WashmachineXTAPressDownCycle;  
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}
/*
* 功能描述：设置指定ID洗车机洗车模式逻辑状态
* 参数说明： const UINT16 washMachineId, 洗车机ID
*            const UINT8 modeState, 洗车模式状态
* cgh-合并CID-3037-9：
*
*/
void SetWashModeState(const UINT16 washMachineId, const UINT8 modeState)
{
	UINT16 bufIndex = 0;  /*数组下标*/

	bufIndex = GetWashMachineIdConfigBufIndex(washMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		if ((XTA_MODE_STATE_DOWN == modeState)
			|| (XTA_MODE_STATE_UP == modeState)
			|| (XTA_MODE_STATE_NO == modeState))
		{
			WashMachineDataStru[bufIndex].WashModeState = modeState;
		}
		else
		{
			; /*不处理*/
		}
	}
	else
	{
		/*不做处理*/
	}
}

/*
* 功能描述：获取指定ID洗车机洗车模式逻辑状态
* 参数说明： const UINT16 washMachineId, 洗车机ID
*
* 返回值  ： 0: 获取数据失败
*           >0: 洗车模式
* cgh-合并CID-3037-9：
*/
UINT8 GetWashModeState(const UINT16 washMachineId)
{
	UINT16 bufIndex = 0;  /*数组下标*/
	UINT8 retVal = CI_ERROR;

	bufIndex = GetWashMachineIdConfigBufIndex(washMachineId);  /*获取洗车机数组下标*/

	if (bufIndex < WASHMACHINE_SUM_MAX)
	{
		retVal = WashMachineDataStru[bufIndex].WashModeState;
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}

/*
* 功能描述： 获取指定ID洗车机洗车模式驱动继电器驱动开始周期号
* 参数说明： const UINT16 washMachineId, 洗车机ID
* 返回值  ： 0: 获取数据失败
*			>0: 驱动起始周期号
* by cgh 20231208
*/
UINT32 GetWashWorkModeRelayDrvCycle(const UINT16 washMachineId)
{
	UINT32 retVal = CI_ERROR;
	UINT16 wBufIndex = 0U;  /*数组下标*/

	wBufIndex = GetWashMachineIdConfigBufIndex(washMachineId);  /*获取洗车机数组下标*/

	if (WASHMACHINE_SUM_MAX > wBufIndex)
	{
		retVal = WashMachineDataStru[wBufIndex].WashWorkModeRelayDrvCycle;
	}
	else
	{
		retVal = CI_ERROR;
	}
	return retVal;
}


/*
* 功能描述： 设置指定ID洗车机洗车模式驱动继电器驱动开始周期号
* 参数说明： const UINT16 washMachineId, 洗车机ID
*			 const UINT32 CycNum, 继电器驱动起始周期号
* 返回值  ： 无
*by cgh 20231208
*/
void SetWashWorkModeRelayDrvCycle(const UINT16 washMachineId, const UINT32 CycNum)
{
	UINT16 wBufIndex = 0U;  /*数组下标*/

	wBufIndex = GetWashMachineIdConfigBufIndex(washMachineId);  /*获取洗车机数组下标*/

	if (WASHMACHINE_SUM_MAX > wBufIndex)
	{
		/*指定指定ID洗车机洗车模式驱动继电器驱动开始周期号*/
		WashMachineDataStru[wBufIndex].WashWorkModeRelayDrvCycle = CycNum;  
	}
	else
	{
		/*不处理*/
	}
}

