PIC24 Support Libraries
esos_f14ui.h
1 /*******************************************************************
2  *
3  * C header file for ESOS user-interface (UI) service
4  *
5  * requires the EMBEDDED SYSTEMS target rev. F14
6  *
7  * ****************************************************************/
8 
9 #ifndef ESOS_UIF14_H
10 #define ESOS_UIF14_H
11 
12 // STRUCTURES
13 
14 typedef struct {
15  BOOL b_SW1Pressed;
16  BOOL b_SW1DoublePressed;
17  BOOL b_SW2Pressed;
18  BOOL b_SW1DoublePressed;
19  BOOL b_SW3Pressed;
20  BOOL b_SW1DoublePressed;
21 
22  BOOL b_RPGAHigh;
23  BOOL b_RPGBHigh;
24 
25  BOOL b_LED1On;
26  uint16_t u16_LED1FlashPeriod;
27  BOOL b_LED2On;
28  uint16_t u16_LED2FlashPeriod;
29  BOOL b_LED3On;
30  uint16_t u16_LED3FlashPeriod;
31 
32  uint16_t u16_RPGCounter;
33  uint16_t u16_lastRPGCounter;
34 } _st_esos_uiF14Data_t;
35 
36 // DEFINEs and CONSTANTs
37 #define __ESOS_TICKS_TO_MS(x) (x/1)
38 #define __ESOS_MS_TO_TICKS(x) (x*1)
39 #define __ESOS_UIF14_UI_PERIOD_MS 10
40 
41 // PRIVATE DATA
42 
43 _st_esos_uiF14Data_t _st_esos_uiF14Data;
44 
45 // PRIVATE FUNCTION PROTOTYPES
46 
47 uint16_t esos_uiF14_getRPGCounter (void);
48 void esos_ui_setRPGCounter (uint16_t);
49 
50 uint16_t esos_uiF14_getLastRPGCounter (void);
51 void esos_ui_setLastRPGCounter (uint16_t);
52 
53 ESOS_USER_TASK __uiF14_task;
54 
55 // PUBLIC API FUNCTION PROTOTYPES
56 
57 inline BOOL esos_uiF14_isSW1Pressed (void);
58 inline BOOL esos_uiF14_isSW1Released (void);
59 inline BOOL esos_uiF14_isSW1DoublePressed (void);
60 
61 inline BOOL esos_uiF14_isSW2Pressed (void);
62 inline BOOL esos_uiF14_isSW2Released (void);
63 inline BOOL esos_uiF14_isSW2DoublePressed (void);
64 
65 inline BOOL esos_uiF14_isSW3Pressed (void);
66 inline BOOL esos_uiF14_isSW3Released (void);
67 inline BOOL esos_uiF14_isSW3DoublePressed (void);
68 
69 inline void esos_uiF14_turnLED1On (void);
70 inline void esos_uiF14_turnLED1Off (void);
71 inline void esos_uiF14_toggleLED1 (void);
72 inline void esos_uiF14_flashLED1 (uint16_t);
73 
74 inline void esos_uiF14_turnLED2On (void);
75 inline void esos_uiF14_turnLED2Off (void);
76 inline void esos_uiF14_toggleLED2 (void);
77 inline void esos_uiF14_flashLED2 (uint16_t);
78 
79 inline void esos_uiF14_turnLED3On (void);
80 inline void esos_uiF14_turnLED3Off (void);
81 inline void esos_uiF14_toggleLED3 (void);
82 inline void esos_uiF14_flashLED3 (uint16_t);
83 
84 inline void esos_uiF14_turnRedLEDOn (void);
85 inline void esos_uiF14_turnRedLEDOff (void);
86 inline void esos_uiF14_turnGreenLEDOn (void);
87 inline void esos_uiF14_turnGreenLEDOff (void);
88 inline void esos_uiF14_turnYellowLEDOn (void);
89 inline void esos_uiF14_turnYellowLEDOff (void);
90 
91 inline uint16_t esos_uiF14_getRPGValue_u16 (void);
92 inline BOOL esos_uiF14_isRPGTurning (void);
93 inline BOOL esos_uiF14_isRPGTurningSlow (void);
94 inline BOOL esos_uiF14_isRPGTurningMedium (void);
95 inline BOOL esos_uiF14_isRPGTurningFast (void);
96 inline BOOL esos_uiF14_isRPGTurningCW (void);
97 inline BOOL esos_uiF14_isRPGTurningCCW (void);
98 
99 void config_esos_uiF14();
100 int16_t esos_uiF14_getRPGVelocity_i16 (void);
101 
102 // PUBLIC API ESOS TASK MACROS
103 
104 #define ESOS_TASK_WAIT_UNTIL_UIF14_SW1_PRESSED() ESOS_TASK_WAIT_UNTIL( esos_uiF14_isSW1Pressed() )
105 #define ESOS_TASK_WAIT_UNTIL_UIF14_SW1_RELEASED() ESOS_TASK_WAIT_UNTIL( esos_uiF14_isSW1Released() )
106 #define ESOS_TASK_WAIT_UNTIL_UIF14_SW1_PRESSED_AND_RELEASED() do { /
107  ESOS_TASK_WAIT_UNTIL_UIF14_SW1_PRESSED(); /
108  ESOS_TASK_WAIT_UNTIL_UIF14_SW1_RELEASED(); /
109  } while (0)
110 #define ESOS_TASK_WAIT_UNTIL_UIF14_SW1_DOUBLE_PRESSED() // not yet implemented
111 
112 #define ESOS_TASK_WAIT_UNTIL_UIF14_SW2_PRESSED() // not yet implemented
113 #define ESOS_TASK_WAIT_UNTIL_UIF14_SW2_RELEASED() // not yet implemented
114 #define ESOS_TASK_WAIT_UNTIL_UIF14_SW2_PRESSED_AND_RELEASED() // not yet implemented
115 #define ESOS_TASK_WAIT_UNTIL_UIF14_SW2_DOUBLE_PRESSED() // not yet implemented
116 
117 #define ESOS_TASK_WAIT_UNTIL_UIF14_SW3_PRESSED() // not yet implemented
118 #define ESOS_TASK_WAIT_UNTIL_UIF14_SW3_RELEASED() // not yet implemented
119 #define ESOS_TASK_WAIT_UNTIL_UIF14_SW3_PRESSED_AND_RELEASED() // not yet implemented
120 #define ESOS_TASK_WAIT_UNTIL_UIF14_SW3_DOUBLE_PRESSED() // not yet implemented
121 
122 #define ESOS_TASK_WAIT_UNTIL_UIF14_RPG_UNTIL_TURNS() // not yet implemented
123 #define ESOS_TASK_WAIT_UNTIL_UIF14_RPG_UNTIL_TURNS_CW() // not yet implemented
124 #define ESOS_TASK_WAIT_UNTIL_UIF14_RPG_UNTIL_TURNS_CCW() // not yet implemented
125 #define ESOS_TASK_WAIT_UNTIL_UIF14_RPG_TURNS_MEDIUM() // not yet implemented
126 #define ESOS_TASK_WAIT_UNTIL_UIF14_RPG_TURNS_MEDIUM_CW() // not yet implemented
127 #define ESOS_TASK_WAIT_UNTIL_UIF14_RPG_TURNS_MEDIUM_CCW() // not yet implemented
128 #define ESOS_TASK_WAIT_UNTIL_UIF14_RPG_TURNS_FAST() // not yet implemented
129 #define ESOS_TASK_WAIT_UNTIL_UIF14_RPG_TURNS_FAST_CW() // not yet implemented
130 #define ESOS_TASK_WAIT_UNTIL_UIF14_RPG_TURNS_FAST_CCW() // not yet implemented
131 #define ESOS_TASK_WAIT_UNTIL_UIF14_RPG_MAKES_REV(y) // not yet implemented
132 #define ESOS_TASK_WAIT_UNTIL_UIF14_RPG_MAKES_CW_REV(y) // not yet implemented
133 #define ESOS_TASK_WAIT_UNTIL_UIF14_RPG_MAKES_CCW_REV(y) // not yet implemented
134 
135 
136 #endif // ESOS_UIF14_H
BOOL
Definition: all_generic.h:402
ESOS_USER_TASK(CANFactory)
Definition: esos_ecan.c:70