From 8d7371b5ba03862d13a3a1361e7d2029cd2e5092 Mon Sep 17 00:00:00 2001 From: zhuxu Date: Thu, 30 Oct 2025 10:50:13 +0800 Subject: [PATCH] modify yc/yx prefix --- plugins/parsers/phasor_binary/parser.go | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/plugins/parsers/phasor_binary/parser.go b/plugins/parsers/phasor_binary/parser.go index 119ea9eb5..48230580b 100644 --- a/plugins/parsers/phasor_binary/parser.go +++ b/plugins/parsers/phasor_binary/parser.go @@ -36,6 +36,11 @@ const ( dataLengthU = 14106 ) +const ( + ycPrefix = "tm" + yxPrefix = "ts" +) + func (p *Parser) Init() error { p.pointFrequency = 50 return nil @@ -117,7 +122,7 @@ func (p *Parser) checkHeaderAndInitMetrics(data []byte, topic string) ([]telegra for i := range metrics { metrics[i] = metric.New("voltage", map[string]string{"device": device}, - make(map[string]any, 51), // 3*8+2*8+2+3*3 + make(map[string]any, 49), // 3*8+2*8+2+3*3 time.Unix(second, int64(i*1e9/p.pointFrequency))) } default: @@ -127,7 +132,7 @@ func (p *Parser) checkHeaderAndInitMetrics(data []byte, topic string) ([]telegra return metrics, deviceType, nil } -// analog metrics, voltage or current +// yc metrics func (p *Parser) fillAnalogChanMetrics(metrics []telegraf.Metric, data []byte, begin int) { for ci := range 8 { @@ -139,14 +144,14 @@ func (p *Parser) fillAnalogChanMetrics(metrics []telegraf.Metric, data []byte, b pa := math.Float64frombits(binary.LittleEndian.Uint64(data[b+8 : b+16])) rms := math.Float64frombits(binary.LittleEndian.Uint64(data[b+16 : b+24])) - metrics[mj].AddField("c"+chanNo+"_amp", amp) - metrics[mj].AddField("c"+chanNo+"_pa", pa) - metrics[mj].AddField("c"+chanNo+"_rms", rms) + metrics[mj].AddField(ycPrefix+chanNo+"_amp", amp) + metrics[mj].AddField(ycPrefix+chanNo+"_pa", pa) + metrics[mj].AddField(ycPrefix+chanNo+"_rms", rms) } } } -// switch metrics +// yx metrics func (p *Parser) fillSwitchChanMetrics(metrics []telegraf.Metric, data []byte, begin int) { for ci := range 2 { @@ -155,7 +160,7 @@ func (p *Parser) fillSwitchChanMetrics(metrics []telegraf.Metric, data []byte, b for bk := range 8 { chanNo := strconv.Itoa(ci*8 + bk + 1) - metrics[mj].AddField("i"+chanNo, uint8((data[b]>>bk)&1)) + metrics[mj].AddField(yxPrefix+chanNo, uint8((data[b]>>bk)&1)) } } }