//                         NODO MAESTRO                                       //
//Se encarga de realizar la pasarela entre el nodo esclavo y la comunicación  //
//bluetooth, ademas configura el dispositivo BlueMatik                        //

#include <18F2680.h>

#fuses HS,NOPROTECT,NOLVP,NOWDT,NODEBUG
/*
NOWDT:No vamos utilizar el perro guardián
NOPROTECT: Desactivamos la protección del código
NOLVP: Desactivamos la programación a bajo voltaje.
NODEBUG: Modo debug desactivado.
*/

#use delay(clock=8000000)

#use rs232(baud=115200,parity=N, xmit=PIN_C6, rcv=PIN_C7, bits=8)
#byte RCSTA= 				0xFAB
#byte TXSTA= 				0xFAC
#byte BAUDCON= 	    	0xFB8
#byte SPBRG= 				0xFAF


#define MUM PIN_C5
#define HUM PIN_C4
#define ONOFF PIN_C3


//Programa principal
void main()
{

RCSTA=0b10010000;
TXSTA=0b00100110;
BAUDCON=0b01000000;
SPBRG= 3;

disable_interrupts(global);   // desactivando interrupciones globales
setup_adc_ports(NO_ANALOGS);  // desactivando puertos analogicos
set_tris_c(0b10000111);	//RC7/Rx entrada, RC6/Tx salida RC5==MUM; RC4==HUM; RC3==ON/OFF



//                INICIALIZACIÓN DEL DISPOSITIVO BLUEMATIK                    //

while (true)
{


   delay_ms(500);
   output_high(HUM); // Todo lo que envie el BlueMatik al PIC o al movil será en forma de datos
   output_low(MUM);  // Todo lo que reciba el BlueMatik del PIC lo interpretara como comandos AT
   delay_ms(500);

   output_low(ONOFF);
   delay_ms(500);
     output_high(ONOFF);
     delay_ms(2000);

   printf("AT+BRSR=1,0\r\n");     //Inicializamos el puerto serie del bluematik
   delay_ms(2000);	//Temporiza 1000 msegundos


   printf("AT+BSEC=1\r\n");     // Definimos la seguridad
   delay_ms(2000);	//Temporiza 1000 msegundos

   printf("AT+BNAM=PFC\r\n");  // Le ponemos el friendlyname de PFC
   delay_ms(2000);	//Temporiza 1000 msegundos




printf("AT+BSLV\r\n");     //Le decimos al bluematik que se ponga en modo esclavo
delay_ms(2000);	//Temporiza 1000 msegundos



output_high(MUM);//Apartir de ahora todo lo que el microcontrolador le mande al BlueMatik, este lo interpretara como datos
// y no como comandos AT,como hasta ahora.
}

}//FIN DEL PROGRAMA
