diff --git a/src/core/operations/ManchesterDecode.mjs b/src/core/operations/ManchesterDecode.mjs
index 9f167562..bfde046a 100644
--- a/src/core/operations/ManchesterDecode.mjs
+++ b/src/core/operations/ManchesterDecode.mjs
@@ -5,6 +5,7 @@
*/
import Operation from "../Operation.mjs";
+import OperationError from "../errors/OperationError.mjs";
/**
* Manchester decoding operation
@@ -19,10 +20,10 @@ class ManchesterDecode extends Operation {
this.name = "Manchester Decode";
this.module = "Encodings";
- this.description = "";
- this.infoURL = "";
- this.inputType = "binaryArray";
- this.outputType = "binaryArray";
+ this.description = "Decodes data that has been encoded using the Manchester Encoding (also known as phase encoding). A 01
is converted to 1
and a 10
is converted to 0
.
As every bit is encoded into two bits when using this encoding, inputs must be a multiple of 2 long.";
+ this.infoURL = "https://en.wikipedia.org/wiki/Manchester_code";
+ this.inputType = "string";
+ this.outputType = "string";
this.args = [];
}
@@ -32,7 +33,7 @@ class ManchesterDecode extends Operation {
* @returns {string}
*/
run(input, args) {
- const result = [];
+ const decoding = [];
if (input.length % 2 != 0){
throw new OperationError(`Length of an input should be a multiple of 2, the input is ${input.length} long.`);
@@ -43,16 +44,16 @@ class ManchesterDecode extends Operation {
const bit2 = input[i+1];
if (bit1 == 1 && bit2 == 0){
- result.push(0);
+ decoding.push(0);
} else if (bit1 == 0 && bit2 == 1){
- result.push(1);
+ decoding.push(1);
} else {
throw new OperationError(`Invalid input.`);
}
}
-
- return result;
+ const output = decoding.join("");
+ return output;
}
}
diff --git a/src/core/operations/ManchesterEncode.mjs b/src/core/operations/ManchesterEncode.mjs
index 406b235e..55dc62fe 100644
--- a/src/core/operations/ManchesterEncode.mjs
+++ b/src/core/operations/ManchesterEncode.mjs
@@ -19,10 +19,10 @@ class ManchesterEncode extends Operation {
this.name = "Manchester Encode";
this.module = "Encodings";
- this.description = "";
- this.infoURL = "";
- this.inputType = "binaryArray";
- this.outputType = "binaryArray";
+ this.description = "Performs the Manchester encoding on the data (also known as phase encoding). A 1
is converted to 01
and a 0
is converted to 10
. ";
+ this.infoURL = "https://en.wikipedia.org/wiki/Manchester_code";
+ this.inputType = "string";
+ this.outputType = "string";
this.args = [];
}
@@ -32,22 +32,22 @@ class ManchesterEncode extends Operation {
* @returns {string}
*/
run(input, args) {
- const result = [];
+ const encoding = [];
for (let i = 0; i < input.length; i ++){
const bit = input[i];
if (bit == 0){
- result.push(1);
- result.push(0);
+ encoding.push(1);
+ encoding.push(0);
} else {
- result.push(0);
- result.push(1);
+ encoding.push(0);
+ encoding.push(1);
}
}
-
- return result;
+ const output = encoding.join("");
+ return output;
}
}