#ifndef WideTextFinder_h #define WideTextFinder_h //#include #include #include class WideTextFinder { private: SoftwareSerial* nSerialStream; unsigned long timeout; // number of seconds to wait for the next char before aborting read unsigned long startMillis; // used for timeout measurement boolean debug; char read(); // private function to read from the stream public: // constructor: // default timeout is 5 seconds WideTextFinder(SoftwareSerial &stream, int timeout = 5); // Ethernet constructor // Manage debug void setDebug(boolean d); // find methods - these seek through the data but do not return anything // they are useful to skip past unwanted data // boolean find(char *target); // reads data from the stream until the target string is found // returns true if target string is found boolean findUntil(char *target, char *terminate); // as above but search ends if the terminate string is found // get methods - these get a numeric value or string from the data stream // long getValue(); // returns the first valid (long) integer value from the current position. // initial characters that are not digits (or the minus sign) are skipped // integer is terminated by the first character that is not a digit. long getValue(char skipChar); // as above but the given skipChar is ignored // this allows format characters (typically commas) in values to be ignored float getFloat(); // float version of getValue float getFloat(char skipChar); // as above but the given skipChar is ignored int getString( char *pre_string, char *post_string, char *buffer, int length); //puts string found between given delimiters in buffer // string will be truncated to fit the buffer length // end of string determined by a match of a character to the first char of close delimiter // returns the number of characters placed in the buffer (0 means no valid data found) unsigned long getTimeout(); // returns the number of seconds to wait for the next char before aborting read // set methods // void setTimeout(unsigned long timeout); // set a new value for the wait timeout }; #endif