Adding upstream version 1.34.4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
e393c3af3f
commit
4978089aab
4963 changed files with 677545 additions and 0 deletions
64
plugins/inputs/modbus/configuration.go
Normal file
64
plugins/inputs/modbus/configuration.go
Normal file
|
@ -0,0 +1,64 @@
|
|||
package modbus
|
||||
|
||||
import "fmt"
|
||||
|
||||
const (
|
||||
maxQuantityDiscreteInput = uint16(2000)
|
||||
maxQuantityCoils = uint16(2000)
|
||||
maxQuantityInputRegisters = uint16(125)
|
||||
maxQuantityHoldingRegisters = uint16(125)
|
||||
)
|
||||
|
||||
type configuration interface {
|
||||
check() error
|
||||
process() (map[byte]requestSet, error)
|
||||
sampleConfigPart() string
|
||||
}
|
||||
|
||||
func removeDuplicates(elements []uint16) []uint16 {
|
||||
encountered := make(map[uint16]bool, len(elements))
|
||||
result := make([]uint16, 0, len(elements))
|
||||
|
||||
for _, addr := range elements {
|
||||
if !encountered[addr] {
|
||||
encountered[addr] = true
|
||||
result = append(result, addr)
|
||||
}
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
func normalizeInputDatatype(dataType string) (string, error) {
|
||||
switch dataType {
|
||||
case "BIT", "INT8L", "INT8H", "UINT8L", "UINT8H",
|
||||
"INT16", "UINT16", "INT32", "UINT32", "INT64", "UINT64",
|
||||
"FLOAT16", "FLOAT32", "FLOAT64", "STRING":
|
||||
return dataType, nil
|
||||
}
|
||||
return "unknown", fmt.Errorf("unknown input type %q", dataType)
|
||||
}
|
||||
|
||||
func normalizeOutputDatatype(dataType string) (string, error) {
|
||||
switch dataType {
|
||||
case "", "native":
|
||||
return "native", nil
|
||||
case "INT64", "UINT64", "FLOAT64", "STRING":
|
||||
return dataType, nil
|
||||
}
|
||||
return "unknown", fmt.Errorf("unknown output type %q", dataType)
|
||||
}
|
||||
|
||||
func normalizeByteOrder(byteOrder string) (string, error) {
|
||||
switch byteOrder {
|
||||
case "ABCD", "MSW-BE", "MSW": // Big endian (Motorola)
|
||||
return "ABCD", nil
|
||||
case "BADC", "MSW-LE": // Big endian with bytes swapped
|
||||
return "BADC", nil
|
||||
case "CDAB", "LSW-BE": // Little endian with bytes swapped
|
||||
return "CDAB", nil
|
||||
case "DCBA", "LSW-LE", "LSW": // Little endian (Intel)
|
||||
return "DCBA", nil
|
||||
}
|
||||
return "unknown", fmt.Errorf("unknown byte-order %q", byteOrder)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue