could that the right way?
while(Serial.available() > 0) // Don't read unless
for(index = 0; index == 16; index++) //0 to 16 is 17
SensorData = Serial.read();
SerialData[index] = SensorData;
If there is at least one byte available, read all 17 of them. Hardly seems useful to store 16 -1s in the array.
That won't read a complete packet, anyway. It will simply, assuming that there are 17 or more bytes available, grab 17 bytes. Not necessarily the correct 17 to make a packet.
How often does the device send data? Is is a continuous stream, or is there a long (relatively) gap between the spaced parts that make up a packet?