单击"确定"按钮时,我有一系列值,即:
1
| 88,2015,5,17,22,6,53,2015,05,17,22,06,53,0,0,0,0,0,0,0,0 |
我将通过串行方式把它们发送给Arduino,问题是它们目前的格式。
Arduino希望它们的格式(数据类型)与从串行终端窗口发送的格式相同,并且不添加换行符。我目前在Arduino上的代码中使用Serial.parseint(),以接收用逗号分隔的值,并将它们加载到变量中。(当我在串行终端窗口中键入以下内容时,它当前正在工作:88,2015,5,17,22,6,53,2015,05,17,22,06,53,0,0,0,0,0,0,0,0
我可以这样做:
1 2
| string mystr ="88,2015,5,17,22,6,53,2015,05,17,22,06,53,0,0,0,0,0,0,0,0";
int[] nums = Array.ConvertAll(s.Split(','), int.Parse); |
但是我必须把它们恢复到相同的格式。
如何将EDOCX1[2]的值设置/更改为Arduino需要的值?
- 请补充更多信息,很难准确地说出你在这里问什么。请同时添加相关代码和错误,以便我们更好地帮助您。
- 可能是string.Join(",", nums)?
- 如果您需要将它们恢复到相同的格式,那么:stackoverflow.com/questions/4756565/…
- 当您在终端窗口中键入时,您正在发送文本(字符串,而不是int)。这个问题不清楚。试着弄清楚阿杜诺到底在期待什么。
- 可能这篇文章可以帮助您链接
- 哇,谢谢大家的回答。也许我在使用我的C程序向Arduino发送串行数据时感到困惑,它似乎没有收到,但当我通过串行终端发送上面的字符串时,它确实收到了。我从两个日期时间选择器框和几个复选框中收集的字符串"mystr",在Arduino上,我接收整个字符串,然后使用serial.parseInt()对其进行分析,该函数将每个逗号分隔的值分隔成整数。所以根据我的要求,我已经得到了正确格式的数据,即字符串?有人能确认一下吗?
- @维克多……谢谢你,我已经看到了这一点,并一直把它作为指导和参考,但它使用和数组。
- @Henk the Arduino希望使用字符串,因为我在这里列出的字符串没有CR或新行字符或任何其他行尾:882015,5,17,22,6,532015,05,17,22,06,53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,如果是这样的话,那我就搞砸了,我的连载邮件是从C方发来的吗?
- 你问什么真的很不清楚。你的受试者说你想要一个int[],但是你说你需要的格式和string[]相同。
我不太明白,但是如果你想把它们转换回逗号分隔的字符串,你可以这样做:
1
| string nums = string.Join(",", Array.ConvertAll(s.Split(','), int.Parse)); |
一段时间前我为一个朋友做了一些转换函数,他也在使用Arduino,我不确定这正是你需要的,但也许它可以帮助你http://blogs.dotnetwork.it/sabrina/en/blog/c-conversioni-dati-che-sifesive/
这篇文章最初是用意大利语写的,但是在页面的顶部你可以找到一个组合框来将翻译设置为英语。我已经检查过了,我认为这是可以理解的。
- @谢谢你的回复链接,但不是我想要的。
- 好吧,那么,在我发现不清楚的地方重新阅读你的问题,你的意思是让它们回到相同的格式,你必须把字符串转换成数字,然后把数字作为字符串传输?如果答案是肯定的,那么你要用什么格式把数字放到字符串上,是十进制的,十六进制的还是什么?