/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: MIT-0
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this
* software and associated documentation files (the "Software"), to deal in the Software
* without restriction, including without limitation the rights to use, copy, modify,
* merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import { useState } from "react";
import { AppLayout, BreadcrumbGroup, Container, Grid, Header, TopNavigation } from "@awsui/components-react";
/* --- BEGIN: AWS @iot-app-kit and related imports*/
import { initialize } from "@iot-app-kit/source-iotsitewise";
import { fromEnvReactApp } from "./fromEnv";
import { BarChart, LineChart, StatusTimeline, ResourceExplorer, WebglContext, StatusGrid, Kpi } from "@iot-app-kit/react-components";
import { COMPARISON_OPERATOR } from '@synchro-charts/core';
import "./App.css";
const { defineCustomElements } = require("@iot-app-kit/components/loader");
const { query } = initialize({
awsCredentials: fromEnvReactApp(),
awsRegion: "us-east-1",
});
defineCustomElements();
/* --- END: AWS @iot-app-kit and related imports*/
function Breadcrumbs() {
const breadcrumbItems = [
{
text: 'Bottling Line',
href: '#'
},
{
text: 'Machine Dashboard',
href: '#'
}
];
return ;
}
function PageHeader() {
return ;
}
function SitwiseResourceExplorer(props: any) {
const columnDefinitions = [{
sortingField: 'name',
id: 'name',
header: 'Asset Name',
cell: ({ name }: any) => name,
}];
return (
Bottling Line Machines }
>
{/* --- BEGIN: `ResourceExplorer` implementation*/}
{
console.log("changes asset", event);
props.setAssetId((event?.detail?.selectedItems?.[0] as any)?.id);
props.setAssetName((event?.detail?.selectedItems?.[0] as any)?.name);
}}
columnDefinitions={columnDefinitions}
/>
{/* --- END: `ResourceExplorer` implementation*/}
);
}
function MachineState(props: any) {
return (
Machine State }
>
{/* --- BEGIN: `StatusTimeline` implementation*/}
{/* --- END: `StatusTimeline` implementation*/}
);
}
function ProductionCount(props: any) {
return (
Production Count } >
{/* --- BEGIN: `LineChart` implementation*/}
{/* --- END: `LineChart` implementation*/}
);
}
function MachineMode(props: any) {
return (
{props.assetName} } >
);
}
function MachineSpeed(props: any) {
return (
Machine Speed } >
);
}
function ProductionStatus(props: any) {
return (
Production Statistics } >
);
}
function StopHistory(props: any) {
return (
Stop History } >
);
}
function Content() {
/* --- BEGIN: Asset Id and Asset Property Ids from AWS IoT SiteWise*/
// Asset Id of the AWS IoT SiteWise asset that you want to display by default
const DEFAULT_MACHINE_ASSET_ID = '';
const [ assetId, setAssetId ] = useState(DEFAULT_MACHINE_ASSET_ID);
const [ assetName, setAssetName ] = useState('');
// Asset Property Ids of the AWS IoT SiteWise assets that you want to query data for
// Refer AWS IoT SiteWise measurements
const OEE_BAD_COUNT_PROPERTY = '';
const OEE_TOTAL_COUNT_PROPERTY = '';
const CURRENT_SPEED_PROPERTY = '';
const MACHINE_STOP_REASON_CODE_PROPERTY = '';
// Refer IoT SiteWise transforms
const MACHINE_STATE_ENUM_PROPERTY = '';
const MACHINE_MODE_ENUM_PROPERTY = '';
const STARVED_INDICATOR_PROPERTY = '';
const BLOCKED_INDICATOR_PROPERTY = '';
/* --- END: Asset Property Ids from AWS IoT SiteWise*/
return (
);
}
function App() {
return (
<>
}
contentHeader={}
content={}
navigationHide={true}
toolsHide={true}
/>
{/* --- BEGIN: `WebglContext` implementation*/}
{/* --- END: `WebglContext` implementation*/}
>
);
}
export default App;