ice-frontend-react-mobx
Version:
ICE Frontend REACT+MobX
185 lines (177 loc) • 5.64 kB
JavaScript
var debug = require('debug')('ice:DeviceSensorData: '); // eslint-disable-line no-unused-vars
import React from 'react';
import { inject, observer } from 'mobx-react';
import ValueWrapper from '../../common/ValueWrapper/ValueWrapper';
let styles = require('./DeviceSensorData.css');
('store')
export default class DeviceSensorData extends React.Component {
constructor (props) {
super(props);
this.store = this.props.store.deviceStore;
}
render () {
let id = this.props.selectedDevice.id;
let device = this.store.getById(id);
let date = device.sensorData.timestamp;
let deviceModel = device.model;
let deviceType = device.type;
let deviceIp = device.ip;
let groupSensor = device.groupSensor ? 'yes' : 'no';
let breakerRating = device.breakerRating;
let inputPower = device.sensorData.inputPower;
let inputCurrent = device.sensorData.inputCurrent;
let inputVoltage = device.sensorData.inputVoltage;
let outputPower = device.sensorData.outputPower;
let outputCurrent = device.sensorData.outputCurrent;
let outputVoltage = device.sensorData.outputVoltage;
let battOutput = device.sensorData.battPowerOut;
let battCurrent = device.sensorData.battCurrent;
let battVoltage = device.sensorData.battVoltage;
let battTempC = device.sensorData.battTemp;
let battSocWh = device.sensorData.battSocWH;
let battSoc = device.sensorData.battSoc;
return (
<section className={styles.sensorDataDisplay}>
<div className={styles.deviceInformation}>
<ValueWrapper
value={deviceModel}
size='med'
labelFirst={true}
label='Device Model'/>
<ValueWrapper
value={deviceType}
size='med'
labelFirst={true}
label='Device Type'/>
<ValueWrapper
value={deviceIp}
size='med'
labelFirst={true}
label='IP Address:Port'/>
<ValueWrapper
value={groupSensor}
size='med'
labelFirst={true}
label='Group Sensor'/>
<ValueWrapper
value={breakerRating}
size='med'
suffix='kW'
labelFirst={true}
label='Breaker Rating'/>
</div>
<legend>Power Metrics</legend>
<div className={styles.sensorDataDisplayRow}>
<div className={styles.column}>
<ValueWrapper
value={inputPower}
suffix='kW'
size='sm'
labelFirst={true}
inline={true}
label='Input Power'/>
<ValueWrapper
value={inputCurrent}
suffix='A'
size='sm'
labelFirst={true}
inline={true}
label='Input Current'/>
<ValueWrapper
value={inputVoltage}
suffix='V'
size='sm'
labelFirst={true}
inline={true}
label='Input Voltage'/>
</div>
<div className={styles.column}>
<ValueWrapper
value={outputPower}
suffix='kW'
size='sm'
labelFirst={true}
inline={true}
label='Output Power'/>
<ValueWrapper
value={outputCurrent}
suffix='A'
size='sm'
labelFirst={true}
inline={true}
label='Output Current'/>
<ValueWrapper
value={outputVoltage}
suffix='V'
size='sm'
labelFirst={true}
inline={true}
label='Output Voltage'/>
</div>
</div>
<legend>Battery Status</legend>
<div className={styles.sensorDataDisplayRow}>
<div className={styles.column}>
<ValueWrapper
value={battOutput}
suffix='kW'
size='sm'
labelFirst={true}
inline={true}
label='Battery Output'/>
<ValueWrapper
value={battCurrent}
suffix='A'
size='sm'
labelFirst={true}
inline={true}
label='Battery Current'/>
<ValueWrapper
value={battVoltage}
suffix='V'
size='sm'
labelFirst={true}
inline={true}
label='Output Voltage'/>
</div>
<div className={styles.column}>
<ValueWrapper
value={battTempC}
suffix={'\u2103'}
size='sm'
labelFirst={true}
inline={true}
formatNumber={false}
label='Battery Temp'/>
<ValueWrapper
value={battSocWh}
suffix='Wh'
size='sm'
labelFirst={true}
inline={true}
formatNumber={false}
label='Battery SOC'/>
<ValueWrapper
value={battSoc}
suffix='%'
size='sm'
labelFirst={true}
inline={true}
formatNumber={false}
label='Battery SOC'/>
</div>
</div>
<ValueWrapper
value={date.toString()}
size='sm'
labelFirst={true}
inline={true}
formatNumber={false}
label='Timestamp'/>
</section>
);
}
}
/**
* Created by briancoburn on 11/10/16.
*/