ATF串口智能屏应用资料

有关ATFc串口屏的手册,教程,工具都会更新到这里


Part9_数值触摸输入演示

<p>[TOC]</p> <h1>功能描述</h1> <p>数值控件弹出输入框字符串输入 按钮控件配合控件响应消息进行数值输入。</p> <h4>接线方法</h4> <p>如不需使用代码来直接打印操作信息,使用USB线为ATF模块提供电源即可。 代码测试部分需与Arduino控制器进行连接,RX-TX,GND-GND(用到了RX和TX串口)。</p> <h4>实现功能</h4> <p>数值控件若想实现弹出输入框的输入功能,必须有数值输入框资源项的支持。数值输入框资源项文件后缀为.inr。可在ATF_UITool工具的文件夹里找到。 1.加载所需控件到资源列表后,打开需要控件的页面进行配置字符控件即可。 2.区域控件可添加控件响应消息,其中有加值或减值的操作,选择所需响应消息后,再选择响应目标,即可对目标进行所选操作。 本例所需资源已在下方资源链接中准备好。</p> <h4>温馨提示</h4> <p>数值输入框资源项加载入资源文件后,必须在要使用它的界面里进行配置。否则字符控件无法正常弹出输入框。</p> <h4>操作示例</h4> <p>如不需第六步操作,可只为ATF模块提供电源即可测试效果。 1.仍使用ATF043模块,具体可参考之前的配置。 2.切换到资源列表加载所需控件资源,如图: <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=5ff4969fd5f266284d814ec9fe566ff2&amp;amp;file=file.png" alt="" /> 3.打开需要数值控件的界面,配置数值控件,如图: <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=b4ca6c2557f84b56805117d1e1f12b86&amp;amp;file=file.png" alt="" /> <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=9c10c094dc9bf11b6b14009061b60e6b&amp;amp;file=file.png" alt="" /> 4.添加三个数值控件100,101,102,其中100和101分别用于无符整数,有符浮点数的输入测试。102设置了无响应,用于之后测试控件响应消息。本次具体配置如图: 100: <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=7066f775b852889dda2e8383a03990b2&amp;amp;file=file.png" alt="" /> 101: <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=8da2ff43fa7db4169204f573a9d16397&amp;amp;file=file.png" alt="" /> 102: <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=948433f77cf6feb5775ae1058c951374&amp;amp;file=file.png" alt="" /> 5.为102添加两个区域控件,分别添加加值和减值的控件响应消息,并配置响应目标为102,即可控制102数值变化,如图: <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=d60c8902b7d1ff9f776b905c03abc69d&amp;amp;file=file.png" alt="" /> <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=ebb6ebe9829a0c3b6eccbcff5ab68ddf&amp;amp;file=file.png" alt="" /> *6.可在本页面添加字符串字节打印区,配合下方程序进行测试。</p> <h1>使用代码</h1> <p>本次代码在part5代码基础上更改,详见part5。</p> <pre><code class="language-c">void setup() { // put your setup code here, to run once: Serial.begin(9600); Serial.setTimeout(10); delay(2000); } unsigned char m_ReciverHeader; //ATF Message Header char = @/#/$ unsigned short m_ReciverBodyID; //ATF Message BodyID 0:GUI Swtich 100~65535:Body Msg int m_ReciverVarInt; //ATF Message int Val(Header=@) float m_ReciverVarFloat; //ATF Message float Val(Header=#) String m_ReciverVarString; //ATF Message String Val(Header=$) void loop() { // put your main code here, to run repeatedly: if(ATFMessageService(1)) { if(m_ReciverBodyID==100||m_ReciverBodyID==102) { Serial.print(&amp;quot;\r&amp;quot;); Serial.print(&amp;quot;ID&amp;quot;); Serial.print(m_ReciverBodyID); Serial.print(&amp;quot; Input:&amp;quot;); Serial.print(m_ReciverVarInt); } if(m_ReciverBodyID==101) { Serial.print(&amp;quot;\r&amp;quot;); Serial.print(&amp;quot;ID&amp;quot;); Serial.print(m_ReciverBodyID); Serial.print(&amp;quot; Input:&amp;quot;); Serial.print(m_ReciverVarFloat,3); } if(m_ReciverBodyID==103||m_ReciverBodyID==104) { Serial.println(&amp;quot;@READ 102&amp;quot;); } } } unsigned char ATFMessageService(unsigned char delaytimer) { char n_TempChar; n_TempChar = Serial.available(); if(n_TempChar) { delay(delaytimer); n_TempChar = Serial.read(); while(n_TempChar!='@'&amp;amp;&amp;amp;n_TempChar!='#'&amp;amp;&amp;amp;n_TempChar!='$'&amp;amp;&amp;amp;n_TempChar&amp;gt;=0) { n_TempChar = Serial.read(); } m_ReciverHeader = n_TempChar; m_ReciverBodyID = Serial.parseInt(); if(n_TempChar=='@') { m_ReciverVarInt = Serial.parseInt(); } else if(n_TempChar=='#') { m_ReciverVarFloat = Serial.parseFloat(); } else if(n_TempChar=='$') { Serial.read(); m_ReciverVarString = Serial.readStringUntil('\r'); } else return 0; return 1; } return 0; }</code></pre> <h1>资源文件</h1> <p><a href="https://pan.baidu.com/e/1rVtXfAZc44OR3R6HcM_w1g?pwd=ATFC">高级篇part9_资源文件</a></p> <h1>视频教程</h1> <p><a href="https://www.bilibili.com/video/BV1vL4y1L7Rv/?spm_id_from=333.999.0.0&amp;amp;vd_source=8adc070117854dc6967b17bf3379321b">【高级篇】Part9_数值触摸输入演示</a></p>

页面列表

ITEM_HTML