/** * SIMCOM900::read(char* buffer, int buffersize) * * Waits for data to be readable from the gsm module, reads data until * no more is available or the buffer has been filled * * returns number of bytes read * */ int SIMCOM900::read(char* result, int resultlength) { char temp; int i=0; #ifdef DEBUG_ON Serial.print(F("Starting read..\nWaiting for Data..")); #endif // Wait until we start receiving data while(gsm.available()<1) { delay(100); #ifdef DEBUG_ON Serial.print(F(".")); #endif } while(gsm.available()>0 && i<(resultlength-1)) { temp=_cell.read(); if(temp>0) { #ifdef DEBUG_ON Serial.print(temp); #endif result[i]=temp; i++; } delay(1); } // Terminate the string result[resultlength-1]='\0'; #ifdef DEBUG_ON Serial.println(F("\nDone..")); #endif return i; }