📄 character.c
字号:
#include "character.h"
extern char UART_data[5];
extern void number_to_char(uint8 data,char *tmp );
//#include "file.h"
extern struct dst_inf *ppp;
//求最大值
UINT32 max(UINT32 a , UINT32 b)
{
UINT32 temp = 0;
if(a>=b)
{
temp = a;
}
else if(a<b)
{
temp =b;
}
return temp;
}
/*
char file_dir_daxie[] = "\\DAXIE\\AD.ICT";
char file_dir_xiaoxie[] = "\\XIAOXIE\\AX.ICT";
char file_dir_num[] = "\\NUM\\1.ICT";
char file_dir_space[] = "\\NUM\\SPACE.ICT";
//生成根据文件名生成文件路径
char * get_file_dir(char file_name)
{
char * file_dir;
if(file_name>64&&file_name<91)
{
file_dir = file_dir_daxie;
file_dir[7] = file_name;
}
else if(file_name>96&&file_name<123)
{
file_name -= 32;
file_dir = file_dir_xiaoxie;
file_dir[9] = file_name;
}
else if(file_name>47&&file_name<58)
{
file_dir = file_dir_num;
file_dir[5] = file_name;
}
else
{
file_dir = file_dir_space;
}
return file_dir;
}
*/
extern int UART0_SendByte(uint8 data);
void Get_Data(uchar *data, uchar * file_name)
{
UART0_SendStr("IN Get_Data********************\n file_name=");
Uart_Printf("%x ",*file_name);
UART0_SendStr("IN...");
while( (*file_name) != 0xB4)
{
*data = *file_name;
file_name++;
data++;
*data = *file_name;
file_name++;
data++;
*data = *file_name;
file_name++;
data++;
}
//补上最后一针数据
*data = *file_name;
file_name++;
data++;
*data = *file_name;
file_name++;
data++;
*data = *file_name;
file_name++;
data++;
}
extern uchar file_dst[100000];
extern uchar color_flag;
extern uchar turnRoundStatus;
/////////////////////////////////////////////////////////
///字符编辑函数
//int character_edit(struct dst_inf *p , uchar *file ,uint8 len , char * p_string )
int character_edit(struct dst_inf *p , uchar *file ,uint8 len , uchar ** p_string )
{
UINT32 i,j;
int whole_pin_num,color_num,width,hight;
uchar * character_dst = file+9000; //读入祖父文件到缓存区的末尾指针
uchar * character_data = file+512; //将针数据放入缓冲区的指针首地址
///////////////////////////////////////////////////////////////////////
///读取第一个字符对应的文件
turnRoundStatus=0;//初始化花样方向为"上"
ppp=p;
Get_Data(character_dst, p_string[0]);
////////////////
whole_pin_num = character_dst[0];
color_num = character_dst[1];
width = character_dst[2] + character_dst[3] + 10;//10为字符间距
hight = character_dst[4] + character_dst[5] ;
for(i=0;i<whole_pin_num*3;i++)
{
character_data[i] = character_dst[i+6];
}
///////////////////////////////////////////////////////////////////////
///读取后面的字符对应的文件
for(i=1;i<len;i++)
{
Get_Data(character_dst, p_string[i]);
character_data[(whole_pin_num)*3-3] = 0xB2;
character_data[(whole_pin_num)*3-2] = 0;
character_data[(whole_pin_num)*3-1] = 0;
for(j=0;j<(character_dst[0])*3;j++)
{
character_data[j+(whole_pin_num)*3] = character_dst[j+6];
}
whole_pin_num += character_dst[0];
color_num += character_dst[1];
width = width + 10;//10为字符间距
width = width + character_dst[2] + character_dst[3];
hight = max(hight,(character_dst[4] + character_dst[5]));
/*UART0_SendStr("******** ( ");
number_to_char(whole_pin_num,&UART_data[0]);
UART0_SendStr(UART_data);
UART0_SendStr(" )( ");
number_to_char(color_num,&UART_data[0]);
UART0_SendStr(UART_data);
UART0_SendStr(" )( ");
number_to_char(width,&UART_data[0]);
UART0_SendStr(UART_data);
UART0_SendStr(" )( ");
number_to_char(hight,&UART_data[0]);
UART0_SendStr(UART_data);
UART0_SendStr(" )************ "); */
}
///////////////////////////////////////////////////////////////////////
//数据赋值给结构体
ppp->width = width;
ppp->hight = hight;
ppp->star_x = -(width/2);
if((ppp->star_x)<0)
{
ppp->star_x = 32768 - ppp->star_x;
}
ppp->star_y = -(hight/2);
if((ppp->star_y)<0)
{
ppp->star_y = 32768 - ppp->star_y;
}
ppp->color_num = color_num;
ppp->whole_pin_num = whole_pin_num;
/*tmp = ppp->whole_pin_num/0xff;
number_to_char(tmp,&UART_data[0]);
UART0_SendStr(UART_data);
UART0_SendStr("*256 + ");
number_to_char(ppp->whole_pin_num,&UART_data[0]);
UART0_SendStr(UART_data);
UART0_SendStr("*** ");*/
ppp->data_stitch = character_data;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -