modify yc/yx prefix

This commit is contained in:
zhuxu 2025-10-30 10:50:13 +08:00
parent c67da98d32
commit 8d7371b5ba
1 changed files with 12 additions and 7 deletions

View File

@ -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))
}
}
}