Separar un char en dos variables sin usar String

packetBuffer[7] = 0; // No sé si este paso es redundante...
packetBuffer[3] = 0; // Así es como vamos a separar las cifras; por eso es importante que haya un espacio de por medio

Cero se usa como terminador de una cadena de caracteres. Al colocarlo en dos puntos, nos aseguramos que atoi termine analizando exactamente de tres en tres caracteres.

direccion = atoi(packetBuffer + 4);  // Lo mismo, pero 4 bytes más adelante (lo que resta)

Es el mismo packetBuffer, solo que le estoy indicando que proceda a partir del 4to byte (se omiten los tres primeros digitos y el terminador de esta parte).