102 lines
2.4 KiB
C++
102 lines
2.4 KiB
C++
#include "mcu/mcu.h"
|
|
#include "xf/xf.h"
|
|
#include "factory.h"
|
|
#include "board/interface/buttonscontrollercallbackprovider.h"
|
|
|
|
extern "C" TIM_HandleTypeDef htim1; // Defined in main.c
|
|
extern "C" ADC_HandleTypeDef hadc3; // Defined in main.c
|
|
|
|
oscilloscope::Controller Factory::_oscilloscopeController;
|
|
oscilloscope::Gui Factory::_gui;
|
|
external::FrequencyGenerator Factory::_fgen;
|
|
oscilloscope::FreqGenController Factory::_fgenctrl;
|
|
ButtonsController Factory::_bc;
|
|
|
|
void Factory_initialize()
|
|
{
|
|
Factory::initialize();
|
|
|
|
}
|
|
|
|
void Factory_build()
|
|
{
|
|
Factory::build();
|
|
}
|
|
|
|
Factory::Factory()
|
|
{
|
|
|
|
}
|
|
|
|
// static
|
|
void Factory::initialize()
|
|
{
|
|
Trace::out("---------------------------------------------");
|
|
Trace::out("Initializing...");
|
|
|
|
// TODO: Uncomment code line below in order to call OscilloscopeController's initialize() method
|
|
// getOscilloscopeController().initialize(getGui(), adcValuesBuffer, ADC_VALUES_BUFFER_SIZE);
|
|
getFrequencyGenerator().initialize();
|
|
getFreqGenController().initialize(getGui());
|
|
#if (TOUCHGFX_BAREMETAL != 0)
|
|
getTouchGfxTask().initialize();
|
|
#endif // TOUCHGFX_BAREMETAL
|
|
}
|
|
|
|
// static
|
|
void Factory::build()
|
|
{
|
|
Trace::out("Building...");
|
|
|
|
HAL_ADC_Start_IT(&hadc3); // Start ADC conversion
|
|
HAL_TIM_OC_Start_IT(&htim1, TIM_CHANNEL_1); // Start TIM1 with trigger channel 1
|
|
|
|
getOscilloscopeController().start();
|
|
getGui().start();
|
|
getButtonsController().registerCallback(&getFreqGenController(),
|
|
(interface::ButtonsControllerCallbackProvider::CallbackMethod)&oscilloscope::FreqGenController::onButtonChanged);
|
|
|
|
getFreqGenController().start();
|
|
getButtonsController().start();
|
|
#if (TOUCHGFX_BAREMETAL != 0)
|
|
getTouchGfxTask().start();
|
|
#endif // TOUCHGFX_BAREMETAL
|
|
|
|
Trace::out("Running...");
|
|
}
|
|
|
|
oscilloscope::Controller & Factory::getOscilloscopeController()
|
|
{
|
|
return oscilloscope::Controller::getInstance();
|
|
}
|
|
|
|
//static
|
|
oscilloscope::Gui & Factory::getGui()
|
|
{
|
|
return _gui;
|
|
}
|
|
|
|
//static
|
|
ButtonsController& Factory::getButtonsController() {
|
|
return _bc;
|
|
}
|
|
|
|
//static
|
|
oscilloscope::FreqGenController& Factory::getFreqGenController() {
|
|
return _fgenctrl;
|
|
}
|
|
|
|
|
|
#if (TOUCHGFX_BAREMETAL != 0)
|
|
// static
|
|
TouchGfxTask & Factory::getTouchGfxTask()
|
|
{
|
|
static TouchGfxTask touchGfxTask;
|
|
return touchGfxTask;
|
|
}
|
|
#endif // TOUCHGFX_BAREMETAL
|
|
|
|
FrequencyGenerator& Factory::getFrequencyGenerator() {
|
|
return _fgen;
|
|
}
|