ESP-Ventilation/esp-vent-main/src/esp-vent-main.cpp
2022-10-18 10:40:04 +03:00

96 lines
2.3 KiB
C++

/*
===============================================================================
Name : main.c
Author : Vasily, Evgenii, Jaakko, Miisa
Version :
Copyright : $(copyright)
Description : main definition
===============================================================================
*/
#if defined(__USE_LPCOPEN)
#if defined(NO_BOARD_LIB)
#include "chip.h"
#else
#include "board.h"
#endif
#endif
#include "DigitalIoPin.h"
#include "LiquidCrystal.h"
#include "StateHandler.h"
#include "SwitchController.h"
#include "Timer.h"
#include "PressureWrapper.h"
#include "I2C.h"
#include <cr_section_macros.h>
// TODO: insert other include files here
// TODO: insert other definitions and declarations here
int
main (void)
{
#if defined(__USE_LPCOPEN)
// Read clock settings and update SystemCoreClock variable
SystemCoreClockUpdate ();
#if !defined(NO_BOARD_LIB)
// Set b_up_state and initialize all required blocks and
// functions related to the board hardware
Board_Init ();
// Set the LED to the state of "On"
Board_LED_Set (0, true);
#endif
#endif
/** Lcd & stateHandler */
Chip_RIT_Init (LPC_RITIMER);
Timer glob_time;
DigitalIoPin rs (0, 29, false, true, false);
DigitalIoPin en (0, 9, false, true, false);
DigitalIoPin d4 (0, 10, false, true, false);
DigitalIoPin d5 (0, 16, false, true, false);
DigitalIoPin d6 (1, 3, false, true, false);
DigitalIoPin d7 (0, 0, false, true, false);
LiquidCrystal lcd (&rs, &en, &d4, &d5, &d6, &d7);
StateHandler ventMachine (&lcd);
//
lcd.setCursor (0, 0);
lcd.print ("Test");
/** Common pins */
DigitalIoPin b_up (0, 7, true, true, true); // A5
SwitchController sw_up (&b_up, &glob_time, &ventMachine, BUTTON_CONTROL_UP);
DigitalIoPin b_down (0, 6, true, true, true); // A4
SwitchController sw_down (&b_down, &glob_time, &ventMachine,
BUTTON_CONTROL_DOWN);
DigitalIoPin b_toggle (0, 5, true, true, true); // A3
SwitchController sw_toggle (&b_toggle, &glob_time, &ventMachine,
BUTTON_CONTROL_TOG_MODE);
PressureWrapper sens();
while (1)
{
sw_up.listen ();
sw_down.listen ();
sw_toggle.listen ();
/**
* TODO:
* - Update current pressure to eTick
*/
ventMachine.HandleState (Event (Event::eTick));
glob_time.tickCounter (1);
}
return 0;
}