Убрал лишние проверки. Убрал дефолтные значения env переменных. Скорректировал dockerfile

This commit is contained in:
Первов Артем
2026-06-19 10:30:13 +03:00
parent cbe33500cf
commit 9b53f602ce
10 changed files with 52 additions and 105 deletions

View File

@@ -4,7 +4,6 @@ import type { TopicHandler } from '../types.js'
export const TOPIC = 'data/edge5/modbus/v1'
const EDGE = 'edge5'
const REGISTER_COUNT = 125
type Edge5ModbusMetric = {
edge: string
@@ -14,23 +13,7 @@ type Edge5ModbusMetric = {
}
function parseValues(payload: Buffer): number[] {
let value: unknown
try {
value = JSON.parse(payload.toString('utf8')) as unknown
} catch {
throw new Error(`Expected JSON number[${REGISTER_COUNT}]`)
}
if (
Array.isArray(value) &&
value.length === REGISTER_COUNT &&
value.every((item) => typeof item === 'number' && Number.isFinite(item))
) {
return value
}
throw new Error(`Expected JSON number[${REGISTER_COUNT}]`)
return JSON.parse(payload.toString('utf8')) as number[]
}
function toMetrics(values: number[], timestamp: number): Edge5ModbusMetric[] {
@@ -47,12 +30,7 @@ async function postMetrics(metrics: Edge5ModbusMetric[]): Promise<void> {
if (!response.ok) {
const text = await response.text()
console.error('edge5.modbus.post_error', {
status: response.status,
statusText: response.statusText,
body: text.slice(0, 500),
})
return
throw new Error(text)
}
console.log('edge5.modbus.posted', { count: metrics.length })
@@ -61,15 +39,7 @@ async function postMetrics(metrics: Edge5ModbusMetric[]): Promise<void> {
export const handleEdge5Modbus: TopicHandler = async (topic, payload) => {
console.log('edge5.modbus.received', { topic, bytes: payload.length })
let values: number[]
try {
values = parseValues(payload)
} catch (err) {
console.warn('edge5.modbus.invalid_payload', { topic, err })
return
}
const values = parseValues(payload)
const metrics = toMetrics(values, Date.now())
await postMetrics(metrics)
}