迪文科技论坛

 找回密码
 立即注册
搜索
查看: 3209|回复: 12

关于数字变量的描述指针

[复制链接]

2

主题

11

回帖

75

积分

注册会员

Rank: 2

积分
75
发表于 2020-2-18 19:03:00 | 显示全部楼层 |阅读模式
本帖最后由 杨柳青请 于 2020-2-18 19:21 编辑

再来请教技术一个问题,我有很多变量,假设100个,他们的显示小数位都是相同的,但不是固定的,也就是说可以修改小数位数,每次改变小数位数后,就要修改所有变量的描述指针里面的小数位数的值。这样就发送100次指令。我就想能不能共用一个描述指针呢,这样就可以发一条指令就行了,但是测试的结果不能显示。我估计是不是变量的显示位置信息也在描述指针里面了,这样位置就都相同了,所以造成显示不正常。在此想问技术一下,是不是这个原因,对于我说的这个问题有没有好的解决方法。先谢过了。
回复

使用道具 举报

2

主题

11

回帖

75

积分

注册会员

Rank: 2

积分
75
 楼主| 发表于 2020-2-19 09:21:27 | 显示全部楼层
刚才又重新查了文档,共用描述指针,确定用的就是一个位置了。这就郁闷了
回复

使用道具 举报

0

主题

72

回帖

2355

积分

金牌会员

Rank: 6Rank: 6

积分
2355
发表于 2020-2-19 09:28:32 | 显示全部楼层
描述指针在整个工程里面出现一次,不能重复使用的。
回复

使用道具 举报

4

主题

134

回帖

2750

积分

金牌会员

Rank: 6Rank: 6

积分
2750
发表于 2020-2-19 09:41:55 | 显示全部楼层
定义的描述指针的首地址里面的值VP就是对应的数据变量的变量地址,应该是一一对应的,所以不能用一个描述指针控制所有的变量显示的。
回复

使用道具 举报

2

主题

11

回帖

75

积分

注册会员

Rank: 2

积分
75
 楼主| 发表于 2020-2-19 09:51:16 | 显示全部楼层
唉,看来只能挨个改了,挺闹心的。
回复

使用道具 举报

45

主题

254

回帖

3415

积分

论坛元老

Rank: 8Rank: 8

积分
3415
发表于 2020-2-19 10:46:15 | 显示全部楼层
本帖最后由 舞指飞扬 于 2020-2-19 11:00 编辑
杨柳青请 发表于 2020-2-19 09:51
唉,看来只能挨个改了,挺闹心的。

共用描述 指针其效果是可预见的
下面是一条变量图标显示的存储
5A 00 11 01 00 0A 10 01 00 34 00 74 FF FD FF FE
00 10 00 11 30 01 03 FF 02 3F 00 00 00 00 00 00

5A  
00        功能代码
11 01   描述指针
00 0A   描述指针总有效偏移量+1
10 01   变量地址            
00 34    左上角坐标
00 74   右上角坐标
FF FD   变量下限  
FF FE   变量上限
00 10  图标下限
00 11 图标上限
30     图标库序号
01     背景显示模式
03     背景叠加模式
FF     图标亮度
02      背景亮度
3F      滤色强度
00 00      填充字
00 00      填充字
00 00      填充字

用描述指针控制时可按下面规则读写
SP+0X00      变量地址            
SP+0X01      左上角坐标
SP+0X02      右上角坐标
SP+0X03      变量下限  
SP+0X04      变量上限
SP+0X05      图标下限
SP+0X06      图标上限
SP+0X07      图标库序号    背景显示模式                 
SP+0X08      背景叠加模式     图标亮度            
SP+0X09     背景亮度 滤色强度

描述指针格式可以从14.bin中提取.描述指针长度是0x0D 字,也是描述指针安全距离,也可采用0x10作为安全地址,
系统把14bin中的内容复制到sp指向的内存区域.
描述指针会强制限定 显示变量控件的位置,描述指针中记录了 变量值的地址,他只能回头指向一个地址.
多个控件指向同一个描述指针,系统在初始化的时候,在描述指针中只会记忆一个回头指向地址.
由于只记录了一个地址,所有的控件位置强制调整到sp+01  sp+02 字 的位置.
sp的工作机制 在gui.bin中规定,目前没有文档公开

回复

使用道具 举报

2

主题

11

回帖

75

积分

注册会员

Rank: 2

积分
75
 楼主| 发表于 2020-2-19 11:21:50 | 显示全部楼层
描述指针长度是0x0D 字,也是描述指针安全距离,也可采用0x10作为安全地址。
这个0x0D从哪里看出来的,文档里也没找到,数字变量显示控件中的描述指针长度是多少?还是所有的描述指针长度都是0x0d?
回复

使用道具 举报

4

主题

134

回帖

2750

积分

金牌会员

Rank: 6Rank: 6

积分
2750
发表于 2020-2-19 11:49:29 | 显示全部楼层
指南里面的描述指针显示的长度各个控件是不同的,你定义的时候只要留足安全距离就可以了,一般0x10作为安全地址,看起来方便点
回复

使用道具 举报

2

主题

11

回帖

75

积分

注册会员

Rank: 2

积分
75
 楼主| 发表于 2020-2-19 12:35:19 | 显示全部楼层
xiangliverygood 发表于 2020-2-19 11:49
指南里面的描述指针显示的长度各个控件是不同的,你定义的时候只要留足安全距离就可以了,一般0x10作为安全 ...

学习了,谢谢
回复

使用道具 举报

45

主题

254

回帖

3415

积分

论坛元老

Rank: 8Rank: 8

积分
3415
发表于 2020-2-19 13:12:10 | 显示全部楼层
本帖最后由 舞指飞扬 于 2020-2-19 13:18 编辑

描述指针最长 0d字,这是迪文规定的.
显示变量存储格式为
5A  00        功能代码
11 01   描述指针
00 XX   描述指针总有效偏移量+1  ,XX最大值为0D

+
描述指针内容最长0D

显示变量存储接结固定为0x10字,抛开 功能码 指针地址 偏移总量,描述指针内容最长存储0D字,不足补00
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-11-23 11:32 , Processed in 0.060995 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表