处理大字符串/数组?

时间:2011-12-20 17:38:05

标签: c++ c arduino

我需要解析大量数据。当我的意思很多时,我说的是5000到10,000个字符。现在,我的代码可以处理285条数据。我正在使用Arduino原型设计平台。这是我sketch中的loop()

void loop() {

    if (client.available()) {
        char inChar = client.read();
        currentLine += inChar;
        if (inChar == '\n') { currentLine = ""; }

        if (currentLine.endsWith("[start]")) {
            readingData = true;
            theData = "";
        }

        if (readingData) {
            if (inChar != '[') {
                 theData += inChar;
                 //Serial.println("something!");
            }
            else {
                readingData = false;
                int count = theData.length()-0;
                theData = theData.substring(1, count);
                Serial.println(theData);
                doAction(100,count,theData);
                client.stop();
            }
        }
    }

    if (!client.connected()) {
        Serial.println();
        Serial.println("disconnecting.");
        client.stop();
        for(;;)
            ;
    }
}

我应该将它分成20多个字符串并将它们放入数组中吗?我不确定我的2KB RAM是否能够处理它。

1 个答案:

答案 0 :(得分:4)

使用2千字节的RAM,您可以拥有不超过2000个字节的数据(实际上,由于堆栈和全局空间,实际上可能只有1500字节)。

如果您需要在内存中处理20千字节的数据,请购买更大的微控制器......(或者对您的Arduino进行编程以将数据传输到将处理它的PC)。