伽利略开发板和BeeMail结尾篇(六):从C字符串到int型
在这一部分我只阐述对getEmailCount() function部分做了哪些修改,使之最终能读取文件。庆幸的是现在已经可以在SD卡上操作了。
本文引用地址:http://www.amcfsurvey.com/article/266554.htmStrings到Ints
尽管含有数字的文件可以下载到SD卡,但sparkfun提供的Intel Galileo tutorial部分代码还是报错。为此我第二次检查前做了许多修改,可以说我还是不明白怎么修改。我得承认自己并不擅长调试。若非时间有限,我一定从头好好调试。
整型变量中本应包含收件箱中的邮件数量,但运行代码时却出现了不应有的空白值。整型数值来自于SD卡中文本文件的ASCII字符(以数组形式导入)。有时为完成从string到int的转变,需要对字符或数组进行处理。
若上述方法不奏效可以试试下列方法,我将涉及串口传输的选了出来。串口传输时,协议需要数据的传输格式定义得很清楚,以便数据在计算机之间正确传递。在此我觉得研究基于一块开发板,进行两个程序之间进行数据交换也是个不错的选题。
Arduino’s Serial.print 文件
NYU ITP’s 有关物理计算机串口Out Lab的介绍
RoboReal Serial Tutorial
明确地说,Jim Lindblom的方法极为明智:他通过对读取文本文件(见第118行)时得到的0(48)做ASCII减法,实现了从ASCII数字到int的转换。他用for循环语句单步调试存放int值的数组,用恰当的数字10和每个值相乘,得到的总和便与正确的邮件数目(见第125,126行)相等。这种方法不需要任何Arduino外部参考指导就能达到目的,反映了Arduino社区的友好性。
此时我也有些不耐烦了,所以选择了并不友好但更简洁的方式,将文本数字导入字符数组并以Null结束,然后用c function atoi()替代了for循环。记住,C文件中string通常指以null结束的字符数组,而非Arduino String对象的一个模拟变量。
庆祝时刻
终于没问题了!成功将shield从Uno移植到伽利略板!
评论