took out the old exclusion stuff from the component types, moved the excluded nodes to the component settings rather than preferences, commented out some deprecated stuff relating to the old measurements
This commit is contained in:
parent
885d308f3b
commit
e586421ffa
39 changed files with 147 additions and 243 deletions
|
|
@ -11,7 +11,7 @@ import {
|
||||||
FormControl,
|
FormControl,
|
||||||
FormControlLabel,
|
FormControlLabel,
|
||||||
FormGroup,
|
FormGroup,
|
||||||
FormLabel,
|
//FormLabel,
|
||||||
Grid2 as Grid,
|
Grid2 as Grid,
|
||||||
Theme,
|
Theme,
|
||||||
Typography
|
Typography
|
||||||
|
|
@ -20,21 +20,21 @@ import { lightGreen } from "@mui/material/colors";
|
||||||
import { ExpandMore } from "@mui/icons-material";
|
import { ExpandMore } from "@mui/icons-material";
|
||||||
import MeasurementsChart from "charts/MeasurementsChart";
|
import MeasurementsChart from "charts/MeasurementsChart";
|
||||||
//import { GraphOrientation } from "common/Graph";
|
//import { GraphOrientation } from "common/Graph";
|
||||||
import RangeInput, { Range } from "common/RangeInput";
|
//import RangeInput, { Range } from "common/RangeInput";
|
||||||
import { GetDefaultDateRange } from "common/time/DateRange";
|
import { GetDefaultDateRange } from "common/time/DateRange";
|
||||||
import DateSelect from "common/time/DateSelect";
|
//import DateSelect from "common/time/DateSelect";
|
||||||
import MeasurementSummary from "component/MeasurementSummary";
|
//import MeasurementSummary from "component/MeasurementSummary";
|
||||||
import { grainName } from "grain";
|
import { grainName } from "grain";
|
||||||
import { useMobile, usePrevious } from "hooks";
|
import { useMobile } from "hooks";
|
||||||
import { cloneDeep } from "lodash";
|
import { cloneDeep } from "lodash";
|
||||||
import { Component, Interaction } from "models";
|
import { Component, Interaction } from "models";
|
||||||
import { UnitMeasurement } from "models/UnitMeasurement";
|
import { UnitMeasurement } from "models/UnitMeasurement";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import { deviceComponentID } from "pbHelpers/Component";
|
//import { deviceComponentID } from "pbHelpers/Component";
|
||||||
import {
|
import {
|
||||||
extension,
|
extension,
|
||||||
//getComponentVisual,
|
//getComponentVisual,
|
||||||
GetNumNodes,
|
//GetNumNodes,
|
||||||
GetNumNodesFromUnitMeasurement,
|
GetNumNodesFromUnitMeasurement,
|
||||||
GraphFilters
|
GraphFilters
|
||||||
} from "pbHelpers/ComponentType";
|
} from "pbHelpers/ComponentType";
|
||||||
|
|
@ -43,9 +43,9 @@ import { findInteractionsAsSource } from "pbHelpers/Interaction";
|
||||||
import { describeMeasurement } from "pbHelpers/MeasurementDescriber";
|
import { describeMeasurement } from "pbHelpers/MeasurementDescriber";
|
||||||
import { pond } from "protobuf-ts/pond";
|
import { pond } from "protobuf-ts/pond";
|
||||||
import { quack } from "protobuf-ts/quack";
|
import { quack } from "protobuf-ts/quack";
|
||||||
import { useGlobalState } from "providers";
|
//import { useGlobalState } from "providers";
|
||||||
import React, { useEffect, useState } from "react";
|
import React, { useState } from "react";
|
||||||
import { or } from "utils/types";
|
//import { or } from "utils/types";
|
||||||
import UnitMeasurementSummary from "./UnitMeasurementSummary";
|
import UnitMeasurementSummary from "./UnitMeasurementSummary";
|
||||||
import { makeStyles } from "@mui/styles";
|
import { makeStyles } from "@mui/styles";
|
||||||
|
|
||||||
|
|
@ -82,34 +82,34 @@ interface Props {
|
||||||
component: Component;
|
component: Component;
|
||||||
interactions: Interaction[];
|
interactions: Interaction[];
|
||||||
sampling: boolean;
|
sampling: boolean;
|
||||||
samples?: pond.Measurement[]; //deprecated: old measurement structure
|
//samples?: pond.Measurement[]; //deprecated: old measurement structure
|
||||||
unitMeasurements?: UnitMeasurement[];
|
unitMeasurements?: UnitMeasurement[];
|
||||||
sampleLimit?: number;
|
sampleLimit?: number;
|
||||||
updateDate?: (startDate: any, endDate: any, live?: boolean) => void;
|
updateDate?: (startDate: any, endDate: any, live?: boolean) => void;
|
||||||
allowLive?: boolean;
|
allowLive?: boolean;
|
||||||
recentMeasurement?: pond.Measurement;
|
//recentMeasurement?: pond.Measurement;
|
||||||
recentUnitMeasurement?: UnitMeasurement[];
|
recentUnitMeasurement?: UnitMeasurement[];
|
||||||
deviceComponentPreferences?: pond.DeviceComponentPreferences;
|
deviceComponentPreferences?: pond.DeviceComponentPreferences;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setComponentGraphRanges(device: number | string, component: string, ranges: Range[]) {
|
// function setComponentGraphRanges(device: number | string, component: string, ranges: Range[]) {
|
||||||
const key: string = "graphRanges-" + deviceComponentID(device, component);
|
// const key: string = "graphRanges-" + deviceComponentID(device, component);
|
||||||
localStorage.setItem(key, JSON.stringify(or(ranges, [])));
|
// localStorage.setItem(key, JSON.stringify(or(ranges, [])));
|
||||||
}
|
// }
|
||||||
|
|
||||||
function getComponentGraphRanges(device: number | string, component: string): Range[] {
|
// function getComponentGraphRanges(device: number | string, component: string): Range[] {
|
||||||
const key: string = "graphRanges-" + deviceComponentID(device, component);
|
// const key: string = "graphRanges-" + deviceComponentID(device, component);
|
||||||
return JSON.parse(or(localStorage.getItem(key), "[]"));
|
// return JSON.parse(or(localStorage.getItem(key), "[]"));
|
||||||
}
|
// }
|
||||||
|
|
||||||
export default function ComponentChart(props: Props) {
|
export default function ComponentChart(props: Props) {
|
||||||
const { component, deviceComponentPreferences } = props;
|
//const { component, deviceComponentPreferences } = props;
|
||||||
const classes = useStyles();
|
const classes = useStyles();
|
||||||
const isMobile = useMobile();
|
const isMobile = useMobile();
|
||||||
const { deviceKey, componentKey } = props;
|
// const { deviceKey, componentKey } = props;
|
||||||
const prevDevice = usePrevious(props.deviceKey);
|
// const prevDevice = usePrevious(props.deviceKey);
|
||||||
const prevComponentKey = usePrevious(props.componentKey);
|
// const prevComponentKey = usePrevious(props.componentKey);
|
||||||
const prevComponent = usePrevious(props.component);
|
// const prevComponent = usePrevious(props.component);
|
||||||
const defaultDateRange = GetDefaultDateRange();
|
const defaultDateRange = GetDefaultDateRange();
|
||||||
const [startDate, setStartDate] = useState(defaultDateRange.start);
|
const [startDate, setStartDate] = useState(defaultDateRange.start);
|
||||||
const [endDate, setEndDate] = useState(defaultDateRange.end);
|
const [endDate, setEndDate] = useState(defaultDateRange.end);
|
||||||
|
|
@ -127,45 +127,45 @@ export default function ComponentChart(props: Props) {
|
||||||
const [showOriginal, setShowOriginal] = useState(true);
|
const [showOriginal, setShowOriginal] = useState(true);
|
||||||
const [showAveraged, setShowAveraged] = useState(false);
|
const [showAveraged, setShowAveraged] = useState(false);
|
||||||
|
|
||||||
useEffect(() => {
|
// useEffect(() => {
|
||||||
if (prevComponent !== props.component) {
|
// if (prevComponent !== props.component) {
|
||||||
let updatedFilters = cloneDeep(graphFilters);
|
// let updatedFilters = cloneDeep(graphFilters);
|
||||||
let filledTo = props.component.settings.grainFilledTo;
|
// let filledTo = props.component.settings.grainFilledTo;
|
||||||
updatedFilters.grainFilledTo = filledTo > 0 ? filledTo : undefined;
|
// updatedFilters.grainFilledTo = filledTo > 0 ? filledTo : undefined;
|
||||||
updatedFilters.grainType = props.component.settings.grainType;
|
// updatedFilters.grainType = props.component.settings.grainType;
|
||||||
setGraphFilters(updatedFilters);
|
// setGraphFilters(updatedFilters);
|
||||||
}
|
// }
|
||||||
}, [prevComponent, graphFilters, props.component]);
|
// }, [prevComponent, graphFilters, props.component]);
|
||||||
|
|
||||||
useEffect(() => {
|
// useEffect(() => {
|
||||||
if (prevDevice !== deviceKey || prevComponentKey !== componentKey) {
|
// if (prevDevice !== deviceKey || prevComponentKey !== componentKey) {
|
||||||
const ranges = getComponentGraphRanges(deviceKey, componentKey);
|
// const ranges = getComponentGraphRanges(deviceKey, componentKey);
|
||||||
let updatedFilters = cloneDeep(graphFilters);
|
// let updatedFilters = cloneDeep(graphFilters);
|
||||||
updatedFilters.ranges = ranges;
|
// updatedFilters.ranges = ranges;
|
||||||
setGraphFilters(updatedFilters);
|
// setGraphFilters(updatedFilters);
|
||||||
}
|
// }
|
||||||
}, [deviceKey, prevDevice, prevComponentKey, componentKey, graphFilters]);
|
// }, [deviceKey, prevDevice, prevComponentKey, componentKey, graphFilters]);
|
||||||
|
|
||||||
//use the excluded nodes to set the default for the graph filters
|
//use the excluded nodes to set the default for the graph filters
|
||||||
useEffect(() => {
|
// useEffect(() => {
|
||||||
let excludedNodes = component.settings.excludedNodes;
|
// let excludedNodes = component.settings.excludedNodes;
|
||||||
if (excludedNodes === undefined || excludedNodes.length === 0) return;
|
// if (excludedNodes === undefined || excludedNodes.length === 0) return;
|
||||||
let updatedFilters = cloneDeep(graphFilters);
|
// let updatedFilters = cloneDeep(graphFilters);
|
||||||
if (excludedNodes && component.lastMeasurement[0]) {
|
// if (excludedNodes && component.lastMeasurement[0]) {
|
||||||
let includedNodes: string[] = [];
|
// let includedNodes: string[] = [];
|
||||||
let numNodes = GetNumNodesFromUnitMeasurement(
|
// let numNodes = GetNumNodesFromUnitMeasurement(
|
||||||
UnitMeasurement.any(component.lastMeasurement[0])
|
// UnitMeasurement.any(component.lastMeasurement[0])
|
||||||
);
|
// );
|
||||||
|
|
||||||
for (let i = 0; i < numNodes; i++) {
|
// for (let i = 0; i < numNodes; i++) {
|
||||||
if (!excludedNodes.includes(i)) {
|
// if (!excludedNodes.includes(i)) {
|
||||||
includedNodes.push(i.toString());
|
// includedNodes.push(i.toString());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
updatedFilters.selectedNodes = includedNodes;
|
// updatedFilters.selectedNodes = includedNodes;
|
||||||
}
|
// }
|
||||||
setGraphFilters(updatedFilters);
|
// setGraphFilters(updatedFilters);
|
||||||
}, [component]); //eslint-disable-line react-hooks/exhaustive-deps
|
// }, [component]); //eslint-disable-line react-hooks/exhaustive-deps
|
||||||
|
|
||||||
const updateDateRange = (newStartDate: any, newEndDate: any, live: boolean) => {
|
const updateDateRange = (newStartDate: any, newEndDate: any, live: boolean) => {
|
||||||
setStartDate(newStartDate);
|
setStartDate(newStartDate);
|
||||||
|
|
@ -176,14 +176,14 @@ export default function ComponentChart(props: Props) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const changeRange = (index: number, range: Range) => {
|
// const changeRange = (index: number, range: Range) => {
|
||||||
let updatedFilters = cloneDeep(graphFilters);
|
// let updatedFilters = cloneDeep(graphFilters);
|
||||||
let ranges = updatedFilters.ranges ? updatedFilters.ranges : [];
|
// let ranges = updatedFilters.ranges ? updatedFilters.ranges : [];
|
||||||
ranges[index] = range;
|
// ranges[index] = range;
|
||||||
updatedFilters.ranges = ranges;
|
// updatedFilters.ranges = ranges;
|
||||||
setComponentGraphRanges(deviceKey, componentKey, ranges);
|
// setComponentGraphRanges(deviceKey, componentKey, ranges);
|
||||||
setGraphFilters(updatedFilters);
|
// setGraphFilters(updatedFilters);
|
||||||
};
|
// };
|
||||||
|
|
||||||
const handleGrainCableControlsChange = (name: string) => (event: any) => {
|
const handleGrainCableControlsChange = (name: string) => (event: any) => {
|
||||||
let updatedFilters = cloneDeep(graphFilters);
|
let updatedFilters = cloneDeep(graphFilters);
|
||||||
|
|
@ -211,24 +211,22 @@ export default function ComponentChart(props: Props) {
|
||||||
};
|
};
|
||||||
|
|
||||||
const cableControls = () => {
|
const cableControls = () => {
|
||||||
const { component, samples } = props;
|
const { recentUnitMeasurement } = props;
|
||||||
|
//const excludedNodes = component.settings.excludedNodes ?? [];
|
||||||
const selectedNodes = graphFilters.selectedNodes ? graphFilters.selectedNodes : ["all"];
|
const selectedNodes = graphFilters.selectedNodes ? graphFilters.selectedNodes : ["all"];
|
||||||
const lastMeasurement = component.status.lastMeasurement;
|
|
||||||
const excludedNodes = component.settings.excludedNodes ?? [];
|
|
||||||
|
|
||||||
let numNodes = 0;
|
let numNodes = 0;
|
||||||
if (samples) {
|
// if (samples) {
|
||||||
numNodes = GetNumNodes(
|
// numNodes = GetNumNodes(
|
||||||
component.settings.type,
|
// component.settings.type,
|
||||||
lastMeasurement && lastMeasurement.measurement
|
// recentUnitMeasurement
|
||||||
);
|
// );
|
||||||
} else {
|
// } else {
|
||||||
if (component.lastMeasurement && component.lastMeasurement[0]) {
|
if (recentUnitMeasurement && recentUnitMeasurement.length > 0) {
|
||||||
numNodes = GetNumNodesFromUnitMeasurement(
|
numNodes = GetNumNodesFromUnitMeasurement(
|
||||||
UnitMeasurement.any(component.lastMeasurement[0])
|
recentUnitMeasurement[0]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
//}
|
||||||
|
|
||||||
if (numNodes <= 1) {
|
if (numNodes <= 1) {
|
||||||
return null;
|
return null;
|
||||||
|
|
@ -302,17 +300,17 @@ export default function ComponentChart(props: Props) {
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO-DRAGER: this mey not be necessary to do anymore with them being split up
|
//TODO-DRAGER: this mey not be necessary to do anymore with them being split up
|
||||||
if (component.type() === quack.ComponentType.COMPONENT_TYPE_DRAGER_GAS_DONGLE) {
|
// if (component.type() === quack.ComponentType.COMPONENT_TYPE_DRAGER_GAS_DONGLE) {
|
||||||
let describer = describeMeasurement(
|
// let describer = describeMeasurement(
|
||||||
component.lastMeasurement[0].type,
|
// component.lastMeasurement[0].type,
|
||||||
component.type(),
|
// component.type(),
|
||||||
component.subType()
|
// component.subType()
|
||||||
);
|
// );
|
||||||
let details = describer.nodeDetails();
|
// let details = describer.nodeDetails();
|
||||||
if (details) {
|
// if (details) {
|
||||||
nodeLabel = details.labels[i - 1];
|
// nodeLabel = details.labels[i - 1];
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
grainCableControls.push(
|
grainCableControls.push(
|
||||||
<Grid size={{ xs: 6 }} key={"node-" + (i - 1).toString()}>
|
<Grid size={{ xs: 6 }} key={"node-" + (i - 1).toString()}>
|
||||||
|
|
@ -700,15 +698,14 @@ export default function ComponentChart(props: Props) {
|
||||||
const {
|
const {
|
||||||
component,
|
component,
|
||||||
sampling,
|
sampling,
|
||||||
samples,
|
recentUnitMeasurement
|
||||||
recentMeasurement,
|
|
||||||
recentUnitMeasurement,
|
|
||||||
deviceComponentPreferences
|
|
||||||
} = props;
|
} = props;
|
||||||
const ext = extension(component.settings.type, component.settings.subtype);
|
//const ext = extension(component.settings.type, component.settings.subtype);
|
||||||
const ranges = graphFilters.ranges ? graphFilters.ranges : [];
|
//const ranges = graphFilters.ranges ? graphFilters.ranges : [];
|
||||||
let convertedLastMeasurement;
|
let convertedLastMeasurement;
|
||||||
|
|
||||||
|
//console.log(recentUnitMeasurement)
|
||||||
|
|
||||||
if (recentUnitMeasurement && recentUnitMeasurement.length > 0) {
|
if (recentUnitMeasurement && recentUnitMeasurement.length > 0) {
|
||||||
let measurements = recentUnitMeasurement;
|
let measurements = recentUnitMeasurement;
|
||||||
convertedLastMeasurement = UnitMeasurement.convertLastMeasurement(measurements);
|
convertedLastMeasurement = UnitMeasurement.convertLastMeasurement(measurements);
|
||||||
|
|
@ -717,18 +714,17 @@ export default function ComponentChart(props: Props) {
|
||||||
<Grid container spacing={2} direction={isMobile ? "column" : "row-reverse"}>
|
<Grid container spacing={2} direction={isMobile ? "column" : "row-reverse"}>
|
||||||
{isMobile && (
|
{isMobile && (
|
||||||
<Grid className={classes.borderedContainer}>
|
<Grid className={classes.borderedContainer}>
|
||||||
{samples ? (
|
{/* {samples ? (
|
||||||
<MeasurementSummary component={component} reading={recentMeasurement} />
|
<MeasurementSummary component={component} reading={recentMeasurement} />
|
||||||
) : (
|
) : ( */}
|
||||||
<Card raised className={classes.container}>
|
<Card raised className={classes.container}>
|
||||||
<Typography style={{ fontWeight: 650 }}>Latest Measurements:</Typography>
|
<Typography style={{ fontWeight: 650 }}>Latest Measurements:</Typography>
|
||||||
<UnitMeasurementSummary
|
<UnitMeasurementSummary
|
||||||
component={component}
|
component={component}
|
||||||
reading={convertedLastMeasurement}
|
reading={convertedLastMeasurement}
|
||||||
excludedNodes={component.settings.excludedNodes}
|
|
||||||
/>
|
/>
|
||||||
</Card>
|
</Card>
|
||||||
)}
|
{/* )} */}
|
||||||
</Grid>
|
</Grid>
|
||||||
)}
|
)}
|
||||||
<Grid
|
<Grid
|
||||||
|
|
@ -755,9 +751,9 @@ export default function ComponentChart(props: Props) {
|
||||||
</Grid>
|
</Grid>
|
||||||
{/* )} */}
|
{/* )} */}
|
||||||
<Grid size={{ xs: 12 }} className={classes.borderedContainer}>
|
<Grid size={{ xs: 12 }} className={classes.borderedContainer}>
|
||||||
{samples ? (
|
{/* {samples ? (
|
||||||
<MeasurementSummary component={component} reading={recentMeasurement} />
|
<MeasurementSummary component={component} reading={recentMeasurement} />
|
||||||
) : (
|
) : ( */}
|
||||||
<Card raised style={{ padding: 25, marginBottom: 20 }}>
|
<Card raised style={{ padding: 25, marginBottom: 20 }}>
|
||||||
<Typography style={{ fontWeight: 650 }}>Latest Measurements:</Typography>
|
<Typography style={{ fontWeight: 650 }}>Latest Measurements:</Typography>
|
||||||
<UnitMeasurementSummary
|
<UnitMeasurementSummary
|
||||||
|
|
@ -765,10 +761,9 @@ export default function ComponentChart(props: Props) {
|
||||||
reading={convertedLastMeasurement}
|
reading={convertedLastMeasurement}
|
||||||
largeText
|
largeText
|
||||||
boldMeasurements
|
boldMeasurements
|
||||||
excludedNodes={component.settings.excludedNodes}
|
|
||||||
/>
|
/>
|
||||||
</Card>
|
</Card>
|
||||||
)}
|
{/* )} */}
|
||||||
</Grid>
|
</Grid>
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
)}
|
)}
|
||||||
|
|
@ -793,7 +788,7 @@ export default function ComponentChart(props: Props) {
|
||||||
</Grid>
|
</Grid>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{!sampling &&
|
{/* {!sampling &&
|
||||||
ext.measurements.map((m, i) => {
|
ext.measurements.map((m, i) => {
|
||||||
const range = ranges[i] ? ranges[i] : ({} as Range);
|
const range = ranges[i] ? ranges[i] : ({} as Range);
|
||||||
if (m.measurementType === quack.MeasurementType.MEASUREMENT_TYPE_BOOLEAN) {
|
if (m.measurementType === quack.MeasurementType.MEASUREMENT_TYPE_BOOLEAN) {
|
||||||
|
|
@ -811,7 +806,7 @@ export default function ComponentChart(props: Props) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
})}
|
})} */}
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@ interface Props {
|
||||||
onlyRecent?: boolean;
|
onlyRecent?: boolean;
|
||||||
largeText?: boolean;
|
largeText?: boolean;
|
||||||
boldMeasurements?: boolean;
|
boldMeasurements?: boolean;
|
||||||
excludedNodes?: number[];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const useStyles = makeStyles((theme: Theme) => {
|
const useStyles = makeStyles((theme: Theme) => {
|
||||||
|
|
@ -61,8 +60,7 @@ export default function UnitMeasurementSummary(props: Props) {
|
||||||
dense,
|
dense,
|
||||||
onlyRecent,
|
onlyRecent,
|
||||||
largeText,
|
largeText,
|
||||||
boldMeasurements,
|
boldMeasurements
|
||||||
excludedNodes
|
|
||||||
} = props;
|
} = props;
|
||||||
const [summaries, setSummaries] = useState<Summary[]>([]);
|
const [summaries, setSummaries] = useState<Summary[]>([]);
|
||||||
const [timestamp, setTimestamp] = useState("");
|
const [timestamp, setTimestamp] = useState("");
|
||||||
|
|
@ -80,12 +78,11 @@ export default function UnitMeasurementSummary(props: Props) {
|
||||||
setTimestamp(reading.timestamp);
|
setTimestamp(reading.timestamp);
|
||||||
setSummaries(
|
setSummaries(
|
||||||
extension(component.type(), component.subType()).unitMeasurementSummary(
|
extension(component.type(), component.subType()).unitMeasurementSummary(
|
||||||
reading,
|
reading
|
||||||
excludedNodes
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}, [component, reading, excludedNodes]); // eslint-disable-line react-hooks/exhaustive-deps
|
}, [component, reading]); // eslint-disable-line react-hooks/exhaustive-deps
|
||||||
|
|
||||||
const noSummary = () => {
|
const noSummary = () => {
|
||||||
return (
|
return (
|
||||||
|
|
|
||||||
|
|
@ -247,8 +247,8 @@ export default function DeviceComponent() {
|
||||||
if (rComponent?.status.lastMeasurement) {
|
if (rComponent?.status.lastMeasurement) {
|
||||||
setRM(rComponent.status.lastMeasurement);
|
setRM(rComponent.status.lastMeasurement);
|
||||||
}
|
}
|
||||||
if (rComponent?.lastMeasurement) {
|
if (rComponent?.status.measurement) {
|
||||||
let measurements = rComponent.lastMeasurement.map(um =>
|
let measurements = rComponent.status.measurement.map(um =>
|
||||||
UnitMeasurement.any(um, user)
|
UnitMeasurement.any(um, user)
|
||||||
);
|
);
|
||||||
setRecentUnitMeasurement(measurements);
|
setRecentUnitMeasurement(measurements);
|
||||||
|
|
@ -487,7 +487,6 @@ export default function DeviceComponent() {
|
||||||
component={component}
|
component={component}
|
||||||
reading={row}
|
reading={row}
|
||||||
tableCell={true}
|
tableCell={true}
|
||||||
excludedNodes={component.settings.excludedNodes}
|
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -148,8 +148,7 @@ export interface ComponentTypeExtension {
|
||||||
measurements: Array<ComponentMeasurement>;
|
measurements: Array<ComponentMeasurement>;
|
||||||
measurementSummary: Function; //Deprecated: this summary used the old measurement structure
|
measurementSummary: Function; //Deprecated: this summary used the old measurement structure
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement
|
||||||
excludedNodes?: number[]
|
|
||||||
) => Summary[];
|
) => Summary[];
|
||||||
minMeasurementPeriodMs: number;
|
minMeasurementPeriodMs: number;
|
||||||
minCycleTimeMs?: number;
|
minCycleTimeMs?: number;
|
||||||
|
|
@ -229,20 +228,11 @@ export function simpleSummaries(
|
||||||
export function unitMeasurementSummary(
|
export function unitMeasurementSummary(
|
||||||
convertedMeasurement: MeasurementsFor,
|
convertedMeasurement: MeasurementsFor,
|
||||||
describer: MeasurementDescriber,
|
describer: MeasurementDescriber,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary {
|
): Summary {
|
||||||
let vals: string[] = [];
|
let vals: string[] = [];
|
||||||
convertedMeasurement.values.forEach(val => {
|
convertedMeasurement.values.forEach(val => {
|
||||||
vals.push(val + describer.unit());
|
vals.push(val + describer.unit());
|
||||||
});
|
});
|
||||||
//if nodes are excluded splice them out of the val array so they are not displayed in the summary
|
|
||||||
if (excludedNodes) {
|
|
||||||
vals.forEach((_val, i) => {
|
|
||||||
if (excludedNodes.includes(i)) {
|
|
||||||
vals.splice(i, 1);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
let v = vals.join(", ");
|
let v = vals.join(", ");
|
||||||
if (describer.enumerations().length > 0) {
|
if (describer.enumerations().length > 0) {
|
||||||
v = describer.enumerations()[parseFloat(vals[0])];
|
v = describer.enumerations()[parseFloat(vals[0])];
|
||||||
|
|
@ -259,19 +249,12 @@ export function unitMeasurementSummary(
|
||||||
export function unitMeasurementSummaries(
|
export function unitMeasurementSummaries(
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
compType: quack.ComponentType,
|
compType: quack.ComponentType,
|
||||||
subtype?: number,
|
subtype?: number
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] {
|
): Summary[] {
|
||||||
let summaries: Summary[] = [];
|
let summaries: Summary[] = [];
|
||||||
measurements.measurementsFor.forEach(measurement => {
|
measurements.measurementsFor.forEach(measurement => {
|
||||||
let describer = describeMeasurement(measurement.type, compType, subtype);
|
let describer = describeMeasurement(measurement.type, compType, subtype);
|
||||||
|
summaries.push(unitMeasurementSummary(measurement, describer));
|
||||||
//TODO: implement the summary for node splitting when we make a component that uses it, drager was changed to use subtypes rather than nodes
|
|
||||||
//let details = describer.nodeDetails()
|
|
||||||
// if(details !== undefined){
|
|
||||||
// } else {
|
|
||||||
summaries.push(unitMeasurementSummary(measurement, describer, excludedNodes));
|
|
||||||
//}
|
|
||||||
});
|
});
|
||||||
return summaries;
|
return summaries;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -49,13 +49,11 @@ export function AirQuality(subtype: number = 0): ComponentTypeExtension {
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_AIR_QUALITY,
|
quack.ComponentType.COMPONENT_TYPE_AIR_QUALITY,
|
||||||
subtype,
|
subtype,
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -42,13 +42,11 @@ export function Airflow(subtype: number = 0): ComponentTypeExtension {
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_AIRFLOW,
|
quack.ComponentType.COMPONENT_TYPE_AIRFLOW,
|
||||||
subtype,
|
subtype
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -79,13 +79,11 @@ export function AnalogInput(subtype: number = 0): ComponentTypeExtension {
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_ANALOG_INPUT,
|
quack.ComponentType.COMPONENT_TYPE_ANALOG_INPUT,
|
||||||
subtype,
|
subtype,
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -50,14 +50,12 @@ export function CO2(subtype: number = 0): ComponentTypeExtension {
|
||||||
return simpleSummaries(measurement, co2);
|
return simpleSummaries(measurement, co2);
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_CO2,
|
quack.ComponentType.COMPONENT_TYPE_CO2,
|
||||||
subtype,
|
subtype
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -37,14 +37,12 @@ export function Calcium(subtype: number = 0): ComponentTypeExtension {
|
||||||
return simpleSummaries(measurement, calcium);
|
return simpleSummaries(measurement, calcium);
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_CALCIUM,
|
quack.ComponentType.COMPONENT_TYPE_CALCIUM,
|
||||||
subtype,
|
subtype
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -52,14 +52,12 @@ export function Capacitance(subtype: number = 0): ComponentTypeExtension {
|
||||||
return simpleSummaries(measurement, capacitance);
|
return simpleSummaries(measurement, capacitance);
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_CAPACITANCE,
|
quack.ComponentType.COMPONENT_TYPE_CAPACITANCE,
|
||||||
subtype,
|
subtype,
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -148,14 +148,12 @@ export function CapacitorCable(subtype: number = 0): ComponentTypeExtension {
|
||||||
return Promise.resolve(summary);
|
return Promise.resolve(summary);
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_CAPACITOR_CABLE,
|
quack.ComponentType.COMPONENT_TYPE_CAPACITOR_CABLE,
|
||||||
subtype,
|
subtype
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -37,14 +37,12 @@ export function Conductivity(subtype: number = 0): ComponentTypeExtension {
|
||||||
return simpleSummaries(measurement, conductivity);
|
return simpleSummaries(measurement, conductivity);
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_CONDUCTIVITY,
|
quack.ComponentType.COMPONENT_TYPE_CONDUCTIVITY,
|
||||||
subtype,
|
subtype
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -77,14 +77,12 @@ export function DHT(subtype: number = 0): ComponentTypeExtension {
|
||||||
return simpleSummaries(measurement, temperature, humidity);
|
return simpleSummaries(measurement, temperature, humidity);
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_DHT,
|
quack.ComponentType.COMPONENT_TYPE_DHT,
|
||||||
subtype,
|
subtype
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -108,8 +108,7 @@ export function dragerGasDongle(subtype: number = 0): ComponentTypeExtension {
|
||||||
//believe this is only used with the old deprecated measurements system, unit measurements builds the summary in the UnitMeasurementSummary component
|
//believe this is only used with the old deprecated measurements system, unit measurements builds the summary in the UnitMeasurementSummary component
|
||||||
measurementSummary: () => {},
|
measurementSummary: () => {},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
//if it is O2 display percentage rather than ppm
|
//if it is O2 display percentage rather than ppm
|
||||||
if (subtype === quack.DragerGasDongleSubtype.DRAGER_GAS_DONGLE_SUBTYPE_O2 || subtype === quack.DragerGasDongleSubtype.DRAGER_GAS_DONGLE_SUBTYPE_LEL) {
|
if (subtype === quack.DragerGasDongleSubtype.DRAGER_GAS_DONGLE_SUBTYPE_O2 || subtype === quack.DragerGasDongleSubtype.DRAGER_GAS_DONGLE_SUBTYPE_LEL) {
|
||||||
|
|
@ -137,7 +136,7 @@ export function dragerGasDongle(subtype: number = 0): ComponentTypeExtension {
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
//create the simple summary for the voltage
|
//create the simple summary for the voltage
|
||||||
summaries.push(unitMeasurementSummary(measurement, describer, excludedNodes));
|
summaries.push(unitMeasurementSummary(measurement, describer));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -146,8 +145,7 @@ export function dragerGasDongle(subtype: number = 0): ComponentTypeExtension {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_DRAGER_GAS_DONGLE,
|
quack.ComponentType.COMPONENT_TYPE_DRAGER_GAS_DONGLE,
|
||||||
subtype,
|
subtype
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -37,14 +37,12 @@ export function Ethylene(subtype: number = 0): ComponentTypeExtension {
|
||||||
return simpleSummaries(measurement, ethylene);
|
return simpleSummaries(measurement, ethylene);
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_ETHYLENE,
|
quack.ComponentType.COMPONENT_TYPE_ETHYLENE,
|
||||||
subtype,
|
subtype
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -74,13 +74,11 @@ export function GPS(subtype: number = 0): ComponentTypeExtension {
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_GPS,
|
quack.ComponentType.COMPONENT_TYPE_GPS,
|
||||||
subtype,
|
subtype,
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -374,13 +374,11 @@ export function GrainCable(subtype: number = 0): ComponentTypeExtension {
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_GRAIN_CABLE,
|
quack.ComponentType.COMPONENT_TYPE_GRAIN_CABLE,
|
||||||
subtype,
|
subtype,
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -29,14 +29,12 @@ export function Invalid(subtype: number = 0): ComponentTypeExtension {
|
||||||
return Promise.reject();
|
return Promise.reject();
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_INVALID,
|
quack.ComponentType.COMPONENT_TYPE_INVALID,
|
||||||
subtype,
|
subtype
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -65,14 +65,12 @@ export function Lidar(subtype: number = 0): ComponentTypeExtension {
|
||||||
return simpleSummaries(measurement, distance);
|
return simpleSummaries(measurement, distance);
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_LIDAR,
|
quack.ComponentType.COMPONENT_TYPE_LIDAR,
|
||||||
subtype,
|
subtype
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -37,14 +37,12 @@ export function Light(subtype: number = 0): ComponentTypeExtension {
|
||||||
return simpleSummaries(measurement, light);
|
return simpleSummaries(measurement, light);
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_LIGHT,
|
quack.ComponentType.COMPONENT_TYPE_LIGHT,
|
||||||
subtype,
|
subtype
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -45,14 +45,12 @@ export function Modem(subtype: number = 0): ComponentTypeExtension {
|
||||||
},
|
},
|
||||||
minMeasurementPeriodMs: 1000,
|
minMeasurementPeriodMs: 1000,
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_MODEM,
|
quack.ComponentType.COMPONENT_TYPE_MODEM,
|
||||||
subtype,
|
subtype
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -37,14 +37,12 @@ export function Nitrate(subtype: number = 0): ComponentTypeExtension {
|
||||||
return simpleSummaries(measurement, nitrate);
|
return simpleSummaries(measurement, nitrate);
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_NITRATE,
|
quack.ComponentType.COMPONENT_TYPE_NITRATE,
|
||||||
subtype,
|
subtype
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -37,14 +37,12 @@ export function O2(subtype: number = 0): ComponentTypeExtension {
|
||||||
return simpleSummaries(measurement, o2);
|
return simpleSummaries(measurement, o2);
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_O2,
|
quack.ComponentType.COMPONENT_TYPE_O2,
|
||||||
subtype,
|
subtype
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -38,13 +38,11 @@ export function ORP(subtype: number = 0): ComponentTypeExtension {
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_ORP,
|
quack.ComponentType.COMPONENT_TYPE_ORP,
|
||||||
subtype,
|
subtype
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -37,14 +37,12 @@ export function OnOffInput(subtype: number = 0): ComponentTypeExtension {
|
||||||
return simpleSummaries(measurement, onOff);
|
return simpleSummaries(measurement, onOff);
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_BOOLEAN_INPUT,
|
quack.ComponentType.COMPONENT_TYPE_BOOLEAN_INPUT,
|
||||||
subtype,
|
subtype
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -93,14 +93,12 @@ export function OnOffOutput(subtype: number = 0): ComponentTypeExtension {
|
||||||
return simpleSummaries(measurement, onOff);
|
return simpleSummaries(measurement, onOff);
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_BOOLEAN_OUTPUT,
|
quack.ComponentType.COMPONENT_TYPE_BOOLEAN_OUTPUT,
|
||||||
subtype,
|
subtype
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -37,14 +37,12 @@ export function PH(subtype: number = 0): ComponentTypeExtension {
|
||||||
return simpleSummaries(measurement, ph);
|
return simpleSummaries(measurement, ph);
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_PH,
|
quack.ComponentType.COMPONENT_TYPE_PH,
|
||||||
subtype,
|
subtype
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -38,13 +38,11 @@ export function Potassium(subtype: number = 0): ComponentTypeExtension {
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_POTASSIUM,
|
quack.ComponentType.COMPONENT_TYPE_POTASSIUM,
|
||||||
subtype,
|
subtype,
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -57,13 +57,11 @@ export function Power(subtype: number = 0): ComponentTypeExtension {
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_POWER,
|
quack.ComponentType.COMPONENT_TYPE_POWER,
|
||||||
subtype,
|
subtype,
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -67,13 +67,11 @@ export function Pressure(subtype: number = 0): ComponentTypeExtension {
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_PRESSURE,
|
quack.ComponentType.COMPONENT_TYPE_PRESSURE,
|
||||||
subtype,
|
subtype,
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -147,13 +147,11 @@ export function PressureCable(subtype: number = 0): ComponentTypeExtension {
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_PRESSURE_CABLE,
|
quack.ComponentType.COMPONENT_TYPE_PRESSURE_CABLE,
|
||||||
subtype,
|
subtype,
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -94,13 +94,11 @@ export function Sen5x(subtype: number = 0): ComponentTypeExtension {
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_SEN5X,
|
quack.ComponentType.COMPONENT_TYPE_SEN5X,
|
||||||
subtype,
|
subtype,
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -41,13 +41,11 @@ export function StepperMotor(subtype: number = 0): ComponentTypeExtension {
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_STEPPER_MOTOR,
|
quack.ComponentType.COMPONENT_TYPE_STEPPER_MOTOR,
|
||||||
subtype,
|
subtype,
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -60,13 +60,11 @@ export function Temperature(subtype: number = 0): ComponentTypeExtension {
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_TEMPERATURE,
|
quack.ComponentType.COMPONENT_TYPE_TEMPERATURE,
|
||||||
subtype,
|
subtype,
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -149,13 +149,11 @@ export function Trigger(subtype: number = 0): ComponentTypeExtension {
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_EDGE_TRIGGERED,
|
quack.ComponentType.COMPONENT_TYPE_EDGE_TRIGGERED,
|
||||||
subtype,
|
subtype,
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -75,13 +75,11 @@ export function VPD(subtype: number = 0): ComponentTypeExtension {
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_VAPOUR_PRESSURE_DEFICIT,
|
quack.ComponentType.COMPONENT_TYPE_VAPOUR_PRESSURE_DEFICIT,
|
||||||
subtype,
|
subtype,
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -121,13 +121,11 @@ export function VibrationCable(subtype: number = 0): ComponentTypeExtension {
|
||||||
measurementSummary: async function() {},
|
measurementSummary: async function() {},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_VIBRATION_CHAIN,
|
quack.ComponentType.COMPONENT_TYPE_VIBRATION_CHAIN,
|
||||||
subtype,
|
subtype,
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -38,13 +38,11 @@ export function Voltage(subtype: number = 0): ComponentTypeExtension {
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_VOLTAGE,
|
quack.ComponentType.COMPONENT_TYPE_VOLTAGE,
|
||||||
subtype,
|
subtype,
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
areaChartData: (
|
areaChartData: (
|
||||||
|
|
|
||||||
|
|
@ -38,13 +38,11 @@ export function Weight(subtype: number = 0): ComponentTypeExtension {
|
||||||
},
|
},
|
||||||
unitMeasurementSummary: (
|
unitMeasurementSummary: (
|
||||||
measurements: convertedUnitMeasurement,
|
measurements: convertedUnitMeasurement,
|
||||||
excludedNodes?: number[]
|
|
||||||
): Summary[] => {
|
): Summary[] => {
|
||||||
return unitMeasurementSummaries(
|
return unitMeasurementSummaries(
|
||||||
measurements,
|
measurements,
|
||||||
quack.ComponentType.COMPONENT_TYPE_WEIGHT,
|
quack.ComponentType.COMPONENT_TYPE_WEIGHT,
|
||||||
subtype,
|
subtype,
|
||||||
excludedNodes
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
lineChartData: (
|
lineChartData: (
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue