Skip to content

Commit

Permalink
rfb: commands to send the code
Browse files Browse the repository at this point in the history
  • Loading branch information
mcspr committed Jan 27, 2021
1 parent 10519cc commit 52a244d
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 0 deletions.
17 changes: 17 additions & 0 deletions code/espurna/rfbridge.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -954,6 +954,14 @@ void _rfbSendFromPayload(const char * payload) {

}

void rfbSend(const char* code) {
_rfbSendFromPayload(code);
}

void rfbSend(const String& code) {
_rfbSendFromPayload(code.c_str());
}

#if MQTT_SUPPORT

void _rfbMqttCallback(unsigned int type, const char * topic, char * payload) {
Expand Down Expand Up @@ -1067,6 +1075,15 @@ void _rfbApiSetup() {

void _rfbInitCommands() {

terminalRegisterCommand(F("RFB.SEND"), [](const terminal::CommandContext& ctx) {
if (ctx.argc == 2) {
rfbSend(ctx.argv[1]);
return;
}

terminalError(ctx, F("RFB.SEND <CODE>"));
});

#if RELAY_SUPPORT
terminalRegisterCommand(F("RFB.LEARN"), [](const terminal::CommandContext& ctx) {

Expand Down
3 changes: 3 additions & 0 deletions code/espurna/rfbridge.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ Copyright (C) 2016-2019 by Xose Pérez <xose dot perez at gmail dot com>

BrokerDeclare(RfbridgeBroker, void(unsigned char protocol, const char* code));

void rfbSend(const char* code);
void rfbSend(const String& code);

void rfbStatus(unsigned char id, bool status);
void rfbLearn(unsigned char id, bool status);

Expand Down
11 changes: 11 additions & 0 deletions code/espurna/rpnrules.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -404,6 +404,16 @@ decltype(_rfb_codes)::iterator _rpnRfbFindCode(unsigned char protocol, const Str
});
}

rpn_error _rpnRfbSend(rpn_context& ctxt) {
auto code = rpn_stack_pop(ctxt);
if (!code.isString()) {
return rpn_operator_error::InvalidArgument;
}

rfbSend(code.toString());
return rpn_operator_error::Ok;
}

rpn_error _rpnRfbPop(rpn_context& ctxt) {
auto code = rpn_stack_pop(ctxt);
auto proto = rpn_stack_pop(ctxt);
Expand Down Expand Up @@ -682,6 +692,7 @@ void _rpnInit() {
#endif

#if RFB_SUPPORT
rpn_operator_set(_rpn_ctxt, "rfb_send", 1, _rpnRfbSend);
rpn_operator_set(_rpn_ctxt, "rfb_pop", 2, _rpnRfbPop);
rpn_operator_set(_rpn_ctxt, "rfb_info", 2, _rpnRfbInfo);
rpn_operator_set(_rpn_ctxt, "rfb_sequence", 4, _rpnRfbSequence);
Expand Down

0 comments on commit 52a244d

Please sign in to comment.