while (BT.available())
{
delay(10);
char c=BT.read();
readData +=c;
}
While you KNOW that there is data to read, stuff your head in the sand for 99.9% of the time. Why?
That delay() is absolutely the wrong way of ensuring that you get a complete packet.
Apparently all of the packets contain start ('*') and end ('#') markers. Read the data this way, using char arrays, NOT Strings:
Serial input basics - updated
I've never understand why anyone would do anonymous printing. I've never understood why anyone would print a string without some kind of markers before and after the text, so that they could see if there were non-printable characters in the string.