GT5SLCD2E_1A.h 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. /*
  2. *创建时间:2020-03-27
  3. *创建人: yang
  4. **/
  5. #ifndef _GT5SLCD2E_1A_H_
  6. #define _GT5SLCD2E_1A_H_
  7. /* 外部函数声明 */
  8. extern unsigned long r_dat_bat(unsigned long address,unsigned long DataLen,unsigned char *pBuff);
  9. extern unsigned char gt_read_data(unsigned char* sendbuf , unsigned char sendlen , unsigned char* receivebuf, unsigned int receivelen);
  10. extern unsigned char CheckID(unsigned char CMD, unsigned long address,unsigned long byte_long,unsigned char *p_arr);
  11. /* ----------------------------------------------------------- */
  12. //字库初始化
  13. int GT_Font_Init(void);
  14. /********************* 矢量公用部分 *********************/
  15. //中文
  16. #define VEC_SONG_STY 1 //宋体
  17. //ASCII码
  18. #define VEC_FT_ASCII_STY 5
  19. #define VEC_DZ_ASCII_STY 6
  20. #define VEC_CH_ASCII_STY 7
  21. #define VEC_BX_ASCII_STY 8
  22. #define VEC_BZ_ASCII_STY 9
  23. #define VEC_FX_ASCII_STY 10
  24. #define VEC_GD_ASCII_STY 11
  25. #define VEC_HZ_ASCII_STY 12
  26. #define VEC_MS_ASCII_STY 13
  27. #define VEC_SX_ASCII_STY 14
  28. #define VEC_ZY_ASCII_STY 15
  29. #define VEC_TM_ASCII_STY 16
  30. //拉丁文
  31. #define VEC_YJ_LATIN_STY 17
  32. /******************* 两种调用模式配置 *******************/
  33. /**
  34. * 方式一 VEC_ST_MODE : 通过使用声明VECFONT_ST结构体变量, 配置结构体信息,
  35. * 获取点阵数据到zk_buffer[]数组中.
  36. * 方式二 VEC_PARM_MODE : 通过指定参数进行调用, 获取点阵数据到pBits[]数组中.
  37. * ps: 两种方式可同时配置使用, 择一使用亦可.
  38. */
  39. #define VEC_ST_MODE
  40. #define VEC_PARM_MODE
  41. /********************* 分割线 *********************/
  42. #ifdef VEC_ST_MODE
  43. #define ZK_BUFFER_LEN 4608 //可修改大小, 约等于 字号*字号/8.
  44. typedef struct vecFont
  45. {
  46. unsigned long fontCode; //字符编码中文:GB18030, ASCII/外文: unicode
  47. unsigned char type; //字体 @矢量公用部分
  48. unsigned char size; //文字大小
  49. unsigned char thick; //文字粗细
  50. unsigned char zkBuffer[ZK_BUFFER_LEN]; //数据存储
  51. }VECFONT_ST;
  52. unsigned int get_font_st(VECFONT_ST * font_st);
  53. #endif
  54. #ifdef VEC_PARM_MODE
  55. /*
  56. *函数名: get_font()
  57. *功能: 矢量文字读取函数
  58. *参数:pBits 数据存储
  59. * sty 文字字体选择 @矢量公用部分
  60. * fontCode 字符编码中文:GB18030, ASCII/外文: unicode
  61. * width 文字宽度
  62. * height 文字高度
  63. * thick 文字粗细
  64. *返回值:文字显示宽度
  65. **/
  66. unsigned int get_font(unsigned char *pBits,unsigned char sty,unsigned long fontCode,unsigned char width,unsigned char height, unsigned char thick);
  67. #endif
  68. /********************* 矢量区域结束 *********************/
  69. /*
  70. *函数名: get_Font_Gray()
  71. *功能 灰度矢量文字读取函数
  72. *参数:pBits 数据存储
  73. * sty 文字字体选择 @矢量公用部分
  74. * fontCode 字符编码中文:GB18030, ASCII/外文: unicode
  75. * fontSize 文字大小
  76. * thick 文字粗细
  77. *返回值:re_buff[0] 字符的显示宽度 , re_buff[1] 字符的灰度阶级[1阶/2阶/3阶/4阶]
  78. **/
  79. unsigned int* get_Font_Gray(unsigned char *pBits,unsigned char sty,unsigned long fontCode,unsigned char fontSize, unsigned char thick);
  80. //Unicode转GBK
  81. unsigned long U2G(unsigned int unicode);
  82. //BIG5转GBK
  83. unsigned int BIG52GBK( unsigned char h,unsigned char l );
  84. /*----------------------------------------------------------------------------------------
  85. * 灰度数据转换函数 2阶灰度/4阶灰度
  86. * 说明 : 将点阵数据转换为灰度数据 [eg:32点阵数据转2阶灰度数据则转为16点阵灰度数据]
  87. * 参数 :
  88. * OutPutData灰度数据; width 宽度; High 高度; grade 灰度阶级[1阶/2阶/3阶/4阶]
  89. *------------------------------------------------------------------------------------------*/
  90. void Gray_Process(unsigned char *OutPutData ,int width,int High,unsigned char Grade);
  91. /*----------------------------------------------------------------------------------------
  92. * 灰度文字颜色设置
  93. * BmpDst 目标图片数据
  94. * BmpSrc 图标图片数据
  95. * WORD x, WORD y, 图标在目标图片的 X,Y位置。
  96. * WORD src_w, WORD src_h, 图标的宽度和高度
  97. * WORD dst_w, WORD dst_h 目标图片的宽度和高度
  98. * SrcGray 灰度文字数据
  99. * Grade 灰度阶级[2阶/4阶]
  100. *------------------------------------------------------------------------------------------*/
  101. void AlphaBlend_whiteBC(unsigned char *BmpDst,unsigned char *BmpSrc, int x, int y,
  102. int src_w, int src_h, int dst_w, int dst_h,unsigned char *SrcGray,unsigned char Grade);
  103. /*----------------------------------------------------------------------------------------
  104. * 灰度文字与背景混合
  105. * BmpDst 目标图片数据
  106. * BmpSrc 图标图片数据
  107. * WORD x, WORD y, 图标在目标图片的 X,Y位置。
  108. * WORD src_w, WORD src_h, 图标的宽度和高度
  109. * WORD dst_w, WORD dst_h 目标图片的宽度和高度
  110. * SrcGray 灰度文字数据
  111. * Grade 灰度阶级[2阶/4阶]
  112. *------------------------------------------------------------------------------------------*/
  113. void AlphaBlend_blackBC(unsigned char *BmpDst,unsigned char *BmpSrc, int x, int y,
  114. int src_w, int src_h, int dst_w, int dst_h,unsigned char *SrcGray,unsigned char Grade);
  115. #endif
  116. /*--------------------------------------- end of file ---------------------------------------------*/