首页 文章

将通过Arduino Serial发送的字符串转换为Processing

提问于
浏览
0

我正在从Arduino发送一个字符串 . 字符串看起来像这样

2,0/3,0/4,0/5,0/6,0/7,0/8,1/9,1/10,1/11,1/12,1/13,1/

其中第一个数字是Arduino引脚,然后由角分隔,然后引脚状态1 =高0 =低

所以这里它的引脚2 =低,引脚3 =低......引脚13 =高

当此字符串进入处理时,我需要将字符串拆分并将值分配给与引脚对应的变量

就像是

int p2 = 0; int p3 = 0; .. .. .. int pin8 = 1;

实现这一目标的有效方法是什么?

我在这里得到的输入就是我所做的,

rawInput = "2,0/3,0/4,0/5,0/6,0/7,0/8,1/9,1/10,1/11,1/12,1/13,1";
pinNumber = split(rawInput, '/');
for (int i =0; i < pinNumber.length; i++) {
  pinValue = split(pinNumber[i], ",");
  hm.put(Integer.parseInt(pinValue[0]), Integer.parseInt(pinValue[1]));
}

这里有明显的缺陷吗?好像在起作用

1 回答

  • 0

    除了存储为HashMap之外 . 您可以将字符串 ",/" 拆分为字符串数组 . 然后使用您的模式,偶数索引是您的引脚编号,奇数索引是您的引脚值 . 一个循环可以快速实现这一点 .

    String str = "1,0/2,1"
    String[] strArr = str.split("/,");
    Map<String, Integer> storeMap = new HashMap(); 
    for (int i = 0, i < strArr.length; i++) {
        if (i % 2 == 0) {
            storeMap.put(String.valueOf(i), Integer.parseInt(strArr[i + 1]));
        }
    }
    

相关问题