in frontend/src/components/Telemetry.js [143:241]
render() {
const options = [
{
text: 'otaUpdate 1.0',
value: JSON.stringify({cmd: "otaUpdate", version: "1.0"}),
},
{
text: 'otaUpdate 2.0',
value: JSON.stringify({cmd: "otaUpdate", version: "2.0"}),
},
{
text: 'startWork',
value: JSON.stringify({cmd: "startWork"}),
},
{
text: 'standBy',
value: JSON.stringify({cmd: "standby"}),
},
{
text: 'enableAutoCharging',
value: JSON.stringify({cmd: "enableAutoCharging"}),
},
{
text: 'disableAutoCharging',
value: JSON.stringify({cmd: "disableAutoCharging"}),
},
];
let cmdContent;
var cmd = this.state.cmd;
if (this.state.sentAt) {
cmdContent =
<div>
{cmd}
<Divider />
Last sent at: <Label>{moment(this.state.sentAt).format('HH:mm:ss.SSS')}</Label>
</div>;
} else {
cmdContent =
<p>
{cmd}
</p>;
}
let respContent;
var resp = this.state.resp;
if (this.state.receivedAt) {
respContent =
<div>
{resp}
<Divider />
Last received at:
<Label>{moment(this.state.receivedAt).format('HH:mm:ss.SSS')}</Label> Latency: <Label>{this.state.receivedAt-this.state.sentAt}</Label> ms.
</div>;
} else {
respContent =
<p>
{resp}
</p>;
}
return (
<Popup
flowing
trigger={<Button icon='comments' content='Send Command' disabled={!this.props.thing} />}
content={
<div>
<Dropdown
placeholder='Select Cmd'
fluid
selection
options={options}
onChange={this.handleChange}
/>
<Message>
<Message.Header><Icon name='arrow right' />myThings/{this.props.thing}/cmds</Message.Header>
<Divider />
{cmdContent}
</Message>
<Message>
<Message.Header><Icon name='arrow left' />myThings/{this.props.thing}/cmds/ack</Message.Header>
<Divider />
{respContent}
</Message>
<Button
onClick={this.handleSendCmd}
primary
content='Send'
disabled={!this.state.cmd}
/>
<Button onClick={this.handleCmdsPopupClose} content='Close' />
</div>
}
on='click'
open={this.props.open}
onOpen={this.handleCmdsPopupOpen}
position='top right'
/>
)
}