#ifndef APPDIRECCION_H
#define	APPDIRECCION_H

#include <xc.h>
#include <stdint.h>
#include "pin_manager.h" 
#include "spi1.h" 
#include "main.h"

#ifdef	__cplusplus
extern "C" {
#endif
///////////////////////////////////////////////////////////////////////////////
//#define
///////////////////////////////////////////////////////////////////////////////
typedef enum
{
    // Enumeracion estados APPdireccion
    APPdireccion_STATE_INIT = 0,APPdireccion_STATE_1,APPdireccion_STATE_2,APPdireccion_STATE_3,APPdireccion_STATE_4,APPdireccion_STATE_5,
    APPdireccion_STATE_6,APPdireccion_STATE_7,APPdireccion_STATE_8,APPdireccion_STATE_9,APPdireccion_STATE_10,APPdireccion_STATE_11,
    APPdireccion_STATE_12,APPdireccion_STATE_13,APPdireccion_STATE_14,APPdireccion_STATE_15,APPdireccion_STATE_16,APPdireccion_STATE_17,
    APPdireccion_STATE_18,APPdireccion_STATE_19,APPdireccion_STATE_20,APPdireccion_STATE_21,APPdireccion_STATE_22,APPdireccion_STATE_23,
    APPdireccion_STATE_24,APPdireccion_STATE_25,APPdireccion_STATE_26,APPdireccion_STATE_27,APPdireccion_STATE_28,APPdireccion_STATE_29,
    APPdireccion_STATE_30,APPdireccion_STATE_31,APPdireccion_STATE_32,APPdireccion_STATE_33,APPdireccion_STATE_34,APPdireccion_STATE_35,
    APPdireccion_STATE_36,APPdireccion_STATE_37,APPdireccion_STATE_38,APPdireccion_STATE_39,APPdireccion_STATE_40,APPdireccion_STATE_41,
    APPdireccion_STATE_42,APPdireccion_STATE_43,APPdireccion_STATE_44,APPdireccion_STATE_45,APPdireccion_STATE_46,APPdireccion_STATE_47,
    APPdireccion_STATE_48,APPdireccion_STATE_49,APPdireccion_STATE_50,APPdireccion_STATE_51,APPdireccion_STATE_52,APPdireccion_STATE_53,
    APPdireccion_STATE_54,APPdireccion_STATE_55,APPdireccion_STATE_56,APPdireccion_STATE_57,APPdireccion_STATE_58,APPdireccion_STATE_59,
    APPdireccion_STATE_60,APPdireccion_STATE_61,APPdireccion_STATE_62,APPdireccion_STATE_63,APPdireccion_STATE_64,APPdireccion_STATE_65,
    APPdireccion_STATE_66,APPdireccion_STATE_67,APPdireccion_STATE_68,APPdireccion_STATE_69,APPdireccion_STATE_70,APPdireccion_STATE_71,
    APPdireccion_STATE_72,APPdireccion_STATE_73,APPdireccion_STATE_74,APPdireccion_STATE_75,APPdireccion_STATE_76,APPdireccion_STATE_77,
    APPdireccion_STATE_78,APPdireccion_STATE_79,APPdireccion_STATE_80,APPdireccion_STATE_81,APPdireccion_STATE_82,APPdireccion_STATE_83,
    APPdireccion_STATE_84,
    APPdireccion_STATE_IDLE,
} APPdireccion_STATES;
//-------------------------------------
typedef union
{
// Flags de la APPdireccion
    uint8_t FLAGreg;
    struct{
        unsigned APPdireccion:1;
        unsigned :7;
    };
}APPdireccion_FLAGS;
//-------------------------------------

/* Estructura de datos de la aplicacion, los string y buffer 
   se definen fuera */ 
typedef struct
{ 
//    uint8_t tiempo1ms;
    uint8_t tiempo10ms;
    APPdireccion_STATES state; //Enumeracion de estados de la tarea
    APPdireccion_FLAGS flag;
} APPdireccion_DATA;
APPdireccion_DATA appdireccionData; //declaracion gobal para acceder desde otras APP
///////////////////////////////////////////////////////////////////////////////
// P R O T O T I P O S ////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void APPdireccion_Initialize(void);
void APPdireccion_Tasks(void);
void APPdireccion_Off(void);
void APPdireccion_On(void);
///////////////////////////////////////////////////////////////////////////////



#ifdef	__cplusplus
}
#endif

#endif	/* APPDIRECCION_H */

