Skip to content

Commit dec2c01

Browse files
authored
Proxy call with wrong name and ping conditions (#124)
* [update] use correct name for proxy calls * [update] switch from proxy var to time. * [revert] reverted if call
1 parent edbfeef commit dec2c01

File tree

3 files changed

+5
-7
lines changed

3 files changed

+5
-7
lines changed

main/modules/expander.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ void Expander::ping() {
8282
const double last_message_age = this->get_property("last_message_age")->integer_value / 1000.0;
8383
const double ping_interval = this->get_property("ping_interval")->number_value;
8484
const double ping_timeout = this->get_property("ping_timeout")->number_value;
85-
if (!this->ping_pending && !this->has_proxies_configured) {
85+
if (!this->ping_pending) {
8686
if (last_message_age >= ping_interval) {
8787
this->serial->write_checked_line("core.print('__PONG__')");
8888
this->ping_pending = true;
@@ -221,7 +221,6 @@ void Expander::send_proxy(const std::string module_name, const std::string modul
221221
pos += csprintf(&buffer[pos], sizeof(buffer) - pos, "); ");
222222
pos += csprintf(&buffer[pos], sizeof(buffer) - pos, "%s.broadcast()", module_name.c_str());
223223
this->serial->write_checked_line(buffer, pos);
224-
this->has_proxies_configured = true;
225224
}
226225

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

234-
void Expander::send_call(const std::string method_name, const std::vector<ConstExpression_ptr> arguments) {
233+
void Expander::send_call(const std::string proxy_name, const std::string method_name, const std::vector<ConstExpression_ptr> arguments) {
235234
static char buffer[256];
236-
int pos = csprintf(buffer, sizeof(buffer), "%s.%s(", this->name.c_str(), method_name.c_str());
235+
int pos = csprintf(buffer, sizeof(buffer), "%s.%s(", proxy_name.c_str(), method_name.c_str());
237236
pos += write_arguments_to_buffer(arguments, &buffer[pos], sizeof(buffer) - pos);
238237
pos += csprintf(&buffer[pos], sizeof(buffer) - pos, ")");
239238
this->serial->write_checked_line(buffer, pos);

main/modules/expander.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ class Expander : public Module {
1212
unsigned long int last_message_millis = 0;
1313
bool ping_pending = false;
1414
unsigned long boot_start_time;
15-
bool has_proxies_configured = false;
1615

1716
void deinstall();
1817
void check_boot_progress();
@@ -36,6 +35,6 @@ class Expander : public Module {
3635
void call(const std::string method_name, const std::vector<ConstExpression_ptr> arguments) override;
3736
void send_proxy(const std::string module_name, const std::string module_type, const std::vector<ConstExpression_ptr> arguments);
3837
void send_property(const std::string proxy_name, const std::string property_name, const ConstExpression_ptr expression);
39-
void send_call(const std::string method_name, const std::vector<ConstExpression_ptr> arguments);
38+
void send_call(const std::string proxy_name, const std::string method_name, const std::vector<ConstExpression_ptr> arguments);
4039
static const std::map<std::string, Variable_ptr> get_defaults();
4140
};

main/modules/proxy.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Proxy::Proxy(const std::string name,
2222
}
2323

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

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

0 commit comments

Comments
 (0)