LCD—液晶显示中英文

本节主要介绍以下内容:

字符编码

字模

各种模式的液晶显示字符实验

本节字符编码说明参考网站

字符编码及转换测试:导航菜单 - 千千秀字

Unicode官网:http://www.unicode.org

一、字符编码

由于计算机只能识别01,文字也只能以01的形式在计算机里存储,所以我们需要对文字进行编码才能让计算机处理,编码的过程就是规定特定的01数字串来表示特定的文字,最简单的字符编码例子是ASCII码。

1.1 ASCII编码

在程序设计中使用ASCII编码表约定了一些控制字符、英文及数字。它们在存储器中,本质也是二进制数,只是我们约定这些二进制数可以表示某些特殊意义,如以ASCII编码解释数字“0x41”时,它表示英文字符“A”。

1.1.1 ASCII编码表

十进制

十六进制

缩写/字符

解释

0

0

NUL(null)

空字符

1

1

SOH(start of headline)

标题开始

2

2

STX (start of text)

正文开始

3

3

ETX (end of text)

正文结束

4

4

EOT (end of transmission)

传输结束

5

5

ENQ (enquiry)

请求

6

6

ACK (acknowledge)

收到通知

7

7

BEL (bell)

响铃

8

8

BS (backspace)

退格

9

9

HT (horizontal tab)

水平制表符

10

0A

LF (NL line feed, new line)

换行键

11

0B

VT (vertical tab)

垂直制表符

12

0C

FF (NP form feed, new page)

换页键

13

0D

CR (carriage return)

回车键

14

0E

SO (shift out)

不用切换

15

0F

SI (shift in)

启用切换

16

10

DLE (data link escape)

数据链路转义

17

11

DC1 (device control 1)

设备控制1

18

12

DC2 (device control 2)

设备控制2

19

13

DC3 (device control 3)

设备控制3

20

14

DC4 (device control 4)

设备控制4

21

15

NAK (negative acknowledge)

拒绝接收

22

16

SYN (synchronous idle)

同步空闲

23

17

ETB (end of trans. block)

传输块结束

24

18

CAN (cancel)

取消

25

19

EM (end of medium)

介质中断

26

1A

SUB (substitute)

替补

27

1B

ESC (escape)

换码(溢出)

28

1C

FS (file separator)

文件分割符

29

1D

GS (group separator)

分组符

30

1E

RS (record separator)

记录分离符

31

1F

US (unit separator)

单元分隔符

十进制

十六进制

缩写/字符

解释

0

0

NUL(null)

空字符

1

1

SOH(start of headline)

标题开始

2

2

STX (start of text)

正文开始

3

3

ETX (end of text)

正文结束

4

4

EOT (end of transmission)

传输结束

5

5

ENQ (enquiry)

请求

6

6

ACK (acknowledge)

收到通知

7

7

BEL (bell)

响铃

8

8

BS (backspace)

退格

9

9

HT (horizontal tab)

水平制表符

10

0A

LF (NL line feed, new line)

换行键

11

0B

VT (vertical tab)

垂直制表符

12

0C

FF (NP form feed, new page)

换页键

13

0D

CR (carriage return)

回车键

14

0E

SO (shift out)

不用切换

15

0F

SI (shift in)

启用切换

16

10

DLE (data link escape)

数据链路转义

17

11

DC1 (device control 1)

设备控制1

18

12

DC2 (device control 2)

设备控制2

19

13

DC3 (device control 3)

设备控制3

20

14

DC4 (device control 4)

设备控制4

21

15

NAK (negative acknowledge)

拒绝接收

22

16

SYN (synchronous idle)

同步空闲

23

17

ETB (end of trans. block)

传输块结束

24

18

CAN (cancel)

取消

25

19

EM (end of medium)

介质中断

26

1A

SUB (substitute)

替补

27

1B

ESC (escape)

换码(溢出)

28

1C

FS (file separator)

文件分割符

29

1D

GS (group separator)

分组符

30

1E

RS (record separator)

记录分离符

31

1F

US (unit separator)

单元分隔符

54

36

6

102

66

f

55

37

7

103

67

g

56

38

8

104

68

h

57

39

9

105

69

i

58

3A

:

106

6A

j

59

3B

;

107

6B

k

60

3C

108

6C

l

61

3D

=

109

6D

m

62

3E

110

6E

n

63

3F

?

111

6F

o

64

40

@

112

70

p

65

41

A

113

71

q

66

42

B

114

72

r

67

43

C

115

73

s

68

44

D

116

74

t

69

45

E

117

75

u

70

46

F

118

76

v

71

47

G

119

77

w

72

48

H

120

78

x

73

49

I

121

79

y

74

4A

J

122

7A

z

75

4B

K

123

7B

{

76

4C

L

124

7C

|

77

4D

M

125

7D

}

78

4E

N

126

7E

~

79

4F

O

127

7F

DEL (delete) 删除

ASCII码表分为两部分,第一部分是控制字符或通讯专用字符,它们的数字编码从0~31,它们并没有特定的图形显示,但会根据不同的应用程序,而对文本显示有不同的影响。ASCII码的第二部分包括空格、阿拉伯数字、标点符号、大小写英文字母以及“DEL(删除控制)”,这部分符号的数字编码从32~127,除最后一个DEL符号外,都能以图形的方式来表示,它们属于传统文字书写系统的一部分。

后来,计算机引进到其它国家的时候,由于他们使用的不是英语,他们使用的字母在ASCII码表中没有定义,所以他们采用127号之后的位来表示这些新的字母,还加入了各种形状,一直编号到255。从128255这些字符被称为ASCII扩展字符集。至此基本存储单位Byte(char)能表示的编号都被用完了。

1.2. GB2312标准

首先定义的是GB2312标准。它把ASCII码表127号之后的扩展字符集直接取消掉,并规定小于127的编码按原来ASCII标准解释字符。当2个大于127的字符连在一起时,就表示1个汉字,第1个字节使用 (0xA1-0xFE) 编码,第2个字节使用(0xA1-0xFE)编码,这样的编码组合起来可以表示了7000多个符号,其中包含6763个汉字。在这些编码里,我们还把数学符号、罗马字母、日文假名等都编进表中,就连原来在ASCII里原本就有的数字、标点以及字母也重新编了2个字节长的编码,这就是平时在输入法里可切换的“全角”字符,而标准的ASCII码表中127号以下的就被称为“半角”字符。

下表说明了GB2312是如何兼容ASCII码的,当我们设定系统使用GB2312标准的时候,它遇到一个字符串时,会按字节检测字符值的大小,若遇到连续两个字节的数值都大于127时就把这两个连续的字节合在一起,用GB2312解码,若遇到的数值小于127,就直接用ASCII把它解码。

1字节

2字节

表示的字符

说明

0x68

0x69

(hi)

两个字节的值都小于127(0x7F)

使用ASCII解码

0xB0

0xA1

()

两个字节的值都大于127(0x7F)

使用GB2312解码

区位码

GB2312编码的实际使用中,有时会用到区位码的概念GB2312编码对所收录字符进行了“分区”处理,共94个区,每区含有94个位,共8836个码位。而区位码实际是GB2312编码的内部形式,它规定对收录的每个字符采用两个字节表示,第一个字节为“高字节”,对应94个区第二个字节为“低字节”,对应94个位。所以它的区位码范围是:0101-9494为兼容ASCII码,区号和位号分别加上0xA0偏移就得到GB2312编码。在区位码上加上0xA0偏移,可求得GB2312编码范围:0xA1A10xFEFE,其中汉字的编码范围为0xB0A1-0xF7FE,第一字节0xB0-0xF7(对应区号:1687),第二个字节0xA1-0xFE(对应位号:0194)。 

例如,“啊”字是GB2312编码中的第一个汉字,它位于16区的01位,所以它的区位码就是1601,加上0xA0偏移,其GB2312编码为0xB0A1。其中区位码为0101的码位表示的是“空格”符。

1.3. GBK编码

据统计,GB2312编码中表示的6763个汉字已经覆盖中国大陆99.75%的使用率,单看这个数字已经很令人满意了,但是不能因为那些文字不常用就不让它进入信息时代,而且生僻字在人名、文言文中的出现频率是非常高的。

 为此我们在GB2312标准的基础上又增加了14240个新汉字(包括所有后面介绍的Big5中的所有汉字)和符号,这个方案被称为GBK标准。增加这么多字符,按照GB2312原来的格式来编码,2个字节已经存不下,我们的程序员修改了一下格式,不再要求第2个字节的编码值必须大于127,只要第1个字节大于127就表示这是一个汉字的开始,这样就做到兼容ASCII和GB2312标准了

说明了GBK是如何兼容ASCIIGB2312标准的,当我们设定系统使用GBK标准的时候,它按顺序遍历字符串,按字节检测字符值的大小,若遇到一个字符的值大于127时,就再读取它后面的一个字符,把这两个字符值合在一起,用GBK解码,解码完后,再读取第3个字符,重新开始以上过程,若该字符值小于127,则直接用ASCII解码。

1字节

2字节

3字节

表示的字符

说明

0x68(<7F)

0xB0(>7F)

0xA1(>7F)

(h)

1个字节小于127,使用ASCII解码,

2个字节大于127,直接使用GBK解码

,兼容GB2312

0xB0(>7F)

0xA1(>7F)

0x68(<7F)

(h)

1个字节大于127,直接使用GBK

解释,第3个字节小于127,使用ASCII

解码

0xB0(>7F)

0x56(<7F)

0x68(<7F)

(h)

1个字节大于127,第2个字节虽然小

127,直接使用GBK解码,第3个字节

小于127,使用ASCII解码

1.4. GB18030

随着计算机技术的普及,我们后来又在GBK的标准上不断扩展字符,这些标准被称为GB18030,如GB18030-2000GB18030-2005(-”号后面的数字是制定标准时的年号)GB18030的编码使用4个字节,它利用前面标准中的第2个字节未使用的“0x30-0x39”编码表示扩充四字节的后缀,兼容GBKGB2312ASCII标准。

GB18030-2000主要在GBK基础上增加了“CJK(中日韩)统一汉字扩充A”的汉字。加上前面GBK的内容,GB18030-2000一共规定了27533个汉字(包括部首、部件等)的编码,还有一些常用非汉字符号。

  GB18030-2005的主要特点是在GB18030-2000基础上增加了“CJK(中日韩)统一汉字扩充B”的汉字。增加了42711个汉字和多种我国少数民族文字的编码(如藏、蒙古、傣、彝、朝鲜、维吾尔文等)。加上前面GB18030-2000的内容,一共收录了70244个汉字。

1.5 各个标准的对比说明

GB2312GBKGB18030是汉字的国家标准编码,新版向下兼容旧版,各个标准简要说明见下表,目前比较流行的是GBK编码,因为每个汉字只占用2个字节,而且它编码的字符已经能满足大部分的需求,但国家要求一些产品必须支持GB18030标准。

1.6. Big5编码

在台湾、香港等地区,使用较多的是Big5编码,它的主要特点是收录了繁体字。而从GBK编码开始,已经把Big5中的所有汉字收录进编码了。即对于汉字部分,GBKBig5的超集,Big5能表示的汉字,在GBK都能找到那些字相应的编码,但他们的编码是不一样的,两个标准不兼容,如GBK中的“啊”字编码是“0xB0A1”,而Big5标准中的编码为“0xB0DA”。

主要做嵌入式的同学学习到这就可以了,因为我们平时用的主要就是GB2312/GBK.


1.7 Unicode字符集和编码

由于各个国家或地区都根据使用自己的文字系统制定标准,同一个编码在不同的标准里表示不一样的字符,各个标准互不兼容,而又没有一个标准能够囊括所有的字符,即无法用一个标准表达所有字符。国际标准化组织(ISO)为解决这一问题,它舍弃了地区性的方案,重新给全球上所有文化使用的字母和符号进行编号,对每个字符指定一个唯一的编号(ASCII中原有的字符编号不变),这些字符的号码从0x0000000x10FFFF,该编号集被称为Universal Multiple-Octet Coded Character Set,简称UCS,也被称为Unicode。最新版的Unicode标准还包含了表情符号(聊天软件中的部分emoji表情),可访问Unicode官网了解:http://www.unicode.org

  Unicode字符集只是对字符进行编号,但具体怎么对每个字符进行编码,Unicode并没指定,因此也衍生出了如下几种unicode编码方案(Unicode Transformation Format)

1.7.1 UTF-32

Unicode字符集编码,最自然的就是UTF-32方式了。编码时,它直接对Unicode字符集里的每个字符都用4字节来表示,转换方式很简单,直接将字符对应的编号数字转换为4字节的二进制数。

  由于UTF-32把每个字符都用要4字节来存储,因此UTF-32不兼容ASCII编码,也就是说ASCII编码的文件用UTF-32标准来打开会成为乱码。

字符

GBK编码

Unicode编号

UTF-32编码

A

0x41

0x0000 0041

大端格式0x0000 0041

0xB0A1

0x0000 554A

大端格式0x0000 554A

UTF-32数据进行解码的时候,以4个字节为单位进行解析即可,根据编码可直接找到Unicode字符集中对应编号的字符。

  UTF-32的优点是编码简单,解码也很方便,读取编码的时候每次都直接读4个字节,不需要加其它的判断。它的缺点是浪费存储空间,大量常用字符的编号只需要2个字节就能表示。其次,在存储的时候需要指定字节顺序,是高位字节存储在前(大端格式),还是低位字节存储在前(小端格式)

1.7.2 UTF-16

针对UTF-32的缺点,人们改进出了UTF-16的编码方式,它采用2字节或4字节的变长编码方式(UTF-32定长为4字节)。对Unicode字符编号在065535的统一用2个字节来表示,将每个字符的编号转换为2字节的二进制数,即从0x00000xFFFF。而由于Unicode字符集在0xD800-0xDBFF这个区间是没有表示任何字符的,所以UTF-16就利用这段空间,对Unicode中编号超出0xFFFF的字符,利用它们的编号做某种运算与该空间建立映射关系,从而利用该空间表示4字节扩展,感兴趣的读者可查阅相关资料了解具体的映射过程。

字符

GB18030编码

Unicode编号

UTF-16编码

A

0x41

0x0000 0041

大端格式0x0041

0xB0A1

0x0000 554A

大端格式0x554A

𧗌

0x9735 F832

0x0002 75CC

大端格式0xD85D DDCC

注:𧗌 五笔:TLHH(不支持GB18030码的输入法无法找到该字,感兴趣可搜索它的Unicode编号找到) 

UTF-16解码时,按两个字节去读取,如果这两个字节不在0xD8000xDFFF范围内,那就是双字节编码的字符,以双字节进行解析,找到对应编号的字符。如果这两个字节在0xD800 0xDFFF之间,那它就是四字节编码的字符,以四字节进行解析,找到对应编号的字符。

UTF-16编码的优点是相对UTF-32节约了存储空间,缺点是仍不兼容ASCII码,仍有大小端格式问题。

1.7.3 UTF-8

UTF-8是目前Unicode字符集中使用得最广的编码方式,目前大部分网页文件已使用UTF-8编码,如使用浏览器查看百度首页源文件,可以在前几行HTML代码中找到如下代码:

<meta http-equiv=Content-Type content="text/html;charset=utf-8">

其中“charset”等号后面的“utf-8”即表示该网页字符的编码方式UTF-8 

UTF-8也是一种变长的编码方式,它的编码有1234字节长度的方式,每个Unicode字符根据自己的编号范围去进行对应的编码它的编码符合以下规律:

  • 对于UTF-8单字节的编码,该字节的第1位设为0(从左边数起第1位,即最高位),剩余的位用来写入字符的Unicode编号。即对于Unicode编号从0x0000 0000-0x0000 007F的字符,UTF-8编码只需要1个字节,因为这个范围Unicode编号的字符与ASCII码完全相同,所以UTF-8兼容了ASCII码表。
  • 对于UTF-8使用N个字节的编码(N>1),第一个字节的前N位设为1,第N+1位设为0,后面字节的前两位都设为10,这N个字节的其余空位填充该字符的Unicode编号,高位用0补足。

Unicode(16进制)

UTF-82进制)

编号范围

第一字节

第二字节

第三字节

第四字节

第五字节

00000000-0000007F

0xxxxxxx

00000080-000007FF

110xxxxx

10xxxxxx

00000800-0000FFFF

1110xxxx

10xxxxxx

10xxxxxx

00010000-0010FFFF

11110xxx

10xxxxxx

10xxxxxx

10xxxxxx

111110xx

10xxxxxx

10xxxxxx

10xxxxxx

10xxxxxx

UTF-8解码的时候以字节为单位去看,如果第一个字节的bit位以0开头,那就是ASCII字符,以单字节进行解析。如果第一个字节的数据位以“110”开头,就按双字节进行解析,34字节的解析方法类似。

  UTF-8的优点是兼容了ASCII码,节约空间,且没有字节顺序的问题,它直接根据第1个字节前面数据位中连续的1个数决定后面有多少个字节。不过使用UTF-8编码汉字平均需要3个字节,比GBK编码要多一个字节。

二、什么是字模

有了编码,我们就能在计算机中处理、存储字符了,但是如果计算机处理完字符后直接以编码的形式输出,人类将难以识别。因此计算机与人交互时,一般会把字符转化成人类习惯的表现形式进行输出,如显示、打印的时候。

但是如果仅有字符编码,计算机还不知道该如何表达该字符,因为字符实际上是一个个独特的图形,计算机必须把字符编码转化成对应的字符图形人类才能正常识别,因此我们要给计算机提供字符的图形数据,这些数据就是字模,多个字模数据组成的文件也被称为字库。计算机显示字符时,根据字符编码与字模数据的映射关系找到它相应的字模数据,液晶屏根据字模数据显示该字符。

2.1 字模的构成

已知字模是图形数据,而图形在计算机中是由一个个像素点组成的,所以字模实质是一个个像素点数据。为方便处理,我们把字模定义成方块形的像素点阵,且每个像素点只有01这两种状态(可以理解为单色图像数据)

下图两个宽、高为16x16的像素点阵组成的两个汉字图形,其中的黑色像素点即为文字的笔迹。计算机要表示这样的图形,只需使用16x16个二进制数据位,每个数据位记录一个像素点的状态,把黑色像素点以“1”表示,无色像素点以“0”表示即可。这样的一个汉字图形,使用16x16/8=32个字节来就可以记录下来。

 16x16的“字”的字模数据以C语言数组的方式表示,见下面的代码,在这样的字模中,以两个字节表示一行像素点,16行构成一个字模。

2.2 字模显示原理

如果使用LCD的画点函数,按位来扫描这些字模数据,把为1的位以黑色来显示(也可以使用其它颜色),为0的数据位以白色来显示,即可把整个点阵还原出来,显示在液晶屏上。

便解,编写一个使用串口printf利用字模打印字符到串口上位机的实验,

代码:


/*阴码*/
uint8_t test_modul[] = 
{0x02,0x00,0x01,0x00,0x7F,0xFE,0x40,0x02,
0x80,0x04,0x1F,0xE0,0x00,0x40,0x00,0x80,
0x01,0x00,0xFF,0xFE,0x01,0x00,0x01,0x00,
0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00};/* 字 */

///*阳码*/
//uint8_t test_modul[] = 
//{0xFD,0xFF,0xFE,0xFF,0x80,0x01,0xBF,0xFD,
//	0x7F,0xFB,0xE0,0x1F,0xFF,0xBF,0xFF,0x7F,
//	0xFE,0xFF,0x00,0x01,0xFE,0xFF,0xFE,0xFF,
//0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF}; /*"字",0*/


void Display_char_test(void)
{
	uint8_t row_count,byte_count,bit_count;
	
	for(row_count=0;row_count < 16;row_count++ )
	{
		printf("\n");
		for(byte_count=0;byte_count<2;byte_count++)
		{
			for(bit_count=0;bit_count<8;bit_count++)
			{
				if(test_modul[row_count*2+byte_count] & (0x80>>bit_count) )
				{
					printf("*");
				}
				else
				{
					printf(" ");
				}			
			}		
		}		
	}

}

实验效果如下:

2.3  如何制作字模

为方便使用,需要制作所有常用字符的字模,如程序只需要英文显示,那就需要制作包含ASCII中所有字符的字模,如程序只需要使用一些常用汉字,可以选择制作GB2312编码里所有字符的字模,而且希望字模数据与字符编码有固定的映射关系,以便我们在程序中使用字符编码作为索引,查找字模。

  在网上搜索可找到一些制作字模的软件工具,可满足这些需求。在我们提供的《LCD—液晶显示汉字》的工程目录下提供了一个取模软件“PCtoLCD”,这里以它为例讲解如何制作字模,其它字模软件也是类似的。

  • 配置字模格式打开取模软件,点击“选项”菜单,会弹出一个对话框

  • 选项“点阵格式”中的阴、阳码是指字模点阵中有笔迹像素位的状态是“1”还是“0”,像我们前文介绍的那种就是阴码,反过来就是阳码。本工程中使用阴码。
  • 选项“取模方式”是指字模图形的扫描方向,修改这部分的设置后,选项框的右侧会有相应的说明及动画显示,这里我们依然按前文介绍的字模类型,把它配置成“逐行式”
  • 选项“每行显示的数据”里我们把点阵和索引都配置成16,设置这个点阵的像素大小为16x16
  • 字模选项的格式保持不变,设置完我们点击确定即可,字模选项的这些配置会影响到显示代码的编写方式 

(阴码和阳码的区别,有笔记的地方是1   没有笔记地方1,是阳码)

  •  生成GB2312字模

配置完字模选项后,点击软件中的导入文本图标,会弹出一个“生成字库”的对话框,点击右下角的生成国标汉字库按钮即可生成包含了GB2312编码里所有字符的字模文件。

  在《LCD—液晶显示汉字》的工程目录下的《GB2312_H1616.FON》是我用这个取模软件生成的字模原文件,若不想自己制作字模,可直接使用该文件。

字模寻址公式

        使用字模软件制作的字模数据一般会按照编码格式排列。如我们利用以上软件生成的字模文件《GB2312_H1616.FON》中的数据,是根据GB2312的区位码表的顺序存储的,它存储了区位码为0101-9494的字符,每个字模的大小为16x16/8=36字节。其中第一个字符“空格”的区位码为0101,它是首个字符,所以文件的前36字节存储的是它的字模数据;同理,36-72字节存储的则是0102字符“、”的字模数据。所以我们可以导出任意字符的寻址公式:

  Addr = (((CodeH-0xA0-1)*94) +(CodeL-0xA0-1))*16*16/8

        其中CodeHCodeL分别是GB2312编码的第一字节和第二字节;94是指一个区中有94个位(94个字符)。公式的实质是根据字符的GB2312编码,求出区位码,然后区位码乘以每个字符占据的字节数,求出地址偏移。

        上面生成的《GB2312_H1616.FON》文件的大小为576KB,比很多STM32芯片内部的所有FLASH空间都大,如果我们还是在程序中直接以C语言数组的方式存储字模数据,STM32芯片的程序空间会非常紧张,一般的做法是把字模数据存储到外部存储器,如SD卡或SPI-FLASH芯片,当需要显示某个字符时,控制器根据字符的编码算好字模的存储地址,再从存储器中读取,而FLASH芯片在生产前就固化好字模内容,然后直接把FLASH芯片贴到电路板上,作为整个系统的一部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/309666.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

行为型设计模式——模板方法模式

学习难度&#xff1a;⭐ &#xff0c;比较常用 模板方法模式 在面向对象程序设计过程中&#xff0c;程序员常常会遇到这种情况&#xff1a;设计一个系统时知道了算法所需的关键步骤&#xff0c;而且确定了这些步骤的执行顺序&#xff0c;但某些步骤的具体实现还未知&#xff0…

WEB之HTML练习

第一题&#xff1a;用户注册界面 HTML代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><titl…

AlmaLinux 9.3 系统 安装配置 Zabbix6.4 监控系统(史上最全 小白都能看懂)

AlmaLinux 9.3 部署 Zabbix6.4 Zabbix安装部署 安装 Zabbix 源 rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-6.4-1.el9.noarch.rpm 清除缓存文件 dnf clean all 安装Zabbix server&#xff0c;Web前端&#xff0c;agent dnf install zabb…

Maven之私服

1 介绍 团队开发现状分析私服是一台独立的服务器&#xff0c;用于解决团队内部的资源共享与资源同步问题Nexus Sonatype公司的一款maven私服产品 下载地址&#xff1a;https://help.sonatype.com/repomanager3/download win版安装包&#xff1a;https://pan.baidu.com/s/1wk…

酷开科技 | 酷开系统—探索科技新“玩法”

科技发展一日千里&#xff0c;智能家居逐渐成为人们享受舒适生活的重要途径之一。在这个背景下&#xff0c;酷开科技凭借其研发技术和创新能力&#xff0c;精心打造了酷开系统&#xff0c;引领行业潮流。现在&#xff0c;我们一起探索酷开系统的独特“玩法”。 01.智能家居一站…

异构图 神经网络xFraud :Explaniable Fraud transcation detection

适用于异构图 2. 使用图进行异常检测 https://github.com/safe-graph/graph-fraud-detection-papers

效率交响曲:AIOps 协调卓越运营

作者&#xff1a;来自 Elastic Priscilla_Parodi ​ 在我们探索 AIOps 之前&#xff0c;让我们先澄清一些与不同 Ops 的一些单并非全部相关的关键概念&#xff1a; 1&#xff09;DevOps&#xff1a;开发运维 你可能已经听说过 DevOps。 它是一种通过协作和自动化促进交付来集…

常用的网站

PIXEL MOTION 注册-YesPMP平台 模型下载 - Ourblender - 专业的三维素材库 Vega AI 创作平台 夏沫的AI小站 Tripo AI B站视频下载工具 | 极简纯净

C++游戏引擎中的坐标系

一.Direct3D四大变换 <1.世界矩阵变换: 为了模拟3D物体的旋转,缩放,平移等功能,Direct3D将静态模型的顶点坐标x,y,z经过旋转平移矩阵变换以得到新的顶点坐标x1,y1,z1 D3DXMATRIX mTrans ; D3DXMatrixTranslation (&mTrans , 5 , - 3 , 0 ); g_pd3dDevice->SetTr…

app小程序开发定制?智创开发

模板小程序和定制小程序效果有很明显的差距的&#xff0c;二者开发花费的时间也不一样&#xff0c;价格自然也就不一样&#xff0c;主要区别在以下几个方面&#xff0c;大家可以参考&#xff0c;根据自身的情况进行选择。 1&#xff09;效果不一样 模板&#xff0c;顾名思义&…

出版实务 | 出版物的成本及其构成

文章目录 出版物成本的总体构成直接成本开发成本制作成本 间接成本期间费用 本量利分析原则特点和作用变动成本项目固定成本项目本量利分析的基本公式及其应用定价发行折扣率销售数量单位销售收入销售收入总额单位销售税金销售税金总额变动成本总额单位变动成本固定成本总额单位…

如何查看Ubuntu内存的使用情况

在Linux系统中&#xff0c;了解内存使用情况对于系统管理和性能优化非常重要。以下是一些常用的命令&#xff0c;以及它们的详细使用说明&#xff1a; 1. free 命令 用途: free 命令用于显示系统中空闲和已用的物理内存及交换内存。示例: 输入命令: free -m输出解释: 这将以M…

flutter 打包IOS及常用配置

修改APP名称 项目名字配置是在 ios/Runner/Info.plist 文件中的 dict 下的 CFBundleName testapp 。如下图所示: String里面就可以修改名称 修改项目 &#xff08;testapp&#xff09;的 Logo 图标 iOS 项目 Logo的配置是在 ios/Runner/Assets.xcassets/AppIcon.appiconset 文…

【LangChain学习之旅】—(5) 提示工程(上):用少样本FewShotTemplate和ExampleSelector创建应景文案

【LangChain学习之旅】—&#xff08;5&#xff09; 提示工程&#xff08;上&#xff09;&#xff1a;用少样本FewShotTemplate和ExampleSelector创建应景文案 提示的结构LangChain 提示模板的类型使用 PromptTemplate使用 ChatPromptTemplateFewShot 的思想起源使用 FewShotPr…

冠军团队!第二届百度搜索创新大赛AI方案

Datawhale干货 作者&#xff1a;李柯辰&#xff0c;Datawhale成员 写在前面 大家好&#xff0c;我们是2023年第二届百度搜索创新大赛 赛道三——AI应用设计赛道的冠军团队——“肝到凌晨”&#xff0c;很高兴能与大家分享我们这次比赛的经验&#xff0c;同时也希望以后有机会可…

RocketMQ 消费重试

消费者出现异常&#xff0c;消费某条消息失败时&#xff0c; Apache RocketMQ 会根据消费重试策略重新投递该消息进行故障恢复。本文介绍消费重试机制的原理、版本兼容性和使用建议。 一、应用场景​ Apache RocketMQ 的消费重试主要解决的是业务处理逻辑失败导致的消费完整性…

从0到1入门C++编程——05 类和对象之运算符重载、继承

文章目录 运算符重载1.加号运算符重载2.左移运算符重载3.递增运算符重载4.赋值运算符重载5.关系运算符重载6.函数调用运算符重载 继承1.继承的基本语法及继承方式2.继承中的对象模型3.继承中构造函数和析构函数的顺序4.继承中同名成员的处理方式5.继承中同名静态成员处理方式6.…

Unity中URP下实现能量罩(交接处高亮)

文章目录 前言一、交接处高亮 原理1、 我们先用一个球作为能量罩、一个Cube 和 一个 椭球 作为与能量罩交接的物体2、 这是我们目前场景的深度图3、使能量罩为 半透明渲染队列 且 关闭深度写入 不渲染深度图 二、交接处高亮 实现1、得到深度图2、在片元着色器中&#xff0c;对深…

重新认识Elasticsearch-一体化矢量搜索引擎

前言 2023 哪个网络词最热&#xff1f;我投“生成式人工智能”一票。过去一年大家都在拥抱大模型&#xff0c;所有的行业都在做自己的大模型。就像冬日里不来件美拉德色系的服饰就会跟不上时代一样。这不前段时间接入JES&#xff0c;用上好久为碰的RestHighLevelClient包。心血…

静态网页设计实践(HTML+CSS)

一、前端程序员必会三大编程语言 &#xff08;一&#xff09;HTML&#xff08;.html/.htm&#xff09; 超文本标记语言&#xff08;HyperText Markup Language&#xff0c;简称:HTML&#xff09;是一种用于创建网页的标准标记语言。HTML是一种基础技术&#xff0c;常与CSS、Ja…