fix(misc): work on ocp to improve the errors that were missed and better logging
This commit is contained in:
@@ -11,14 +11,14 @@ export default function OCPPage() {
|
|||||||
|
|
||||||
const server = settings.filter((n) => n.plantToken === "usday1");
|
const server = settings.filter((n) => n.plantToken === "usday1");
|
||||||
return (
|
return (
|
||||||
<div className="h-dvh w-full overflow-hidden">
|
<div className="h-screen w-full ">
|
||||||
<div className="flex flex-wrap gap-2">
|
<div className="flex flex-wrap gap-2">
|
||||||
<div className="flex flex-col w-4/5 h-dvh">
|
<div className="flex flex-col w-4/5 h-dvh">
|
||||||
<div className="">
|
<div className="">
|
||||||
<Lots />
|
<Lots />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="w-5/6">
|
<div className="w-5/6 h-1/2">
|
||||||
<Tabs defaultValue="ocplogs" className="w-full">
|
<Tabs defaultValue="ocplogs" className="w-full">
|
||||||
<TabsList className="grid w-full grid-cols-2">
|
<TabsList className="grid w-full grid-cols-2">
|
||||||
<TabsTrigger value="ocplogs">
|
<TabsTrigger value="ocplogs">
|
||||||
|
|||||||
45
frontend/src/components/ui/resizable-panels.tsx
Normal file
45
frontend/src/components/ui/resizable-panels.tsx
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { GripVertical } from "lucide-react";
|
||||||
|
import * as ResizablePrimitive from "react-resizable-panels";
|
||||||
|
|
||||||
|
import { cn } from "@/lib/utils";
|
||||||
|
|
||||||
|
const ResizablePanelGroup = ({
|
||||||
|
className,
|
||||||
|
...props
|
||||||
|
}: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => (
|
||||||
|
<ResizablePrimitive.PanelGroup
|
||||||
|
className={cn(
|
||||||
|
"flex h-full w-full data-[panel-group-direction=vertical]:flex-col",
|
||||||
|
className
|
||||||
|
)}
|
||||||
|
{...props}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
|
||||||
|
const ResizablePanel = ResizablePrimitive.Panel;
|
||||||
|
|
||||||
|
const ResizableHandle = ({
|
||||||
|
withHandle,
|
||||||
|
className,
|
||||||
|
...props
|
||||||
|
}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {
|
||||||
|
withHandle?: boolean;
|
||||||
|
}) => (
|
||||||
|
<ResizablePrimitive.PanelResizeHandle
|
||||||
|
className={cn(
|
||||||
|
"relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",
|
||||||
|
className
|
||||||
|
)}
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
{withHandle && (
|
||||||
|
<div className="z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border">
|
||||||
|
<GripVertical className="h-2.5 w-2.5" />
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</ResizablePrimitive.PanelResizeHandle>
|
||||||
|
);
|
||||||
|
|
||||||
|
export { ResizablePanelGroup, ResizablePanel, ResizableHandle };
|
||||||
5
frontend/src/utils/formStuff/debugButton.tsx
Normal file
5
frontend/src/utils/formStuff/debugButton.tsx
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
import { Button } from "@/components/ui/button";
|
||||||
|
|
||||||
|
export const DebugButton = (data: any) => {
|
||||||
|
return <Button onClick={() => console.log(data.data)}>Debug</Button>;
|
||||||
|
};
|
||||||
@@ -52,7 +52,7 @@ export const labelingProcess = async ({
|
|||||||
const macId = await getMac(line);
|
const macId = await getMac(line);
|
||||||
// filter out the lot for the line
|
// filter out the lot for the line
|
||||||
filteredLot = lots.data.filter(
|
filteredLot = lots.data.filter(
|
||||||
(l: any) => l.MachineID === macId[0].HumanReadableId
|
(l: any) => l.MachineID === macId[0]?.HumanReadableId
|
||||||
);
|
);
|
||||||
|
|
||||||
if (filteredLot.length === 0) {
|
if (filteredLot.length === 0) {
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ export const dycoConnect = async () => {
|
|||||||
plcCycle = setInterval(async () => {
|
plcCycle = setInterval(async () => {
|
||||||
if (isReading) {
|
if (isReading) {
|
||||||
createLog(
|
createLog(
|
||||||
"warn",
|
"debug",
|
||||||
"dyco",
|
"dyco",
|
||||||
"ocp",
|
"ocp",
|
||||||
"Skipping cycle: previous read still in progress."
|
"Skipping cycle: previous read still in progress."
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { createLog } from "../../../../../logger/logger.js";
|
|||||||
export let strapperActive = true;
|
export let strapperActive = true;
|
||||||
export let stapperFaulted = false;
|
export let stapperFaulted = false;
|
||||||
export let strapperFaultCount = 3; // move to db so we can control it outside the app
|
export let strapperFaultCount = 3; // move to db so we can control it outside the app
|
||||||
|
let alreadyAlerted = false;
|
||||||
|
|
||||||
export const strapperFaults = async (tagData: any) => {
|
export const strapperFaults = async (tagData: any) => {
|
||||||
const { data, error } = await tryCatch(db.select().from(settings));
|
const { data, error } = await tryCatch(db.select().from(settings));
|
||||||
@@ -15,27 +16,6 @@ export const strapperFaults = async (tagData: any) => {
|
|||||||
return { success: false, message: "Failed to get settings." };
|
return { success: false, message: "Failed to get settings." };
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strapperActive) {
|
|
||||||
// monitor strapper
|
|
||||||
//console.log(`Strapper fault is ${strapperError.value}`);
|
|
||||||
if (tagData.value && strapperFaultCount > 0) {
|
|
||||||
// strapper faulted we want to start the trigger to force the check
|
|
||||||
if (!stapperFaulted) {
|
|
||||||
createLog(
|
|
||||||
"error",
|
|
||||||
"dyco",
|
|
||||||
"ocp",
|
|
||||||
`Strapper errored triggering manual checks will be required for the next ${strapperFaultCount}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
stapperFaulted = true;
|
|
||||||
|
|
||||||
// change move fault count to db....
|
|
||||||
strapperFaultCount = 3;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const strapperCheckSetting = data.filter((n) => n.name === "strapperCheck");
|
const strapperCheckSetting = data.filter((n) => n.name === "strapperCheck");
|
||||||
|
|
||||||
if (strapperCheckSetting[0]?.value === "1") {
|
if (strapperCheckSetting[0]?.value === "1") {
|
||||||
@@ -46,6 +26,7 @@ export const strapperFaults = async (tagData: any) => {
|
|||||||
"ocp",
|
"ocp",
|
||||||
`There was a strapper error, remaining pallets to check ${strapperFaultCount}.`
|
`There was a strapper error, remaining pallets to check ${strapperFaultCount}.`
|
||||||
);
|
);
|
||||||
|
alreadyAlerted = true;
|
||||||
strapperFaultCount = strapperFaultCount - 1;
|
strapperFaultCount = strapperFaultCount - 1;
|
||||||
return {
|
return {
|
||||||
success: false,
|
success: false,
|
||||||
@@ -69,4 +50,25 @@ export const strapperFaults = async (tagData: any) => {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strapperActive) {
|
||||||
|
// monitor strapper
|
||||||
|
//console.log(`Strapper fault is ${strapperError.value}`);
|
||||||
|
if (tagData.value && strapperFaultCount > 0) {
|
||||||
|
// strapper faulted we want to start the trigger to force the check
|
||||||
|
if (!stapperFaulted) {
|
||||||
|
createLog(
|
||||||
|
"error",
|
||||||
|
"dyco",
|
||||||
|
"ocp",
|
||||||
|
`Strapper errored triggering manual checks will be required for the next ${strapperFaultCount}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
stapperFaulted = true;
|
||||||
|
alreadyAlerted = true;
|
||||||
|
// change move fault count to db....
|
||||||
|
strapperFaultCount = 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ app.openapi(
|
|||||||
await readTags(reader);
|
await readTags(reader);
|
||||||
} else {
|
} else {
|
||||||
createLog(
|
createLog(
|
||||||
"info",
|
"debug",
|
||||||
"rfid",
|
"rfid",
|
||||||
"rfid",
|
"rfid",
|
||||||
`A new trigger from ${reader} was to soon`
|
`A new trigger from ${reader} was to soon`
|
||||||
|
|||||||
Reference in New Issue
Block a user