The best way to reset it is here:
void command(String value) {
memset(serialBuffer, 0, sizeof serialBuffer);
crc = 0;
sendToI2CUART(serialBuffer, value);
}
I do not see what you mean with the c-string? I will put the characters from the command in the serialBuffer array. Is there automatically a '\0' termination because of the String declaration?