From 722b23a3216a9a8c67ad4d3d5095b831aed13f36 Mon Sep 17 00:00:00 2001 From: Blake Matthes Date: Mon, 8 Dec 2025 08:36:25 -0600 Subject: [PATCH] fix(rfid): changed the tag reading to have a little more flexable --- lstV2/server/services/rfid/route/tagInfo.ts | 153 ++++++++++---------- 1 file changed, 74 insertions(+), 79 deletions(-) diff --git a/lstV2/server/services/rfid/route/tagInfo.ts b/lstV2/server/services/rfid/route/tagInfo.ts index 30d2d8e..7b21d74 100644 --- a/lstV2/server/services/rfid/route/tagInfo.ts +++ b/lstV2/server/services/rfid/route/tagInfo.ts @@ -1,98 +1,93 @@ //http://usday1vms006:4000/api/v1/zebra/wrapper1 -import { z, createRoute, OpenAPIHono } from "@hono/zod-openapi"; +import { createRoute, OpenAPIHono, z } from "@hono/zod-openapi"; import { ConsoleLogWriter } from "drizzle-orm"; -import { tagData } from "../controller/tagData.js"; +import { apiHit } from "../../../globalUtils/apiHits.js"; import { responses } from "../../../globalUtils/routeDefs/responses.js"; +import { tryCatch } from "../../../globalUtils/tryCatch.js"; +import { createLog } from "../../logger/logger.js"; import { clearNoReadTimer, noRead } from "../controller/noRead.js"; import { badRead, goodRead } from "../controller/readerControl.js"; -import { createLog } from "../../logger/logger.js"; -import { tryCatch } from "../../../globalUtils/tryCatch.js"; import { stopRead } from "../controller/readTags.js"; -import { apiHit } from "../../../globalUtils/apiHits.js"; +import { tagData } from "../controller/tagData.js"; const app = new OpenAPIHono(); const ParamsSchema = z.object({ - reader: z - .string() - .min(3) - .openapi({ - param: { - name: "reader", - in: "path", - }, - example: "1212121", - }), + reader: z + .string() + .min(3) + .openapi({ + param: { + name: "reader", + in: "path", + }, + example: "1212121", + }), }); app.openapi( - createRoute({ - tags: ["rfid"], - summary: "Tag info posted from the reader.", - method: "post", - path: "/taginfo/{reader}", - request: { - params: ParamsSchema, - }, - responses: responses(), - }), - async (c) => { - const { reader } = c.req.valid("param"); - createLog("info", "rfid", "rfid", `${reader} is sending us data.`); - let tagdata: any = []; - const { data: body, error: bodyError } = await tryCatch(c.req.json()); - apiHit(c, { endpoint: `/taginfo/${reader}`, lastBody: body }); - if (bodyError) { - return c.json({ success: false, message: "missing data" }, 400); - } - //console.log(`Tag: ${Buffer.from(body.idHex, "hex").toString("utf-8")}, ${body[key].data.idHex}`); + createRoute({ + tags: ["rfid"], + summary: "Tag info posted from the reader.", + method: "post", + path: "/taginfo/{reader}", + request: { + params: ParamsSchema, + }, + responses: responses(), + }), + async (c) => { + const { reader } = c.req.valid("param"); + createLog("info", "rfid", "rfid", `${reader} is sending us data.`); + let tagdata: any = []; + const { data: body, error: bodyError } = await tryCatch(c.req.json()); + apiHit(c, { endpoint: `/taginfo/${reader}`, lastBody: body }); + if (bodyError) { + return c.json({ success: false, message: "missing data" }, 400); + } + //console.log(`Tag: ${Buffer.from(body.idHex, "hex").toString("utf-8")}, ${body[key].data.idHex}`); - for (let i = 0; i < body.length; i++) { - const tag = Buffer.from(body[i].data.idHex, "hex").toString( - "utf-8" - ); - // console.log( - // "Raw value:", - // body[i].data.peakRssi, - // "Parsed:", - // parseInt(body[i].data.peakRssi) - // ); - if ( - tag.includes("ALPLA") && - parseInt(body[i].data.peakRssi) < -30 - ) { - tagdata = [ - ...tagdata, - { - tagHex: body[i].data.idHex, - reader: reader, - tag: tag, - timeStamp: body[i].timestamp, - antenna: body[i].data.antenna, - tagStrength: body[i].data.peakRssi, - }, - ]; - } - } + for (let i = 0; i < body.length; i++) { + const tag = Buffer.from(body[i].data.idHex, "hex").toString("utf-8"); + // console.log( + // "Raw value:", + // body[i].data.peakRssi, + // "Parsed:", + // parseInt(body[i].data.peakRssi) + // ); + if ( + tag.includes("ALPLA") && + parseInt(body[i].data.peakRssi) >= -80 // anything strong than this go ahead and read it + ) { + tagdata = [ + ...tagdata, + { + tagHex: body[i].data.idHex, + reader: reader, + tag: tag, + timeStamp: body[i].timestamp, + antenna: body[i].data.antenna, + tagStrength: body[i].data.peakRssi, + }, + ]; + } + } - if (tagdata.length === 0) { - // noRead(reader); - // badRead(reader); - return c.json( - { success: false, message: `There were no tags scanned.` }, - 200 - ); - } else { - tagData(tagdata); - goodRead(reader); - clearNoReadTimer(); + if (tagdata.length === 0) { + // noRead(reader); + // badRead(reader); + return c.json( + { success: false, message: `There were no tags scanned.` }, + 200, + ); + } else { + tagData(tagdata); + goodRead(reader); + clearNoReadTimer(); - return c.json( - { success: true, message: `New info from ${reader}` }, - 200 - ); - } - } + return c.json({ success: true, message: `New info from ${reader}` }, 200); + } + }, ); export default app;