ATF串口智能屏应用资料

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


Part10_字符串输入演示

<p>[TOC]</p> <h1>功能描述</h1> <p>字符串控件弹出输入框字符串输入 按钮控件配合控件响应消息进行字符串输入。</p> <h4>接线方法</h4> <p>如不需使用代码来直接打印操作信息,使用USB线为ATF模块提供电源即可。 代码测试部分需与Arduino控制器进行连接,RX-TX,GND-GND(用到了RX和TX串口)。</p> <h4>实现功能</h4> <p>字符控件若想实现弹出输入框的输入功能,必须有字符输入框资源项的支持。数值输入框资源项文件后缀为.sir。可在ATF_UITool工具里找到。 加载所需控件到资源列表后,打开需要控件的页面进行配置字符控件即可。 另一种方法可以靠添加合适的控件响应消息达成。 本例所需资源已在下方资源链接中准备好。</p> <h4>温馨提示</h4> <p>字符输入框资源项加载入资源文件后,必须在要使用它的界面里进行配置。否则字符控件无法正常弹出输入框。</p> <h4>操作示例</h4> <p>如不需第六步操作,可只为ATF模块提供电源即可测试效果。 1.仍使用ATF043模块,具体可参考之前的配置。 2.切换到资源列表加载所需控件资源,如图: <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=2a5b50742acb36f8dff8488897502d5c&amp;amp;file=file.png" alt="" /> 因为要演示中文字库的输入,所以加载一下中文字库,具体可看中级篇part4。 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=f1e736ac1ea3fbb39d666339fac2e05d&amp;amp;file=file.png" alt="" /> 3.设置字库,本例会显示中西文两种,所以两种都设置一下。 4.打开需要字符输入控件的界面,配置字符输入控件,字符串输入框的配置有两处字库设置,可在测试时查看具体效果,如图: <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=d540633a60805146119b6333d4e7948a&amp;amp;file=file.png" alt="" /> 5.配置两个字符串控件100和101,100控件类型选择中英文字符,101控件仅显示,具体配置如图: 100:需要配置字库 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=44e07b5aed0f8a4753976ed8486f4e18&amp;amp;file=file.png" alt="" /> 101: <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=afb7e0340cb6ccb37714d49054021cfa&amp;amp;file=file.png" alt="" /> 6.为101添加一些区域控件,用控件响应消息更改101控件内容,可使用复制功能快速添加控件,可使用上方按钮将区域控件按钮调整整齐,如图: <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=c140e7a00b108fc70849935d9106c6f5&amp;amp;file=file.png" alt="" /> 控件响应消息的添加详见part8。 *6.可在本页面添加字符串字节打印区,配合下方程序进行测试。</p> <h1>使用代码</h1> <p>本次代码在part6代码基础上更改。</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==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_ReciverVarString); } if(m_ReciverBodyID==109) { Serial.println(&amp;quot;@READ 101&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/10nJPJyPRRJv756IxTQ2zvw?pwd=ATFC">高级篇part10_资源文件</a></p> <h1>视频教程</h1> <p><a href="https://www.bilibili.com/video/BV1Ca41147NA/?spm_id_from=333.999.0.0&amp;amp;vd_source=8adc070117854dc6967b17bf3379321b">【高级篇】Part10_字符串输入演示</a></p>

页面列表

ITEM_HTML