Codigo-interpretacion

Me podrian ayudar a interpretar este codigo.
#include <SoftwareSerial.h>
SoftwareSerial BT(7,8);//10 RX, 11 TX.
void setup()
{
Serial.begin(9600);
BT.begin(9600);
Serial.flush();
pinMode(3,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
}
void loop()
{
Serial.flush();
if(BT.available()<1) return;
char get_char = BT.read();
if (get_char != ‘*’) return;
int dato=BT.parseInt();
int pin=BT.parseInt();
int valor=BT.parseInt();
Serial.println(dato);
Serial.println(pin);
Serial.println(valor);
if(dato == 11)
{
analogWrite(pin,valor);
}
if (dato == 10)
{
if (valor == 2)
{
valor = LOW;
digitalWrite(pin, valor);
}else if (valor == 3)
{
valor = HIGH;
digitalWrite(pin, valor);
}
}
}

Parece algo así como que está hecho para recibir una serie de datos por bluetooth (lo del bluetooth lo deduzco porque llaman BT al softwareserial) y cambiar el estado de algunos pines de salida del arduino, según los datos recibidos.

Esos datos, también son enviados al puerto serie para su visualización.

Que tiene de proyecto este post? Debería ir en subforo Software