/******************************************************************************
版权所有：	
文件名称：	channel.c
文件版本：	01.01
创建作者：	xxxxxx
创建日期：	2015-5-5
功能说明：	通道层实现文件
								

-------------------
-				APP层			-
-------------------
-				规约层		-
-------------------
-				通道层		-
-------------------
-				驱动层		-
-------------------
								
								
								
其它说明：
修改记录：
*/

#include "channel.h"


/******************************************************************************
函数名称：	channel_write
函数版本：	01.01
创建作者：	xxxxxx
创建日期：	2015-05-05
函数说明：	通道写函数
参数说明：	
						h_obj: 通道句柄
						data: 要发送的数据
						count: 数据长度

返回值：		成功返回发送的字节数,失败返回-1.返回0表示没有数据发送。
修改记录：	
*/
int channel_write(T_channel *h_obj, const char *data, int count)
{
	int ret = 0;
	
	//检查输入参数的合法性
	if((!h_obj) || (count < 0) || (!data))
	{
		return -1;
	}
	
	//无数据返回
	if(count == 0)
	{
		return 0;
	}
	
	//发送数据
	if(h_obj->write)
	{
			ret = h_obj->write(h_obj, data, count);
	}
	
	return ret;
}

/******************************************************************************
函数名称：	channel_read
函数版本：	01.01
创建作者：	xxxxxx
创建日期：	2015-05-05
函数说明：	通道读函数
参数说明：	
						h_obj: 通道句柄
						data:  数据缓存
						count: 读取的长度

返回值：		成功返回读取的字节数,失败返回-1.返回0表示没有数据可读.
修改记录：	
*/
int channel_read(T_channel *h_obj, char *data, int count)
{
	int ret = 0;
	
	//检查输入参数的合法性
	if((!h_obj) || (count < 0) || (!data))
	{
		return -1;
	}
	
	//无数据返回
	if(count == 0)
	{
		return 0;
	}	

	//发送数据
	if(h_obj->read)
	{
		ret = h_obj->read(h_obj, data, count);
	}

	
	return ret;	
	
}


