@robotical/sensors-dashboard
Version:
A dashboard tool for depicting Marty data by Robotical
136 lines (131 loc) • 5.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getAllAddonsList;
require("core-js/modules/web.dom-collections.iterator.js");
require("core-js/modules/es.array.includes.js");
require("core-js/modules/es.string.includes.js");
var _Addon = _interopRequireDefault(require("../models/addons/Addon"));
var _AddonSub = _interopRequireDefault(require("../models/addons/AddonSub"));
var _addonNames = require("./types/addon-names");
var _excludedAddons = _interopRequireDefault(require("./constants/excluded-addons"));
var _servoNames = _interopRequireDefault(require("./constants/servo-names"));
var _renameValueLabel = _interopRequireDefault(require("./rename-value-label"));
var _whoAmINames = _interopRequireDefault(require("./constants/whoAmI-names"));
var _raft = require("@robotical/webapp-types/dist-types/src/types/raft");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/* Marty */
function getAddonsListMarty(addons) {
const addonsNormalised = [];
for (const addon of addons) {
const whoAmI = (0, _whoAmINames.default)(addon.whoAmI);
if (_excludedAddons.default.includes(whoAmI)) continue;
const subAddons = [];
for (const valKey in addon.vals) {
// @ts-ignore
const value = addon.vals[valKey];
// if (typeof value === "number") {
const addonInputName = (0, _renameValueLabel.default)(valKey, addon.name);
subAddons.push(new _AddonSub.default(addonInputName, value));
// }
}
addonsNormalised.push(new _Addon.default(whoAmI, subAddons));
}
return addonsNormalised;
}
function getServosListMarty(servos) {
const smartServos = servos.smartServos;
const posAddonSub = [];
const currAddonSub = [];
const addonsNormalised = [];
for (const servo of smartServos) {
posAddonSub.push(new _AddonSub.default(_servoNames.default[servo.id], servo.pos));
currAddonSub.push(new _AddonSub.default(_servoNames.default[servo.id], servo.current));
}
addonsNormalised.push(new _Addon.default(_addonNames.MOTOR_POSITION_NAME, posAddonSub));
addonsNormalised.push(new _Addon.default(_addonNames.MOTOR_CURRENT_NAME, currAddonSub));
return addonsNormalised;
}
function getAccelListMarty(accel) {
const addonSubs = [new _AddonSub.default(_addonNames.ACCELEROMETER_NAME_X, accel.x), new _AddonSub.default(_addonNames.ACCELEROMETER_NAME_Y, accel.y), new _AddonSub.default(_addonNames.ACCELEROMETER_NAME_Z, accel.z)];
return [new _Addon.default(_addonNames.ACCELEROMETER_NAME, addonSubs)];
}
function getAllAddonsListMarty(marty) {
const stateInfo = marty.raftStateInfo;
const addons = stateInfo.addOnInfo.addons;
const servos = stateInfo.smartServos;
const accel = stateInfo.imuData.accel;
let addons_ = [];
let servos_ = [];
let accel_ = [];
// let magneto_: Addon[] = [];
try {
addons_ = getAddonsListMarty(addons);
} catch (e) {
console.log(e);
}
try {
servos_ = getServosListMarty(servos);
} catch (e) {
console.log(e);
}
try {
accel_ = getAccelListMarty(accel);
} catch (e) {
console.log(e);
}
// try {
// magneto_ = getMagnetoList(magneto);
// } catch (e) {
// console.log(e);
// }
return addons_.concat(servos_).concat(accel_);
}
/* Cog */
function getAllAddonsListCog(cog) {
if (!cog.raftStateInfo) {
return [];
}
const light = cog.raftStateInfo.light;
const accel = cog.raftStateInfo.accelerometer;
let light_ = [];
let accel_ = [];
try {
light_ = getLightListCog(light);
} catch (e) {
console.log(e);
}
try {
accel_ = getAccelListCog(accel);
} catch (e) {
console.log(e);
}
try {
const cogState = cog.publishedDataAnalyser.cogState;
const cogStateList = getCogStateList(cogState);
return light_.concat(accel_).concat(cogStateList);
} catch (e) {
console.log(e);
}
return light_.concat(accel_);
}
function getCogStateList(cogState) {
const addonSubs = [new _AddonSub.default(_addonNames.COG_TILT_NAME, cogState.tilt), new _AddonSub.default(_addonNames.COG_MOVEMENT_TYPE_NAME, cogState.movementType), new _AddonSub.default(_addonNames.COG_BUTTON_CLICK_NAME, cogState.buttonClick), new _AddonSub.default(_addonNames.COG_OBJECT_SENSE_NAME, cogState.objectSense), new _AddonSub.default(_addonNames.COG_LIGHT_SENSE_NAME, cogState.lightSense)];
return [new _Addon.default(_addonNames.COG_STATE_NAME, addonSubs)];
}
function getAccelListCog(accel) {
const addonSubs = [new _AddonSub.default(_addonNames.ACCELEROMETER_NAME_X, accel.ax), new _AddonSub.default(_addonNames.ACCELEROMETER_NAME_Y, accel.ay), new _AddonSub.default(_addonNames.ACCELEROMETER_NAME_Z, accel.az)];
return [new _Addon.default(_addonNames.ACCELEROMETER_NAME, addonSubs)];
}
function getLightListCog(light) {
const addonSubs = [new _AddonSub.default(_addonNames.COG_LIGHT_AMB, light.amb0), new _AddonSub.default(_addonNames.COG_IR_LEFT, light.ir0), new _AddonSub.default(_addonNames.COG_IR_RIGHT, light.ir1), new _AddonSub.default(_addonNames.COG_IR_BUTTON, light.ir2)];
return [new _Addon.default(_addonNames.COG_LIGHT_NAME, addonSubs)];
}
function getAllAddonsList(raft) {
if (raft.type === _raft.RaftTypeE.COG) {
return getAllAddonsListCog(raft);
} else {
return getAllAddonsListMarty(raft);
}
}