/******************************************************************** 版权所有: 文件版本: V1.00 文件名称: fmt.c 生成日期: 2007年04月26日 作 者:xxxxxx 使用范围: 功 能: 菜单内容格式分析 更新信息: 更新日志1: 修改者: 修改日期: 修改内容: 修改原因: *********************************************************************/ #ifndef FORMATIO_H #define FORMATIO_H #define LCD_COLUMNS 40 #define LowerToUpper( c ) (c>'`'&&c<'{') ? c-('a'-'A') : c #define UpperToLower( c ) (c>'@'&&c<'[') ? c+('a'-'A') : c /*菜单的反显类型*/ enum { MMI_FOCUS_NO=0, //不反显 MMI_FOCUS_NORMAL, //正常反显 MMI_FOCUS_DATA //只反显数据 }; /*修改数据的结构定义*/ typedef struct Modify { void *pValue; // 数据指针 void *pFmtstr; // 格式描述指针 char Fmtstr[24]; // 格式描述字符串 char Valstr[24]; // 数据字符串 short x,y; // 坐标 char Type; // 数据类型 char Current; // 当前数据编辑的位置,可理解为光标位 char Lenth; // 数据字符串长度 char index; // 当前屏中正刷新的实体项 bool bModify; // 当前项是否进入编辑状态 bool bFmtstr; // 小数点可修改 }MODIFY_DEF; extern MODIFY_DEF g_tModify; short fmt_GetStrLenth(char *pd,char *FmtStr); void fmt_Printf(short x,short y,char Flags,const char *FmtStr,...); void fmt_StrPrintf(short sx,short sy,short bytes,char model,const char *str); void fmt_InitModify(BYTE index,short x,short y,void *p,char flag,const char *FmtStr,...); void fmt_CursorOff(void); void fmt_CursorOn(void); void fmt_CursorFlush(void); bool fmt_CursorLeft(void); bool fmt_CursorRight(void); void fmt_CursorAdd(void); void fmt_CursorSubb(void); void fmt_GetModifyValue_Single(void); bool fmt_GetModifyType(void); void StrToValue(char *Str,char *FmtStr,void *Varible); unsigned char ValuePtrToStr(char *Str,char *FmtStr,va_list ap); unsigned char ScanFmtStr(char *Type,const char *ScanPtr,char *FmtStr); float atof1(char *str); // 将字符串转为浮点数 #endif