Skip to content

Commit

Permalink
Proxy call with wrong name and ping conditions (#124)
Browse files Browse the repository at this point in the history
* [update] use correct name for proxy calls

* [update] switch from proxy var to time.

* [revert] reverted if call
  • Loading branch information
JensOgorek authored Jan 23, 2025
1 parent edbfeef commit dec2c01
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 7 deletions.
7 changes: 3 additions & 4 deletions main/modules/expander.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ void Expander::ping() {
const double last_message_age = this->get_property("last_message_age")->integer_value / 1000.0;
const double ping_interval = this->get_property("ping_interval")->number_value;
const double ping_timeout = this->get_property("ping_timeout")->number_value;
if (!this->ping_pending && !this->has_proxies_configured) {
if (!this->ping_pending) {
if (last_message_age >= ping_interval) {
this->serial->write_checked_line("core.print('__PONG__')");
this->ping_pending = true;
Expand Down Expand Up @@ -221,7 +221,6 @@ void Expander::send_proxy(const std::string module_name, const std::string modul
pos += csprintf(&buffer[pos], sizeof(buffer) - pos, "); ");
pos += csprintf(&buffer[pos], sizeof(buffer) - pos, "%s.broadcast()", module_name.c_str());
this->serial->write_checked_line(buffer, pos);
this->has_proxies_configured = true;
}

void Expander::send_property(const std::string proxy_name, const std::string property_name, const ConstExpression_ptr expression) {
Expand All @@ -231,9 +230,9 @@ void Expander::send_property(const std::string proxy_name, const std::string pro
this->serial->write_checked_line(buffer, pos);
}

void Expander::send_call(const std::string method_name, const std::vector<ConstExpression_ptr> arguments) {
void Expander::send_call(const std::string proxy_name, const std::string method_name, const std::vector<ConstExpression_ptr> arguments) {
static char buffer[256];
int pos = csprintf(buffer, sizeof(buffer), "%s.%s(", this->name.c_str(), method_name.c_str());
int pos = csprintf(buffer, sizeof(buffer), "%s.%s(", proxy_name.c_str(), method_name.c_str());
pos += write_arguments_to_buffer(arguments, &buffer[pos], sizeof(buffer) - pos);
pos += csprintf(&buffer[pos], sizeof(buffer) - pos, ")");
this->serial->write_checked_line(buffer, pos);
Expand Down
3 changes: 1 addition & 2 deletions main/modules/expander.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ class Expander : public Module {
unsigned long int last_message_millis = 0;
bool ping_pending = false;
unsigned long boot_start_time;
bool has_proxies_configured = false;

void deinstall();
void check_boot_progress();
Expand All @@ -36,6 +35,6 @@ class Expander : public Module {
void call(const std::string method_name, const std::vector<ConstExpression_ptr> arguments) override;
void send_proxy(const std::string module_name, const std::string module_type, const std::vector<ConstExpression_ptr> arguments);
void send_property(const std::string proxy_name, const std::string property_name, const ConstExpression_ptr expression);
void send_call(const std::string method_name, const std::vector<ConstExpression_ptr> arguments);
void send_call(const std::string proxy_name, const std::string method_name, const std::vector<ConstExpression_ptr> arguments);
static const std::map<std::string, Variable_ptr> get_defaults();
};
2 changes: 1 addition & 1 deletion main/modules/proxy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Proxy::Proxy(const std::string name,
}

void Proxy::call(const std::string method_name, const std::vector<ConstExpression_ptr> arguments) {
this->expander->send_call(method_name, arguments);
this->expander->send_call(this->name, method_name, arguments);
}

void Proxy::write_property(const std::string property_name, const ConstExpression_ptr expression, const bool from_expander) {
Expand Down

0 comments on commit dec2c01

Please sign in to comment.