DataPool插件入门——午后的速溶咖啡

夏天午后的容易犯困,来杯速溶咖啡提下神。本文要主要的介绍是DataPool的几个常用的数据插件,做财经或体育实时数据是肯定会用的,希望本文可以快速的让你对DataPool的强大有一个初步认识,就想一杯速溶咖啡能够迅速为你送去一丝咖啡的清香。

干货来了。本文有四个DataPool插件要介绍: DataText,最基础的插件,板砖一个。DataObject,高级板砖。DataArray,安装序号存放板砖的一个数组。DataTable按照名字存放板砖的表格。

一. DataText,假设我有个运动员的信息要展示,包括名字和年龄,那么我可以这样做。

1. 构建场景,拖放DataText插件


2. 给DataText起个名字,如果需要顺便加个前缀

3. 测试一下是否可以正常工作,理论上你会在填入值后立马得到更新。


二. DataObject。同样的需求,我可以换一个方法实现,把名字和年龄用一个结构体来表示,这么做具体的好处大家可以自己思考一下。

1. 首先在DP文件中定义你的结构体,请注意所有DP后缀的文件在Artist启动的时候都会被加载,在此我使用系统默认的config.dp来定义结构体。


2. 注意现在的场景结果,我把DataObject插件放在了之前的两个组的父级组,起了个名字,并选择了合适Type。


3. 测试是否可以正常工作,请注意格式的不同。


4. 留给大家一个问题,用DataObject如何展示两人的信息,除了娜姐之外再来个Dirk呢?

三. DataArray.上面都是在介绍板砖,用它们来处理实时数据就想是要垒墙一块块儿的垒起来太费时间了,那么咱们看看DataArray可以怎么做。

1. 拖拽DataArray插件,请注意变量的命名,要把数量写进去。另外请注意场景的结果,我用了两个人做例子,每个人的信息都有自己独立的父级组,同时他们的父级组又有共同的父级组,上面放置了DataArray插件。

 

2. 注意一下数据格式,试一下效果。


四. DataTable来了,一般最后出场的都是比较重要,在这里要说的是重要性还好了,但是在处理财经实时数据上非常常用。它类似于DataArray,但有一点不同的是,DataArray是安装序号存储的,但DataTable是安装名字存储的,这个对于用户来说就非常有用了,具体怎么有用大家看后自己思考一下吧。

1. 这个DataTable的图标比较有意思,上面就是一个Table,就当是望文生义的小幽默了。请注意场景结构的不同。


2. 每个组上都多了一个ControlDPObject,这个开放给Trio或Ticker客户端,让用户使用的。


3. 数据格式相比Array的话,方括号里的序号变成了字符。


获取本文所使用的场景下载地址,请扫描左侧头像或搜索PerfectService加微信,并发送001获取下载地址。


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
3.1 实验一 ARM汇编指令实验1---简单数据搬移实验 例题 源程序: 部分注释: AREA用于声明一个只读或读写的代码或数据段,ENTRY声明程序入口,CODE32用于申明以 下代码为32位ARM指令,END程序结束。 STR R0,[SP] ;将R0中的值放到SP中去 LDR R1,[SP] ;将SP中的值赋给R1 STR R0,[SP,#4] ;先执行SP+4,再将寄存器R0内容复制到SP指向的存储器 ADD R0,R0,R1 ;将R0+R1的值赋给R0 结果截图: 结果分析: x和y的值分别为45,64,程序实现过程是将x放进R1,y放进R0,再将x+y放进R0,因此R0 中结果为109,即为6D。R1中结果为45,即为2D。 练习题 设计思路: 利用R0做基地址,将R1,R2分别存入第一个单元的内容,利用R3做循环计数器,利用R4 遍历读取第2至最后一个数据,如果R1的数据小于新读入的R4数据则将R4的内容存入R1, 如果R2的内容大于R4的内容则将R4的内容存入R2。遍历完成之后,R1将存放最大数据, R2将存放最小数据。 源程序: AREA Init,CODE,READONLY ENTRY CODE32 start MOV SP,#0X400 ;给指针赋初值 LDR R0,=DataBuf ;把数据定义表格中的值赋给R0 LDR R1,[R0],#4 ;取数 MOV R2,R1 ;R1赋给R2 MOV R3,#8 ;R3做循环计数器,赋值为8 compare SUB R3,R3,#1 ;实现R3自减 CMP R3,#0 ;比较R3和0,确定循环是否结束 BEQ over ;若R3等于0,结束循环 LDR R4,[R0],#4 CMP R4,R1 ;比较R4和R1,找大值 BLT small1 ;小于跳转 MOV R1,R4 small1 CMP R4,R2 ;比较R4和R2,找小值 BLT small2 ;小于跳转 BGT compare ;大于跳转 small2 MOV R2,R4 B compare over B . AREA Datapool,DATA,READWRITE DataBuf DCD 11,-2,35,47,96,63,128,-23 ;数据的定义采用伪指令DCD实现 END 结果截图: 结果分析: 遍历完成后,数据的最大值和最小值都已经找出,其中最大值存放在R1中,最小值存放 在R2中。由结果可知,R1中为0x00000080,即为128,R2中为0xFFFFFFE9,即为-23。 实验3.2 ARM汇编指令实验2-字符串拷贝实验 例题 源程序: AREA Init,CODE,READONLY ENTRY CODE32 START MOV SP,#0x400 ;堆栈地址 LDR R0,=Src ;将初始字符串地址给R0 LDR R1,=Dst ;将目的字符串地址给R1 MOV R3,#0 ;给R3赋值0 strcopy LDRB R2,[R0],#1 ;把R0给R2后加一 CMP R2,#0 ;比较R2和0,检测字符串是否结束 BEQ endcopy ;等于跳转到结束 STRB R2,[R1],#1 ;把R2给R1后R1+1 ADD R3,R3,#1 ;R3自加 B strcopy ;循环 endcopy LDR R0,=ByteNum ;把字符数的地址给R0 STR R3,[R0] ;把R3的值放到R0中 B . AREA Datapool,DATA,READWRITE Src DCB "string\0" ;初始字符串存储空间 Dst DCB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;目的字符串存储空间 ByteNum DCD 0 END 实验截图: 结果分析: 由程序可知,初始状态是R0存放起始字符串,R1存放目的字符串,R3赋初值0,拷贝字符 串过程中,R3作为计数变量,每次自增一,拷贝借用R2做中转寄存器,每次复制到R2一 个字符都要检查是否为0 ,若为0则字符串已经拷贝完毕,跳转到endcopy,若不为0则继续循环拷贝,直到结束。 最后将技术变量的值存放到到R0中。实验结果截图可知,R0中为字符串长度,R1为目的 字符串。 练习题 设计思路: R4~R11起始值为1~8,每次加操作后把R4~R11的内容放入SP栈中,SP初始设置为0x800, 最后把R4~R11清空赋值为0。多字的加载与存储使用多寄存器寻址,使用的指令为LDM和 STM。 源程序: AREA Init,CODE,READONLY ENTRY CODE32 start MOV SP,#0X800 LDR R0,=src ;把src的地址赋给R0 LDR R2,=str ;把

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值