Better port selection code

This commit is contained in:
Nathan Kunicki 2018-06-14 16:42:22 +01:00
parent 96d4332f49
commit 9f0a1e12c5
2 changed files with 64 additions and 37 deletions

View File

@ -96,6 +96,31 @@ class BoostHub extends Hub {
} }
_getPortForPortNumber (num) {
let port = null;
if (num === 1) {
port = this.ports["C"];
} else if (num === 2) {
port = this.ports["D"];
} else if (num === 55) {
port = this.ports["A"];
} else if (num === 56) {
port = this.ports["B"];
} else if (num === 57) {
port = this.ports["AB"];
} else if (num === 58) {
port = this.ports["TILT"];
} else {
return false;
}
return port;
}
_parseMessage (data) { _parseMessage (data) {
switch (data[2]) { switch (data[2]) {
@ -114,6 +139,10 @@ class BoostHub extends Hub {
this._parseSensorMessage(data); this._parseSensorMessage(data);
break; break;
} }
case 0x82:
{
this._parsePortAction(data);
}
} }
} }
@ -135,21 +164,9 @@ class BoostHub extends Hub {
_parsePortMessage (data) { _parsePortMessage (data) {
let port = null; let port = this._getPortForPortNumber(data[3]);
if (data[3] === 1) { if (!port) {
port = this.ports["C"];
} else if (data[3] === 2) {
port = this.ports["D"];
} else if (data[3] === 55) {
port = this.ports["A"];
} else if (data[3] === 56) {
port = this.ports["B"];
} else if (data[3] === 57) {
port = this.ports["AB"];
} else if (data[3] === 58) {
port = this.ports["TILT"];
} else {
return; return;
} }
@ -215,6 +232,19 @@ class BoostHub extends Hub {
} }
_parsePortAction (data) {
let port = this._getPortForPortNumber(data[3]);
if (!port) {
return;
}
// NK: Handle callbacks when port finished here.
}
_activatePortDevice (port, type, mode, format, callback) { _activatePortDevice (port, type, mode, format, callback) {
const characteristic = this._characteristics[Consts.BLE.Characteristics.Boost.ALL]; const characteristic = this._characteristics[Consts.BLE.Characteristics.Boost.ALL];
if (characteristic) { if (characteristic) {
@ -225,21 +255,9 @@ class BoostHub extends Hub {
_parseSensorMessage (data) { _parseSensorMessage (data) {
let port = null; let port = this._getPortForPortNumber(data[3]);
if (data[3] === 1) { if (!port) {
port = this.ports["C"];
} else if (data[3] === 2) {
port = this.ports["D"];
} else if (data[3] === 55) {
port = this.ports["A"];
} else if (data[3] === 56) {
port = this.ports["B"];
} else if (data[3] === 57) {
port = this.ports["AB"];
} else if (data[3] === 58) {
port = this.ports["TILT"];
} else {
return; return;
} }

View File

@ -77,18 +77,31 @@ class WeDo2Hub extends Hub {
} }
_parsePortMessage (data) { _getPortForPortNumber (num) {
let port = null; let port = null;
if (data[0] === 1) { if (num === 1) {
port = this.ports["A"]; port = this.ports["A"];
} else if (data[0] === 2) { } else if (num === 2) {
port = this.ports["B"]; port = this.ports["B"];
} else { } else {
return; return;
} }
return port;
}
_parsePortMessage (data) {
let port = this._getPortForPortNumber(data[0]);
if (!port) {
return;
}
port.connected = data[1] === 1 ? true : false; port.connected = data[1] === 1 ? true : false;
if (port.connected) { if (port.connected) {
@ -164,13 +177,9 @@ class WeDo2Hub extends Hub {
return; return;
} }
let port = null; let port = this._getPortForPortNumber(data[1]);
if (data[1] === 1) { if (!port) {
port = this.ports["A"];
} else if (data[1] === 2) {
port = this.ports["B"];
} else {
return; return;
} }