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 @@
-