DGUS 屏显示控件问题

文本显示篇


Q:文本乱码。

A:①字库命名冲突

a、数字和英文乱码:请检查0 号字库是否命名冲突了。0号位置的一个字库,他的大小占用了12个空间 ,0-12之间不能有其他的字库占用。0号字库,他的大小可以随意调用,最大是 64*128。

b、录入的过程乱码:请重新刷新12 输入法文件(13 是触控14 是显示15-21 是预留22 是初始值文件 )。

c、汉字字库乱码:用户自定义字库从24 开始,每个序号占用256k 的大小DWIN_SET 里面除图片和config的文件都可以看做是是字库,用户自定义字库的命名是24-127之间的数字,如字库大小大于256KB,假设为257KB,那么将占用两个字库空间,假设我们的字库40.HZK 大小为257KB,那么占用了 40,41两个字库空间,下一个图标库不能写为41.HZK,必须由42 开始;(DZK和HZK的格式都支持)汉字字库通常可以用TS3字库软件生成,制作的时候:调节预览至饱满,汉字字库y点阵也就是高不能为奇数,宽高的点阵数即为xy大小点阵,建议命名的时候后面命名加以注释,便于识别如:66_GBK24_宋体.HZK,GBK比GB2312编码范围广些,占用体积大些。

②配置错误

a、编码方式选02GBK 用于显示文本ASCII码。

b、X、Y点阵设置比如 x选 12,y选 12,优先选用偶数。

c、汉字字库选择和生成的点阵宽高没有对应好。


Q:文本显示不全,后面的字没有显示出来。

A:①文本框拖得不够长,

②文本长度(软件的单位是字节)设置限制了。

DGUS II屏,文本显示控件只能显示第一个字符或汉字:文本的长度除了不能设置拖得过短,另外显示高度要足够大,否则会出现只显示第一个字符或汉字的情况。


Q:以前用 MINI屏,现在用 DGUSII屏低分屏替换,发现有些文本显示控件出现乱码。

A:MINI 屏的文本显示,编码方式选择8bit编码可以正常显示数字字母,但是DGUS 和DGUSII 屏一样,要选择GBK 或者GB2312 才能正常显示字符。


Q:初始值如何显示?

A:迪文屏需要设定了特定的 22字库文件上电加载到变量地址显示初始值,第一步:需要设置里面勾选初始值由22 文件加载。DGUS II屏产品配置CFG文件08位置。第二步:需要将22 文件拷入屏里面。DGUS 的软件点击保存,生成配置文件之后,13、14、22文件会重新生成,13是触控配置文件, 14是显示的配置文件,配置文件下载勾选13,14并没有把初始值 22文件下进去,SD卡可以单独下入,或者串口下载choose File 点击否,选22 文件,改position 为22,下发也是很快捷的。


Q:GBK 录入控件上传的地址是55FF,但是如果单片机要控制它的显示内容,55FF的话显示就会漏两个字节?

A:GBK录入控件勾选了输入状态返回,才会导致控件位置多出俩个字节,取消掉就可以。



数据变量篇


Q:数据变量的左对齐是什么意义,为什么我的数据变量不能对其居中。

A:如果是左对齐就是:

0

10

100

如果是右对齐就是:

0

10

100

所以数据变量的对其方式是:数据从个位变成十位的一个渐变方式,不是往用户的界面拖一个数据变量控件的的框 ,数据显示就能跑到框中间了,数据变量控件坐标只认定左上角坐标的框的位置,与大小没有关系。


Q:数字和英文显示,比如数据变量显示05,而不是5,前面需要补齐一个0。

A:方法一,数据变量本身没有这个功能,用文本显示控件ASCII 码代替;

方法二,用艺术字变量选择右对齐(右对齐的意义参考问题1),左边添加一个图标变量控件地址和艺术字变量设置一样,下限上限分别对应0-10,其中0-9的时候都指向图标0 的小图片,也就是做 9个小图片内容写0的生成的ICO 图标文件,当地址值为10的时候图标控件地址指向不显示的10 空图标,那么就可以补齐0了。这种方法的优势在于不需要多发其他的指令代码,用户繁琐的地方也只是需要做0-9 的图标显示艺术字;

现在的T5L 新增功能可以补0。


57d4e0c37f773dc3_html_5bedf84665b13064


Q:数据变量控件怎么显示小数?

A:DGUS屏的数据变量是采用定点小数格式,也就是小数点的位置先设置好,发送的指令实际还是16进制的整数,变量地址0001,控件数据变量显示,整数类型,设置2位整数 1位小数,发送指令5A A5 05 82 0001 007D 显示12.5。T5L 系列支持浮点数。


Q:数据变量控件怎么显示负数小数?

A:变量地址0001,控件数据变量显示,整数类型,设置2 位整数1 位小数,发送指令5A A5 05 82 0001 FF83 显示-12.5,FF83是-125的16进制码。显示负整数则不需要设置小数位就行。


Q:数据变量上电不显示 0实现方法?

A:①改用文本 ASCII显示。

②图标遮盖法:对于整数类型的变量的数据变量显示,可以做一个图标变量地址和数据变量一样,图标控件置前显示,可以盖住底下的数据变量控件,下限0显示图标X,X图标是和底图一样的一个小块区域图标,上限65535指向的一个空白处图标不显示。

③基本图形置前显示,用一个当前页面区域粘贴盖住。

④利用切换页面组合方法,如果数据变量很少,当地址数据为0 的情况,切换到没有放置数据显示的界面。也就是说底图都一样,只是没有放置显示控件,就不会有初始0 挂在上面了。

⑤利用描述指针隐藏、更改颜色和底图一致、改变位置,请参考文档描述指针的用法。


Q:数据变量的单位怎么显示摄氏度符号℃?

A:①0号字库里面没有包含温度的摄氏度符号,如果实在是想用数据录入的控件的单位去显示,那么只能是是修改0 号字库里面的数据把某个不常用的ASCII字符修改为摄氏度的符号,设计到各个点阵,工作量比较大。

②把单位直接做在底图,或者用图标贴。


Q:数据变量的单位怎么能用指令修改?

A:①通过描述指针是可以修改要显示的单位的。

②用图标在旁边贴一个,修改图标的地址调用不同的单位图标。


Q:数据变量显示的字体有毛边,怎么去掉?

A:点阵字体的毛边无法去掉的,迪文有个版本的加粗的0号字库是毛边现象会少点,但是字体比较粗。解决方法可以参考如下:

①如果是数据变量显示,用艺术字变量图标显示。

②选用数码管类型的字体制作字库,因为数码管字体本身是直线型的,比常规的宋体格式的数字有笔画弧度的地方会少很多,看上去就不显得有过于明显的毛刺。

③DGUS II 全系列产品新增“DGUS II 文本显示”功能,完美解决点阵字库显示的锯齿难题。该功能在字库文件上做了重要升级,使字符边缘处理更加细腻平滑。字库用“DGUS II 文本显示功能专用灰度字库生成软件”制作后,用“DGUS II 文本显示”配置显示。效果对比如下:


aa4fa296a9969f18_html_59e47afa60140284



基本图形显示篇


Q:为什么对着地址发了一个剪切图形,我再对着地址剪切的时候第一个就消失了?

A:例如基本图形地址设置0x1001,第二个几基本图形地址设置0x1002。地址就是内存,迪文的82指令写的地址都是起始地址,延续写了多少字,后面的一个控件就应该不要占用之前的地址。对于基本图形控件,是底层调用基本图形控件时根据用户发的绘图指令进行判断,所以地址间隔、图形数量是需要将地址和数据分配规划清晰,对于多个图形剪切,可以一条指令发送剪切指令的多个数据包个数用于多个图片剪切,也可以做多个基本图形的框,分多条指令不同地址剪切。


Q:可以同一个基本图形控件操作不同的指令吗?如画了一个矩形和一个圆。

A:不可以这样操作,如果是要画不同类型的指令控件,可以叠加多个基本图形地址用于显示。



曲线显示篇


Q:曲线怎么加粗?

A:需要用其他的通道,发送指令的时候取值坐标的大小值相差一个像素点的刻度。但是对于弯曲的曲线,可能会像素点的间隙不是很平滑。

T5,T5L动态曲线控件支持曲线线宽设置。


Q:曲线怎么保存?

A:DGUS 屏的曲线控件是用84指令直接对着通道写值,如果是要将数据保存起来,需要经过82 指令将数据写到变量地址,在用80指令写到数据库,从数据库读取操作后,再把历史数据用84 指令发到另外的显示通道进行处理。


Q:曲线如何设置?

A:图解如下:曲线通道 0 1 2 3 4 5 6 7 对应指令中的 01 02 04 08 10 20 40 80


ffd4803ff6b42b80_html_e9211a7f97e106af



图标变量显示篇


Q:怎么过滤图标背景色?

A:过滤背景色原理是选取小图片左上角第一个像素点,与之完全一样的颜色都会被过滤掉,也就是说如果发现自己的图片背景色过滤不掉,不妨用画图板放大到最大,一看像素点就知道, 背景图肯定不是纯净的。


Q:怎么实现图标能循环点击一个按键切换?

A:1、用增量调节的上下限和图标地址对应。

2、用按键返回切换页面组合,也就是点击了按键之后实质是界面切换了。

推荐用方法

ffd4803ff6b42b80_html_cb58bb03d1406a27


Q:怎么简单实现图标多个按键分别点击,例如123 三个图标对应ABC三个按键,每个按键点击了只会显示对应的一个图标?

A:方法一,设置图标控件地址三个都为0x1001,小图标123,三个按键地址都为0x1001,键值分别为123,每个图标的设置分别上限和下限和键值图片对应整齐就行;方法二,用位变量图标设置。


ffd4803ff6b42b80_html_53becb62cf0675ff


Q:怎么简单实现图标多个按键分别点击,例如1个图标对应ABC三个按键,每个按键点击了只会显示对应的图标1?

A:例如设置图标控件地址若干个都为0x1001 小图片1,按键返回多个 地址 0x1001 键值1 2 3 4 56.....上限下限分别都写123456 但是选取的对应的图标指向都为1。


Q:迪文屏如何做进度条?

A:方法一,比如0-100 做100 个图标,下线0 ,上限100,用图标的办法解决,这种方法的缺点是图标的长宽大小DGUS1 的图标区域范围不能超过255x255 像素,(T5的DGUSII 屏最大1023x1023支持图标)如果刻度需要精确,需要美工做很多图片。这里通常适合用做圆形的进度条;

方法二,图片动画显示,也就是说要利用图片切换的原理;

方法三,是基本图形剪切图片,也就是把其他页面的进度条的依照坐标剪切过来。另外的就是矩形填充等。

指令:5AA5+长度+82  000500040001 +左上角坐标+左下角坐标+F800红色。用户如果不用os处理,串口发矩形填充指令也行,先取坐标:例如要实现0~100 的范围值,更改右下角x/100 就能随着变化,例如取x 横坐标变化范围420-20=400,分成100 等分,则变化量为4,每增减1 值坐标的值增减4。



动画图标显示篇


Q:怎样控制动画图标的播放速度?

A:DGUS屏只能做重复的帧数来控制动画图标的快慢,每个图标进行播放的速度是固定的DGUS 屏周期,例如200ms、120ms、80ms每帧;DGUS II 屏的动画图标控件则可以设置播放时间。


Q:动画图标只能显示出来 1个,用的同一个地址?

A:动画图标不能和图标变量一样都用一个地址来同步进行,动画图标的变量地址的第二个地址要预留,相当于辅助动画播放的一个地址,也就是说动画图标变量占用2个变量地址。例如10011003 1004 这样地址排列,如果用同一个地址,只会显示出来一个。


Q:动画图标怎么发指令改变停止状态的图片?

A:用描述指针+06H地址Icon_Stop,指令举例:5AA5 05 82 5006 0002 停止图标2号,这个图标的序号可以取该基地址ICO图标的所有的小图片图标序号范围。

例如,下图这个框左边的那一列是14 文件里面的编译后地址,比如0x5A01代表底层对这个控件的识别代码,用户只需要了解,中间红框的那一排描述指针是可以访问到修改的地址。

动画图标显示的描述指针设置5000,参考上表红色框内可以看做偏移地址。

控制停止状态地址就是 5006,对着5006地址发送图标的序号,就可以实现更改了停止图标的显示了。


85360f8a788ef42a_html_74bd9180264cae7f



位变量图标显示篇


注意事项:

1、移动模式一般不需要用,需要明白他的显示模式有8 个,参考开发指南的表格,里面有各种

组合的,例如某个位为1的时候是显示图标、不显示、显示动画,所以组合就有8种,可以通过下图的位控制设置分别做不同的单个位的控件进行显示。

如果下图都全部勾选,是需要用移动模式,设置固定的像素点进行自行排列。可以分成多个勾选选的控件进行自由排列。


85360f8a788ef42a_html_6df35335c654bae9


2、额外注意辅助地址的定义,辅助地址一般占用2个,单片机指令不参与范围,是屏上面辅助显示用的,当设置的每个位控件用到动画的,辅助地址不能重复使用。如果没有用动画模式,可以统一设置为同样的辅助地址。

3、为变量图标有7 个模式,对应分别当地址的某个位写入0 或者1 的状态。ICON0S是指某个为写0的开始的图标,ICON1S是指某个为写1的开始的图标,ICON0E是指某个为写0的结束的图标,只有动画模式才会用0E的选择;ICON1E是指某个为写1的结束的图标,只有动画模式才会用1E的选择。


85360f8a788ef42a_html_7f48e68437107bda


图片动画显示篇


Q:怎么做开机动画?

A:用图片动画控件,例如在首页面00.bmp放置图片动画控件,设置起始图片0,终止图片10,开机自动实现00-10.bmp图片的动画,不需要任何单片机发指令,屏自动就实现。注意中间的图片序号不能中断,一定要连续。

对于已经排版好的图片,可以这样修改:00.bmp放置图片动画控件,设置起始图片10,终止图片20,那么20 图片就是主页面了,01-09图片这是非图片动画用的其他的界面图片,这样处理只需要更改0 页面为动画图片界面。

对于 DGUSII屏,则可以在 CFG文件里设置最开始的起始显示图片。


文本滚动控件篇


Q:文本滚动设置初始值,为什么上电后,显示不出来呢?

A:设置系统配置配置勾选初始值配置;文本框不要做很长,也就是框要比文字短;滚屏间距要设置。


Q:文本显示发指令不正常,显示不全?

A:发指令变量地址要+3了再发。



二维码篇


Q:竖屏使用状态下的二维码控件怎么都调整不到合适的位置?

A:首先找到二维码在竖屏中软件上面左上角的点显示的起始坐标例如(157,463),然后修改下图的把二维码控件属性框右边的坐标X,Y调换为(463,157)即可。

5513704471cbdafb_html_c5069db28ab7ea2c

Q:二维码显示不出来、乱码,不显示?

A:①先用正确的指令测试:

发指令显示举例:

0x1000 地址演示

发指令显示举例:需要发送 ASCII码或者汉字内码,13个汉字以上才能被扫出来

5A A5 23 82 1000 B1B1 BEA9 B5CF CEC4 BFC6 BCBC D3D0 CFDE B9AB CBBE A3AC BBB6 D3AD B9E2 C1D9 A3A1

北京迪文科技有限公司,欢迎光临

发送指令,显示网址http://www.dwin.com.cn/能用微信扫描并打开网站

5aa5 1a 82 1000 68 74 74 70 3A 2F 2F 77 77 77 2E 64 77 69 6E 2E 63 6F 6D 2E 63 6E 2F

②如果指令也没有显示出来,再尝试更新12 拼音输入法bin文件,或许是之前这个文件被其他的文件覆盖了或者格式化过屏。如果是DGUS屏,检查下内核版本是不是太早了,不支持这个功能。

(DGUS_V69版本以上内核文件支持)。


Q:二维码抖动跳动?

A:类似于文本的抖动,可能是屏本身flash原因,需要将屏格式化后再下载,有必要升级下内核程序,如果还是抖动,检查数据通信是否本身发送就有细微的变化导致。


Q:二维码希望能显示大一些?

A:DGUS 屏有专用的二维码变大的内核。支持最大像素点最大到15*15 的,可以让整个8 寸屏就是1 个二维码。



RTC篇


Q:RTC 时间怎么只显示年月日?

A:RTC 显示,在日期设置格式栏Y-M-D H:Q:S W 修改为Y-M-D,这样就是显示年月日。


Q:DGUS 屏的RTC 录入修改退格键无效。

A:1、是的,k600+没有退格的功能,建议用户在键盘上面不要做那个功能。

2、T5/T5L系列的 RTC不是寄存器,写 009c地址,具体看开发指南。


Q:DGUS 屏的RTC 录入能否单独修改年。

A:如果单独修改需要用数据变量录入,建议分为高低字节,可以用迪文OS或者单片机发指令,对时间进行改写,修改RTC时间的指令不要忘记是0x1F 寄存器写入0x5A 进行改写。

对于 DGUSII的屏修改RTC时间则方便很多:

0x9C DGUSII 屏RTC 时间:5A A5 0B 82 009C 5A A5 12 06 1B 15 15 15 (18年 6月 27号 21时21 分21 秒,16进制数据) 读 RTC:5A A5 04 83 0010 04

0x9C DGUSII 屏RTC 录入: RTC改写占 009C、009D、009E、009F共 4个地址。009C写 5AA5 启动 RTC设置,009D高低字节对应年月,009E高低字节对应日时,009E高低字节对应分秒。

①先做一个按键值返回,地址设置009C,键值设置5AA5。

②再做一个数据变量录入,地址009D,变量类型设置变量指针高字节,做一个数量变量显示, 地址 009D,变量类型设置VP 高字节;高字节改变年。

③然后再做一个数据变量录入,地址009D,变量类型设置变量指针低字节,做一个数量变量显示,地址009D,变量类型VP低字节;低字节改变月。后面日时分秒和年月一样去做,一共6 个录入6个显示控键。 做完后点击最开始的 009C按键值即可改变时间。


dd70ca291592428f_html_d5a2904ba99fa8a5


Q:DGUS 屏的RTC 录入点击后重启?

A:键盘设置的显示区域超过了键盘的范围。


Q:DGUS 屏的RTC 显示怎么修改字体大小?

A:修改x 方向点阵数即可。


‍‍‍dd70ca291592428f_html_6ace1237af811040


Q:DGUS 屏的RTC 修改后能上传吗?

A:依赖 RTC控件本身是无法将数据上传(控件的上传勾选实质是无效的),可以单独做一个RTC时间修改的页面,录入修改完RTC时间后,旁边做一个按键返回,按键返回按下了,告诉单片机,单片机再发一个 81指令读时间。或者利用DGUSII 的OS处理,做按键返回判断也可以,也可以写法判断时间的变化超过了2 秒就说明时间修改了,用OS 发送时间到串口。