ProfinetConnector/src/app.cpp

45 lines
1.6 KiB
C++
Raw Normal View History

#include "app.hpp"
#include "program_config.hpp"
bool App::Init(std::string profinet_config_file)
{
ProfinetSettings profinet_settings;
ProfinetDeviceSettings profinet_dev_settings;
/// Читаем настройки из файла
if (!programconf_getProfinetSettings("program_configure.json", profinet_settings))
{
return false;
}
///Создаем структуру в разделяемой памяти
ProfinetData_Map * p_profinetMap = shared_data_.Create("profinet_shared_data");
/// Читаем настройки из файла, выделяем память под структуру модулей и подмодулей
if (!programconf_getProfinetDeviceSettings(profinet_settings.profinet_device_config, profinet_dev_settings, p_profinetMap, shared_data_))
{
return false;
}
/// Настройка Profinet: Инициализация pnet, добавление DAP слотов и подслотов и подключение к ним модулей и подмодулей,
if (!profinet_.Config(profinet_settings, profinet_dev_settings, p_profinetMap))
{
return false;
}
/**
* Циклические данные устройства передаются с определенным периодом, сообщения от контроллера при этом не требуются.
*/
/// Запуск потока Profinet
profinet_.Start();
return true;
}
void App::Run()
{
for (;;)
{
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
}
}