updated networking

This commit is contained in:
Jonas Zeunert
2020-01-09 23:03:42 +01:00
parent 60367ff8b5
commit 9dfd734dd6
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::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::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::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: private:
std::shared_ptr<output::DisplayController> display_controller; std::shared_ptr<output::DisplayController> display_controller;

View File

@@ -221,21 +221,20 @@ boost::optional<Poco::JSON::Object> OutputRequestHandler::parseSound(const std::
return response; 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; Poco::JSON::Object response;
if(item_name == "") if(display_name == "")
{ {
response.set("displays", this->output_driver->get_displays()); response.set("displays", this->output_driver->get_displays());
return response; return response;
} }
uint8_t display_number = std::stoi(item_name); auto opt_display = this->output_driver->get_display(display_name);
auto opt_display = this->output_driver->get_display(display_number);
if(!opt_display) 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(); 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> 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> 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> 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); boost::optional<Poco::JSON::Object> parseFlipper(const std::string& item_name, const std::string& action);
std::vector<std::string> getPathSegments(Poco::URI uri); 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; 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(name)->second;
return this->displays.find(num)->second;
} }
void OutputDriver::shut_down_driver() const void OutputDriver::shut_down_driver() const