From b25b7dd6271291ef40028a873d26190aed8c9bd0 Mon Sep 17 00:00:00 2001 From: ehudb9 <70571624+ehudb9@users.noreply.github.com> Date: Tue, 10 May 2022 22:26:33 +0300 Subject: [PATCH 1/9] create new node --- nodes/get-distance.html | 133 ++++++++++++++++++++++++++++++++++++++++ nodes/get-distance.js | 56 +++++++++++++++++ 2 files changed, 189 insertions(+) create mode 100644 nodes/get-distance.html create mode 100644 nodes/get-distance.js diff --git a/nodes/get-distance.html b/nodes/get-distance.html new file mode 100644 index 0000000..04bdb1b --- /dev/null +++ b/nodes/get-distance.html @@ -0,0 +1,133 @@ + + + + + + + \ No newline at end of file diff --git a/nodes/get-distance.js b/nodes/get-distance.js new file mode 100644 index 0000000..53bd38f --- /dev/null +++ b/nodes/get-distance.js @@ -0,0 +1,56 @@ +/* + SetMotorRegister node + * input: message (any). + * command: set a value to a motor register on configured robot. + * output: operation success/failure response. +*/ +module.exports = function(RED) { + function SetMotorRegisterNode(config) { + RED.nodes.createNode(this, config); + this.config = config; + + const DebugLogger = require('../logger/debug_logger'); + const butterClientProvider = require('../butter-client/butter-client-provider'); + + this.butterHttpClient = butterClientProvider.GetClient(this.config.robotIp); + this.debugLogger = new DebugLogger(this, this.config.debugMode); + + this.on('input', async function(msg) { + let robotIp = this.config.robotIp; + let motorName = this.config.motorName; + let registerName = this.config.registerName; + let value = this.config.value; + + // check if message has correct json payload - if yes run it instead. + if ( + msg.payload.robotIp != undefined && + msg.payload.motorName != undefined && + msg.payload.registerName != undefined && + msg.payload.value != undefined + ) { + robotIp = msg.payload.robotIp; + motorName = msg.payload.motorName; + registerName = msg.payload.registerName; + value = msg.payload.value; + } + + // sets the motor. + this.debugLogger.logIfDebugMode( + `setting the register ${registerName} of motor ${motorName} of robot ${robotIp} to ${value}` + ); + + try { + butter_response = await this.butterHttpClient.setMotorRegister(motorName, registerName, value); + + this.debugLogger.logIfDebugMode(`butter response is ${JSON.stringify(butter_response.data)}`); + // send operation result. + this.send({ payload: butter_response.data }); + } catch (error) { + this.debugLogger.logIfDebugMode(`failed to set register ${registerName}\n${error}`); + } + }); + } + + // register node type. + RED.nodes.registerType('set-motor-register', SetMotorRegisterNode); +}; From 63cb64a53eb8d99b27b0b2d50f0364789da356f9 Mon Sep 17 00:00:00 2001 From: ehudb9 <70571624+ehudb9@users.noreply.github.com> Date: Tue, 10 May 2022 22:49:12 +0300 Subject: [PATCH 2/9] set names --- nodes/get-distance.html | 10 +++++----- package.json | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/nodes/get-distance.html b/nodes/get-distance.html index 04bdb1b..343dcdb 100644 --- a/nodes/get-distance.html +++ b/nodes/get-distance.html @@ -1,12 +1,12 @@ -