updated networking

This commit is contained in:
Jonas Zeunert
2020-01-09 23:03:42 +01:00
parent eb58a06f49
commit 5cd9e35a93
4 changed files with 8 additions and 10 deletions

View File

@@ -61,7 +61,7 @@ public:
boost::optional<std::shared_ptr<items::Solenoid>> get_solenoid(const std::string &name) const;
boost::optional<std::shared_ptr<items::Sound>> get_sound(const std::string &name) const;
boost::optional<std::shared_ptr<items::Flipper>> get_flipper(const std::string &name) const;
boost::optional<std::shared_ptr<items::Display>> get_display(uint8_t number) const;
boost::optional<std::shared_ptr<items::Display>> get_display(const std::string &name) const;
private:
std::shared_ptr<output::DisplayController> display_controller;

View File

@@ -221,21 +221,20 @@ boost::optional<Poco::JSON::Object> OutputRequestHandler::parseSound(const std::
return response;
}
boost::optional<Poco::JSON::Object> OutputRequestHandler::parseDisplay(const std::string& item_name, const std::string& action, const std::string& score)
boost::optional<Poco::JSON::Object> OutputRequestHandler::parseDisplay(const std::string& display_name, const std::string& action, const std::string& score)
{
Poco::JSON::Object response;
if(item_name == "")
if(display_name == "")
{
response.set("displays", this->output_driver->get_displays());
return response;
}
uint8_t display_number = std::stoi(item_name);
auto opt_display = this->output_driver->get_display(display_number);
auto opt_display = this->output_driver->get_display(display_name);
if(!opt_display)
{
throw new Poco::NotFoundException("No display with number \"" + item_name + "\"!");
throw new Poco::NotFoundException("No display with name \"" + display_name + "\"!");
}
auto display = opt_display->get();

View File

@@ -33,7 +33,7 @@ private:
boost::optional<Poco::JSON::Object> parseSolenoid(const std::string& item_name, const std::string& action);
boost::optional<Poco::JSON::Object> parseLamp(const std::string& item_name, const std::string& action);
boost::optional<Poco::JSON::Object> parseSound(const std::string& item_name, const std::string& action);
boost::optional<Poco::JSON::Object> parseDisplay(const std::string& item_name, const std::string& action, const std::string& score);
boost::optional<Poco::JSON::Object> parseDisplay(const std::string& display_name, const std::string& action, const std::string& score);
boost::optional<Poco::JSON::Object> parseFlipper(const std::string& item_name, const std::string& action);
std::vector<std::string> getPathSegments(Poco::URI uri);

View File

@@ -147,10 +147,9 @@ boost::optional<std::shared_ptr<items::Flipper>> OutputDriver::get_flipper(const
return this->flippers.find(name)->second;
}
boost::optional<std::shared_ptr<items::Display>> OutputDriver::get_display(uint8_t number) const
boost::optional<std::shared_ptr<items::Display>> OutputDriver::get_display(const std::string &name) const
{
std::string num{static_cast<char>(number)};
return this->displays.find(num)->second;
return this->displays.find(name)->second;
}
void OutputDriver::shut_down_driver() const