blob: c4e10bc4490a158d1bc1a5e885eea4718482fe83 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package model
import (
"context"
"fmt"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/apache/plc4x/plc4go/spi/utils"
)
// Code generated by code-generation. DO NOT EDIT.
// MeasurementUnits is an enum
type MeasurementUnits uint8
type IMeasurementUnits interface {
fmt.Stringer
utils.LengthAware
utils.Serializable
}
const (
MeasurementUnits_CELSIUS MeasurementUnits = 0x00
MeasurementUnits_AMPS MeasurementUnits = 0x01
MeasurementUnits_ANGLE_DEGREES MeasurementUnits = 0x02
MeasurementUnits_COULOMB MeasurementUnits = 0x03
MeasurementUnits_BOOLEANLOGIC MeasurementUnits = 0x04
MeasurementUnits_FARADS MeasurementUnits = 0x05
MeasurementUnits_HENRYS MeasurementUnits = 0x06
MeasurementUnits_HERTZ MeasurementUnits = 0x07
MeasurementUnits_JOULES MeasurementUnits = 0x08
MeasurementUnits_KATAL MeasurementUnits = 0x09
MeasurementUnits_KG_PER_M3 MeasurementUnits = 0x0A
MeasurementUnits_KILOGRAMS MeasurementUnits = 0x0B
MeasurementUnits_LITRES MeasurementUnits = 0x0C
MeasurementUnits_LITRES_PER_HOUR MeasurementUnits = 0x0D
MeasurementUnits_LITRES_PER_MINUTE MeasurementUnits = 0x0E
MeasurementUnits_LITRES_PER_SECOND MeasurementUnits = 0x0F
MeasurementUnits_LUX MeasurementUnits = 0x10
MeasurementUnits_METRES MeasurementUnits = 0x11
MeasurementUnits_METRES_PER_MINUTE MeasurementUnits = 0x12
MeasurementUnits_METRES_PER_SECOND MeasurementUnits = 0x13
MeasurementUnits_METRES_PER_S_SQUARED MeasurementUnits = 0x14
MeasurementUnits_MOLE MeasurementUnits = 0x15
MeasurementUnits_NEWTON_METRE MeasurementUnits = 0x16
MeasurementUnits_NEWTONS MeasurementUnits = 0x17
MeasurementUnits_OHMS MeasurementUnits = 0x18
MeasurementUnits_PASCAL MeasurementUnits = 0x19
MeasurementUnits_PERCENT MeasurementUnits = 0x1A
MeasurementUnits_DECIBELS MeasurementUnits = 0x1B
MeasurementUnits_PPM MeasurementUnits = 0x1C
MeasurementUnits_RPM MeasurementUnits = 0x1D
MeasurementUnits_SECOND MeasurementUnits = 0x1E
MeasurementUnits_MINUTES MeasurementUnits = 0x1F
MeasurementUnits_HOURS MeasurementUnits = 0x20
MeasurementUnits_SIEVERTS MeasurementUnits = 0x21
MeasurementUnits_STERADIAN MeasurementUnits = 0x22
MeasurementUnits_TESLA MeasurementUnits = 0x23
MeasurementUnits_VOLTS MeasurementUnits = 0x24
MeasurementUnits_WATT_HOURS MeasurementUnits = 0x25
MeasurementUnits_WATTS MeasurementUnits = 0x26
MeasurementUnits_WEBERS MeasurementUnits = 0x27
MeasurementUnits_NO_UNITS MeasurementUnits = 0xFE
MeasurementUnits_CUSTOM MeasurementUnits = 0xFF
)
var MeasurementUnitsValues []MeasurementUnits
func init() {
_ = errors.New
MeasurementUnitsValues = []MeasurementUnits{
MeasurementUnits_CELSIUS,
MeasurementUnits_AMPS,
MeasurementUnits_ANGLE_DEGREES,
MeasurementUnits_COULOMB,
MeasurementUnits_BOOLEANLOGIC,
MeasurementUnits_FARADS,
MeasurementUnits_HENRYS,
MeasurementUnits_HERTZ,
MeasurementUnits_JOULES,
MeasurementUnits_KATAL,
MeasurementUnits_KG_PER_M3,
MeasurementUnits_KILOGRAMS,
MeasurementUnits_LITRES,
MeasurementUnits_LITRES_PER_HOUR,
MeasurementUnits_LITRES_PER_MINUTE,
MeasurementUnits_LITRES_PER_SECOND,
MeasurementUnits_LUX,
MeasurementUnits_METRES,
MeasurementUnits_METRES_PER_MINUTE,
MeasurementUnits_METRES_PER_SECOND,
MeasurementUnits_METRES_PER_S_SQUARED,
MeasurementUnits_MOLE,
MeasurementUnits_NEWTON_METRE,
MeasurementUnits_NEWTONS,
MeasurementUnits_OHMS,
MeasurementUnits_PASCAL,
MeasurementUnits_PERCENT,
MeasurementUnits_DECIBELS,
MeasurementUnits_PPM,
MeasurementUnits_RPM,
MeasurementUnits_SECOND,
MeasurementUnits_MINUTES,
MeasurementUnits_HOURS,
MeasurementUnits_SIEVERTS,
MeasurementUnits_STERADIAN,
MeasurementUnits_TESLA,
MeasurementUnits_VOLTS,
MeasurementUnits_WATT_HOURS,
MeasurementUnits_WATTS,
MeasurementUnits_WEBERS,
MeasurementUnits_NO_UNITS,
MeasurementUnits_CUSTOM,
}
}
func MeasurementUnitsByValue(value uint8) (enum MeasurementUnits, ok bool) {
switch value {
case 0x00:
return MeasurementUnits_CELSIUS, true
case 0x01:
return MeasurementUnits_AMPS, true
case 0x02:
return MeasurementUnits_ANGLE_DEGREES, true
case 0x03:
return MeasurementUnits_COULOMB, true
case 0x04:
return MeasurementUnits_BOOLEANLOGIC, true
case 0x05:
return MeasurementUnits_FARADS, true
case 0x06:
return MeasurementUnits_HENRYS, true
case 0x07:
return MeasurementUnits_HERTZ, true
case 0x08:
return MeasurementUnits_JOULES, true
case 0x09:
return MeasurementUnits_KATAL, true
case 0x0A:
return MeasurementUnits_KG_PER_M3, true
case 0x0B:
return MeasurementUnits_KILOGRAMS, true
case 0x0C:
return MeasurementUnits_LITRES, true
case 0x0D:
return MeasurementUnits_LITRES_PER_HOUR, true
case 0x0E:
return MeasurementUnits_LITRES_PER_MINUTE, true
case 0x0F:
return MeasurementUnits_LITRES_PER_SECOND, true
case 0x10:
return MeasurementUnits_LUX, true
case 0x11:
return MeasurementUnits_METRES, true
case 0x12:
return MeasurementUnits_METRES_PER_MINUTE, true
case 0x13:
return MeasurementUnits_METRES_PER_SECOND, true
case 0x14:
return MeasurementUnits_METRES_PER_S_SQUARED, true
case 0x15:
return MeasurementUnits_MOLE, true
case 0x16:
return MeasurementUnits_NEWTON_METRE, true
case 0x17:
return MeasurementUnits_NEWTONS, true
case 0x18:
return MeasurementUnits_OHMS, true
case 0x19:
return MeasurementUnits_PASCAL, true
case 0x1A:
return MeasurementUnits_PERCENT, true
case 0x1B:
return MeasurementUnits_DECIBELS, true
case 0x1C:
return MeasurementUnits_PPM, true
case 0x1D:
return MeasurementUnits_RPM, true
case 0x1E:
return MeasurementUnits_SECOND, true
case 0x1F:
return MeasurementUnits_MINUTES, true
case 0x20:
return MeasurementUnits_HOURS, true
case 0x21:
return MeasurementUnits_SIEVERTS, true
case 0x22:
return MeasurementUnits_STERADIAN, true
case 0x23:
return MeasurementUnits_TESLA, true
case 0x24:
return MeasurementUnits_VOLTS, true
case 0x25:
return MeasurementUnits_WATT_HOURS, true
case 0x26:
return MeasurementUnits_WATTS, true
case 0x27:
return MeasurementUnits_WEBERS, true
case 0xFE:
return MeasurementUnits_NO_UNITS, true
case 0xFF:
return MeasurementUnits_CUSTOM, true
}
return 0, false
}
func MeasurementUnitsByName(value string) (enum MeasurementUnits, ok bool) {
switch value {
case "CELSIUS":
return MeasurementUnits_CELSIUS, true
case "AMPS":
return MeasurementUnits_AMPS, true
case "ANGLE_DEGREES":
return MeasurementUnits_ANGLE_DEGREES, true
case "COULOMB":
return MeasurementUnits_COULOMB, true
case "BOOLEANLOGIC":
return MeasurementUnits_BOOLEANLOGIC, true
case "FARADS":
return MeasurementUnits_FARADS, true
case "HENRYS":
return MeasurementUnits_HENRYS, true
case "HERTZ":
return MeasurementUnits_HERTZ, true
case "JOULES":
return MeasurementUnits_JOULES, true
case "KATAL":
return MeasurementUnits_KATAL, true
case "KG_PER_M3":
return MeasurementUnits_KG_PER_M3, true
case "KILOGRAMS":
return MeasurementUnits_KILOGRAMS, true
case "LITRES":
return MeasurementUnits_LITRES, true
case "LITRES_PER_HOUR":
return MeasurementUnits_LITRES_PER_HOUR, true
case "LITRES_PER_MINUTE":
return MeasurementUnits_LITRES_PER_MINUTE, true
case "LITRES_PER_SECOND":
return MeasurementUnits_LITRES_PER_SECOND, true
case "LUX":
return MeasurementUnits_LUX, true
case "METRES":
return MeasurementUnits_METRES, true
case "METRES_PER_MINUTE":
return MeasurementUnits_METRES_PER_MINUTE, true
case "METRES_PER_SECOND":
return MeasurementUnits_METRES_PER_SECOND, true
case "METRES_PER_S_SQUARED":
return MeasurementUnits_METRES_PER_S_SQUARED, true
case "MOLE":
return MeasurementUnits_MOLE, true
case "NEWTON_METRE":
return MeasurementUnits_NEWTON_METRE, true
case "NEWTONS":
return MeasurementUnits_NEWTONS, true
case "OHMS":
return MeasurementUnits_OHMS, true
case "PASCAL":
return MeasurementUnits_PASCAL, true
case "PERCENT":
return MeasurementUnits_PERCENT, true
case "DECIBELS":
return MeasurementUnits_DECIBELS, true
case "PPM":
return MeasurementUnits_PPM, true
case "RPM":
return MeasurementUnits_RPM, true
case "SECOND":
return MeasurementUnits_SECOND, true
case "MINUTES":
return MeasurementUnits_MINUTES, true
case "HOURS":
return MeasurementUnits_HOURS, true
case "SIEVERTS":
return MeasurementUnits_SIEVERTS, true
case "STERADIAN":
return MeasurementUnits_STERADIAN, true
case "TESLA":
return MeasurementUnits_TESLA, true
case "VOLTS":
return MeasurementUnits_VOLTS, true
case "WATT_HOURS":
return MeasurementUnits_WATT_HOURS, true
case "WATTS":
return MeasurementUnits_WATTS, true
case "WEBERS":
return MeasurementUnits_WEBERS, true
case "NO_UNITS":
return MeasurementUnits_NO_UNITS, true
case "CUSTOM":
return MeasurementUnits_CUSTOM, true
}
return 0, false
}
func MeasurementUnitsKnows(value uint8) bool {
for _, typeValue := range MeasurementUnitsValues {
if uint8(typeValue) == value {
return true
}
}
return false
}
func CastMeasurementUnits(structType any) MeasurementUnits {
castFunc := func(typ any) MeasurementUnits {
if sMeasurementUnits, ok := typ.(MeasurementUnits); ok {
return sMeasurementUnits
}
return 0
}
return castFunc(structType)
}
func (m MeasurementUnits) GetLengthInBits(ctx context.Context) uint16 {
return 8
}
func (m MeasurementUnits) GetLengthInBytes(ctx context.Context) uint16 {
return m.GetLengthInBits(ctx) / 8
}
func MeasurementUnitsParse(ctx context.Context, theBytes []byte) (MeasurementUnits, error) {
return MeasurementUnitsParseWithBuffer(ctx, utils.NewReadBufferByteBased(theBytes))
}
func MeasurementUnitsParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuffer) (MeasurementUnits, error) {
log := zerolog.Ctx(ctx)
_ = log
val, err := /*TODO: migrate me*/ /*TODO: migrate me*/ readBuffer.ReadUint8("MeasurementUnits", 8)
if err != nil {
return 0, errors.Wrap(err, "error reading MeasurementUnits")
}
if enum, ok := MeasurementUnitsByValue(val); !ok {
log.Debug().Interface("val", val).Msg("no value val found for MeasurementUnits")
return MeasurementUnits(val), nil
} else {
return enum, nil
}
}
func (e MeasurementUnits) Serialize() ([]byte, error) {
wb := utils.NewWriteBufferByteBased()
if err := e.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
return nil, err
}
return wb.GetBytes(), nil
}
func (e MeasurementUnits) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
log := zerolog.Ctx(ctx)
_ = log
return /*TODO: migrate me*/ writeBuffer.WriteUint8("MeasurementUnits", 8, uint8(uint8(e)), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
}
func (e MeasurementUnits) GetValue() uint8 {
return uint8(e)
}
// PLC4XEnumName returns the name that is used in code to identify this enum
func (e MeasurementUnits) PLC4XEnumName() string {
switch e {
case MeasurementUnits_CELSIUS:
return "CELSIUS"
case MeasurementUnits_AMPS:
return "AMPS"
case MeasurementUnits_ANGLE_DEGREES:
return "ANGLE_DEGREES"
case MeasurementUnits_COULOMB:
return "COULOMB"
case MeasurementUnits_BOOLEANLOGIC:
return "BOOLEANLOGIC"
case MeasurementUnits_FARADS:
return "FARADS"
case MeasurementUnits_HENRYS:
return "HENRYS"
case MeasurementUnits_HERTZ:
return "HERTZ"
case MeasurementUnits_JOULES:
return "JOULES"
case MeasurementUnits_KATAL:
return "KATAL"
case MeasurementUnits_KG_PER_M3:
return "KG_PER_M3"
case MeasurementUnits_KILOGRAMS:
return "KILOGRAMS"
case MeasurementUnits_LITRES:
return "LITRES"
case MeasurementUnits_LITRES_PER_HOUR:
return "LITRES_PER_HOUR"
case MeasurementUnits_LITRES_PER_MINUTE:
return "LITRES_PER_MINUTE"
case MeasurementUnits_LITRES_PER_SECOND:
return "LITRES_PER_SECOND"
case MeasurementUnits_LUX:
return "LUX"
case MeasurementUnits_METRES:
return "METRES"
case MeasurementUnits_METRES_PER_MINUTE:
return "METRES_PER_MINUTE"
case MeasurementUnits_METRES_PER_SECOND:
return "METRES_PER_SECOND"
case MeasurementUnits_METRES_PER_S_SQUARED:
return "METRES_PER_S_SQUARED"
case MeasurementUnits_MOLE:
return "MOLE"
case MeasurementUnits_NEWTON_METRE:
return "NEWTON_METRE"
case MeasurementUnits_NEWTONS:
return "NEWTONS"
case MeasurementUnits_OHMS:
return "OHMS"
case MeasurementUnits_PASCAL:
return "PASCAL"
case MeasurementUnits_PERCENT:
return "PERCENT"
case MeasurementUnits_DECIBELS:
return "DECIBELS"
case MeasurementUnits_PPM:
return "PPM"
case MeasurementUnits_RPM:
return "RPM"
case MeasurementUnits_SECOND:
return "SECOND"
case MeasurementUnits_MINUTES:
return "MINUTES"
case MeasurementUnits_HOURS:
return "HOURS"
case MeasurementUnits_SIEVERTS:
return "SIEVERTS"
case MeasurementUnits_STERADIAN:
return "STERADIAN"
case MeasurementUnits_TESLA:
return "TESLA"
case MeasurementUnits_VOLTS:
return "VOLTS"
case MeasurementUnits_WATT_HOURS:
return "WATT_HOURS"
case MeasurementUnits_WATTS:
return "WATTS"
case MeasurementUnits_WEBERS:
return "WEBERS"
case MeasurementUnits_NO_UNITS:
return "NO_UNITS"
case MeasurementUnits_CUSTOM:
return "CUSTOM"
}
return fmt.Sprintf("Unknown(%v)", uint8(e))
}
func (e MeasurementUnits) String() string {
return e.PLC4XEnumName()
}