Documentation
¶
Index ¶
- Constants
- Variables
- func FinderReadEnumRegister(c *DeviceStruct, register FinderRegister) (v dataflow.Value, err error)
- func FinderReadFloatRegister(c *DeviceStruct, register FinderRegister) (v dataflow.Value, err error)
- func FinderReadInputRegisters(c *DeviceStruct, register FinderRegister) (response []byte, err error)
- func FinderReadInputRegistersRaw(c *DeviceStruct, register FinderRegister) (response []byte, err error)
- func FinderReadRegister(c *DeviceStruct, reg FinderRegister) (v dataflow.Value, err error)
- func FinderReadStringRegister(c *DeviceStruct, register FinderRegister) (v dataflow.Value, err error)
- func FinderReadUInt16Register(c *DeviceStruct, register FinderRegister) (v dataflow.Value, err error)
- func WaveshareReadRelays(writeRead WriteReadBusFunc, deviceAddress byte) (state [8]bool, err error)
- func WaveshareReadSoftwareRevision(writeRead WriteReadBusFunc, deviceAddress byte) (version string, err error)
- func WaveshareWriteRelay(writeRead WriteReadBusFunc, deviceAddress byte, relayNr uint16, ...) (err error)
- type Command
- type Config
- type DeviceStruct
- type FinderRegister
- type FinderRegisterType
- type FunctionCode
- type Modbus
- type WriteReadBusFunc
Constants ¶
View Source
const InputRegisterAddressOffset = 30000
Variables ¶
View Source
var RegisterList7M38 = func() []FinderRegister { productRegisters := []FinderRegister{ NewFinderRegister( "Device Info", "ModelNumber", "Model Number", FinderTStr16, 30001, 30008, nil, -1, "", 600, ), NewFinderRegister( "Device Info", "SerialNumber", "Serial Number", FinderTStr8, 30009, 30012, nil, -1, "", 601, ), NewFinderRegister( "Device Info", "SoftwareReference", "Software Reference", FinderT1, 30013, 30013, nil, -1, "", 602, ), NewFinderRegister( "Device Info", "HardwareReference", "Hardware Reference", FinderTStr2, 30014, 30014, nil, -1, "", 603, ), NewFinderRegister( "Essential", "P1valid", "Phase 1 measurement", FinderT1, 30101, 30101, invalidEnum, 0, "", 30, ), NewFinderRegister( "Essential", "P2valid", "Phase 2 measurement", FinderT1, 30101, 30101, invalidEnum, 1, "", 31, ), NewFinderRegister( "Essential", "P3valid", "Phase 3 measurement", FinderT1, 30101, 30101, invalidEnum, 2, "", 32, ), } ret := make([]FinderRegister, 0, len(productRegisters)+len(RegisterList7M38FloatRegisters)) ret = append(ret, productRegisters...) for _, fr := range RegisterList7M38FloatRegisters { ret = append(ret, NewFinderRegister( fr.cat, fr.name, fr.desc, FinderTFloat, fr.addr, fr.addr+1, nil, -1, fr.unit, fr.sort, ), ) } return ret }
View Source
var RegisterList7M38FloatRegisters = []struct { addr uint16 sort int cat, name, desc, unit string }{ {32480, 620, "Device Info", "RunTime", "Run time", "s"}, {32484, 0, "Essential", "UAvgPN", "Uavg (phase to neutral)", "V"}, {32486, 1, "Essential", "UAvgPP", "Uavg (phase to phase)", "V"}, {32488, 100, "Current", "SI", "S I", "A"}, {32490, 25, "Essential", "Pt", "Active Power Total", "W"}, {32492, 200, "Power", "Qt", "Reactive Power Total", "var"}, {32494, 201, "Power", "St", "Apparent Power Total", "VA"}, {32496, 21, "Essential", "PFt", "Power Factor Total", ""}, {32498, 5, "Essential", "F", "Frequency", "Hz"}, {32500, 10, "Essential", "U1", "U1", "V"}, {32502, 11, "Essential", "U2", "U2", "V"}, {32504, 12, "Essential", "U3", "U3", "V"}, {32508, 300, "Phase Geometry", "U12", "U12", "V"}, {32510, 301, "Phase Geometry", "U23", "U23", "V"}, {32512, 302, "Phase Geometry", "U31", "U31", "V"}, {32516, 101, "Current", "I1", "I1", "A"}, {32518, 102, "Current", "I2", "I2", "A"}, {32520, 103, "Current", "I3", "I3", "A"}, {32524, 104, "Current", "INCalc", "I neutral (calculated)", "A"}, {32526, 105, "Current", "InMeas", "I neutral (measured)", "A"}, {32528, 106, "Current", "Iavg", "Iavg", "A"}, {32530, 20, "Essential", "P1", "Active Power Phase L1", "W"}, {32532, 21, "Essential", "P2", "Active Power Phase L2", "W"}, {32534, 22, "Essential", "P3", "Active Power Phase L3", "W"}, {32538, 202, "Power", "Q1", "Reactive Power Phase L1", "var"}, {32540, 203, "Power", "Q2", "Reactive Power Phase L2", "var"}, {32542, 204, "Power", "Q3", "Reactive Power Phase L3", "var"}, {32544, 205, "Power", "Qt", "Reactive Power Total", "var"}, {32546, 206, "Power", "S1", "Apparent Power Phase L1 ", "VA"}, {32548, 207, "Power", "S2", "Apparent Power Phase L2 ", "VA"}, {32550, 208, "Power", "S3", "Apparent Power Phase L3 ", "VA"}, {32552, 209, "Power", "St", "Apparent Power Total", "VA"}, {32554, 210, "Power", "PF1", "Power Factor Phase 1", ""}, {32556, 211, "Power", "PF2", "Power Factor Phase 2", ""}, {32558, 212, "Power", "PF3", "Power Factor Phase 3", ""}, {32560, 213, "Power", "PFt", "Power Factor Total", ""}, {32562, 214, "Power", "PF1", "CAP/IND P. F. Phase 1", ""}, {32564, 215, "Power", "PF2", "CAP/IND P. F. Phase 2", ""}, {32566, 216, "Power", "PF3", "CAP/IND P. F. Phase 3", ""}, {32568, 217, "Power", "PFt", "CAP/IND P. F. Total", ""}, {32570, 310, "Phase Geometry", "J1", "j1 (angle between U1 and I1)", "°"}, {32572, 311, "Phase Geometry", "J2", "j2 (angle between U2 and I2)", "°"}, {32574, 312, "Phase Geometry", "J3", "j3 (angle between U3 and I3) ", "°"}, {32576, 313, "Phase Geometry", "Jt", "Power Angle Total (atan2(Pt,Qt))", "°"}, {32578, 314, "Phase Geometry", "J12", "j12 (angle between U1 and U2)", "°"}, {32580, 315, "Phase Geometry", "J23", "j23 (angle between U2 and U3)", "°"}, {32582, 316, "Phase Geometry", "J31", "j31 (angle between U3 and U1)", "°"}, {32588, 400, "Distortion", "I1Thd", "I1 THD", "%"}, {32590, 401, "Distortion", "I2Thd", "I2 THD", "%"}, {32592, 402, "Distortion", "I3Thd", "I3 THD", "%"}, {32594, 403, "Distortion", "U1Thd", "U1 THD", "%"}, {32596, 404, "Distortion", "U2Thd", "U2 THD", "%"}, {32598, 405, "Distortion", "U3Thd", "U3 THD", "%"}, {32638, 500, "Energy Counter", "EcN1", "Energy Counter n1", "Wh"}, {32640, 501, "Energy Counter", "EcN2", "Energy Counter n2", "varh"}, {32642, 502, "Energy Counter", "EcN3", "Energy Counter n3", "Wh"}, {32644, 503, "Energy Counter", "EcN4", "Energy Counter n4", "varh"}, {32658, 40, "Essential", "InternalTemp", "Internal Temperature", "°C"}, {32985, 610, "Device Info", "Unom", "nominal phase voltage", "V"}, {32987, 611, "Device Info", "Inom", "nominal phase current", "A"}, {32989, 612, "Device Info", "Pnom", "nominal phase power", "W"}, {32991, 613, "Device Info", "Ptot", "nominal total power", "W"}, {32993, 614, "Device Info", "Itot", "nominal total current", "A"}, {32995, 615, "Device Info", "Fnom", "nominal frequency", "Hz"}, }
Functions ¶
func FinderReadEnumRegister ¶
func FinderReadEnumRegister(c *DeviceStruct, register FinderRegister) (v dataflow.Value, err error)
func FinderReadFloatRegister ¶
func FinderReadFloatRegister(c *DeviceStruct, register FinderRegister) (v dataflow.Value, err error)
func FinderReadInputRegisters ¶
func FinderReadInputRegisters(c *DeviceStruct, register FinderRegister) (response []byte, err error)
func FinderReadInputRegistersRaw ¶
func FinderReadInputRegistersRaw(c *DeviceStruct, register FinderRegister) (response []byte, err error)
func FinderReadRegister ¶
func FinderReadRegister(c *DeviceStruct, reg FinderRegister) (v dataflow.Value, err error)
func FinderReadStringRegister ¶
func FinderReadStringRegister(c *DeviceStruct, register FinderRegister) (v dataflow.Value, err error)
func FinderReadUInt16Register ¶
func FinderReadUInt16Register(c *DeviceStruct, register FinderRegister) (v dataflow.Value, err error)
func WaveshareReadRelays ¶
func WaveshareReadRelays(writeRead WriteReadBusFunc, deviceAddress byte) (state [8]bool, err error)
func WaveshareReadSoftwareRevision ¶
func WaveshareReadSoftwareRevision(writeRead WriteReadBusFunc, deviceAddress byte) (version string, err error)
func WaveshareWriteRelay ¶
func WaveshareWriteRelay(writeRead WriteReadBusFunc, deviceAddress byte, relayNr uint16, command Command) (err error)
Types ¶
type DeviceStruct ¶
func NewDevice ¶
func NewDevice( deviceConfig device.Config, modbusConfig Config, modbus Modbus, stateStorage *dataflow.ValueStorage, commandStorage *dataflow.ValueStorage, ) *DeviceStruct
func (*DeviceStruct) Model ¶
func (c *DeviceStruct) Model() string
type FinderRegister ¶
type FinderRegister struct {
dataflow.RegisterStruct
// contains filtered or unexported fields
}
func NewFinderRegister ¶
func NewFinderRegister( category, name, description string, registerType FinderRegisterType, addressBegin, addressEnd uint16, enum map[int]string, bit int, unit string, sort int, ) FinderRegister
func (FinderRegister) CountBytes ¶
func (r FinderRegister) CountBytes() int
func (FinderRegister) CountRegisters ¶
func (r FinderRegister) CountRegisters() int
type FinderRegisterType ¶
type FinderRegisterType int
const ( FinderT1 FinderRegisterType = iota FinderTStr2 FinderTStr8 FinderTStr16 FinderTFloat )
type FunctionCode ¶
type FunctionCode byte
const ( FinderFunctionReadHoldingResgisters FunctionCode = 0x03 FinderFunctionReadInputRegisters FunctionCode = 0x04 )
const ( )
type WriteReadBusFunc ¶
Click to show internal directories.
Click to hide internal directories.