fix(inputs.opcua): Make sure to always create a request (#15178)
This commit is contained in:
parent
2de80263d5
commit
a3ec8e86f3
|
|
@ -30,7 +30,7 @@ type ReadClient struct {
|
|||
Workarounds ReadClientWorkarounds
|
||||
|
||||
// internal values
|
||||
req *ua.ReadRequest
|
||||
reqIDs []*ua.ReadValueID
|
||||
ctx context.Context
|
||||
}
|
||||
|
||||
|
|
@ -65,10 +65,10 @@ func (o *ReadClient) Connect() error {
|
|||
return fmt.Errorf("initializing node IDs failed: %w", err)
|
||||
}
|
||||
|
||||
readValueIDs := make([]*ua.ReadValueID, 0, len(o.NodeIDs))
|
||||
o.reqIDs = make([]*ua.ReadValueID, 0, len(o.NodeIDs))
|
||||
if o.Workarounds.UseUnregisteredReads {
|
||||
for _, nid := range o.NodeIDs {
|
||||
readValueIDs = append(readValueIDs, &ua.ReadValueID{NodeID: nid})
|
||||
o.reqIDs = append(o.reqIDs, &ua.ReadValueID{NodeID: nid})
|
||||
}
|
||||
} else {
|
||||
regResp, err := o.Client.RegisterNodes(o.ctx, &ua.RegisterNodesRequest{
|
||||
|
|
@ -79,16 +79,10 @@ func (o *ReadClient) Connect() error {
|
|||
}
|
||||
|
||||
for _, v := range regResp.RegisteredNodeIDs {
|
||||
readValueIDs = append(readValueIDs, &ua.ReadValueID{NodeID: v})
|
||||
o.reqIDs = append(o.reqIDs, &ua.ReadValueID{NodeID: v})
|
||||
}
|
||||
}
|
||||
|
||||
o.req = &ua.ReadRequest{
|
||||
MaxAge: 2000,
|
||||
TimestampsToReturn: ua.TimestampsToReturnBoth,
|
||||
NodesToRead: readValueIDs,
|
||||
}
|
||||
|
||||
if err := o.read(); err != nil {
|
||||
return fmt.Errorf("get data failed: %w", err)
|
||||
}
|
||||
|
|
@ -136,7 +130,13 @@ func (o *ReadClient) CurrentValues() ([]telegraf.Metric, error) {
|
|||
}
|
||||
|
||||
func (o *ReadClient) read() error {
|
||||
resp, err := o.Client.Read(o.ctx, o.req)
|
||||
req := &ua.ReadRequest{
|
||||
MaxAge: 2000,
|
||||
TimestampsToReturn: ua.TimestampsToReturnBoth,
|
||||
NodesToRead: o.reqIDs,
|
||||
}
|
||||
|
||||
resp, err := o.Client.Read(o.ctx, req)
|
||||
if err != nil {
|
||||
o.ReadError.Incr(1)
|
||||
return fmt.Errorf("RegisterNodes Read failed: %w", err)
|
||||
|
|
|
|||
Loading…
Reference in New Issue