/******************************************************************************
版权所有：	
文件名称：	mod_set.h
文件版本：	01.01
创建作者:	   sunxi
创建日期：	2012-10-07
功能说明：	模块定值功能实现。
其它说明：	
修改记录：
*/
#ifndef _M_SET_H
#define _M_SET_H
/*------------------------------- 头文件 --------------------------------------
*/
#include "m.h"


/*------------------------------- 宏定义 --------------------------------------
*/
#define SET_GROUP_MAX			8


/*------------------------------ 类型结构 -------------------------------------
*/
//定值条目
struct set_item
{
	s16 	type;				//定值类型
	s16		unit;				//定值单位 
	s8 		name[PARA_NAME_LEN];	//定值名称
	float 	max;				//定值最大值
	float 	min;				//定值最小值
	float	def;				//定值默认值
	s32		list_index;			//如果定值类型为列表，此域表示在List结构描述总表中的索引。
	u32   	group;				//定值分组
};

//列表条目
struct list_item
{
	u32 	value;
	s8		name[MOD_NAME_LEN];	
};

//列表条目
struct list_sum_item
{
	u32 	index;
	u32		num;	
};

//单位条目
struct unit_item
{
	s8		unit[MOD_NAME_LEN];		//定值单位
};

//定值参数描述文件头，64bytes
struct set_file_head_desc
{
	struct cfg_file_head cfh;		//配置文件头
	
	// 装置类型
	u8 	equ_sw_num;
	u8 	equ_brd_num;
	s8 	equ_name[14];
	
	//以下每个区域的首地址16字节对齐
	//外部定值
	u32	set_extpub_addr;	//地址
	u32	set_extpub_num;	//个数

	u32	set_extsw_addr;	//地址
	u32	set_extsw_num;	//个数
	
	//内部定值
	u32	set_int_addr;	//地址
	u32	set_int_num;	//个数
	
	//装置参数
	u32	set_arg_addr;	//地址
	u32	set_arg_num;	//个数
	
	//列表结构描述
	u32	list_addr;		//地址
	u32	list_num;		//个数
	
	//列表结构描述总表
	u32	list_sum_addr;	//地址
	u32	list_sum_num;	//个数
	
	//单位
	u32	unit_addr;		//地址
	u32	unit_num;		//个数

	u16	reserved[4];
};

//定值参数数据文件头
struct set_file_head_data
{
	struct cfg_file_head cfh;		//配置文件头
	
	//工程文件名
	s8	prj_name[64];

	// 装置类型
	u8	equ_sw_num;
	u8 	equ_brd_num;
	s8 	equ_name[14];
	
	//以下每个区域的首地址16字节对齐
	//外部定值
	u32	set_extpub_addr;	//地址
	u32	set_extpub_num;	//个数

	u32	set_extsw_addr;	//地址
	u32	set_extsw_num;	//个数
	
	//内部定值
	u32	set_int_addr;	//地址
	u32	set_int_num;	//个数
	
	//装置参数
	u32	set_arg_addr;	//地址
	u32	set_arg_num;	//个数
	
	//对应描述文件
	u32	desc_version;	// 版本
	u32	desc_signature;	// 签名
	u32	desc_length;	// 长度
	u16	desc_crc;		// CRC
	u16 reserved0;
};



/*------------------------------ 函数声明 -------------------------------------
*/


#endif //_M_SET.H

/*------------------------------ 文件结束 -------------------------------------
*/

