Class ElementToChannelConverter
java.lang.Object
io.openems.edge.bridge.modbus.api.ElementToChannelConverter
- Direct Known Subclasses:
ElementToChannelScaleFactorConverter
,IgnoreZeroConverter
Provides Functions to convert from Element to Channel and back. Also has some
static convenience functions to facilitate conversion.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final ElementToChannelConverter
Converts directly 1-to-1 between Element and Channel.static final ElementToChannelConverter
Inverts the value from Element to Channel.static final ElementToChannelConverter
Converts only negative values from Element to Channel and inverts them (makes the value positive).static final ElementToChannelConverter
Converts only positive values from Element to Channel.static final ElementToChannelConverter
Applies a scale factor of 1.static final ElementToChannelConverter
AppliesSCALE_FACTOR_1
and CONVERT_NEGATIVE_AND_INVERT.static final ElementToChannelConverter
AppliesSCALE_FACTOR_1
and CONVERT_POSITIVE.static final ElementToChannelConverter
Applies a scale factor of 2.static final ElementToChannelConverter
AppliesSCALE_FACTOR_2
and INVERT.static ElementToChannelConverter
AppliesSCALE_FACTOR_2_AND_KEEP_NEGATIVE
and @seeINVERT
.static final ElementToChannelConverter
AppliesSCALE_FACTOR_2
and @seeKEEP_NEGATIVE_AND_INVERT
.static final ElementToChannelConverter
AppliesSCALE_FACTOR_2
and CONVERT_POSITIVE.static final ElementToChannelConverter
Applies a scale factor of 3.static final ElementToChannelConverter
Applies a scale factor of -1.static final ElementToChannelConverter
Applies a scale factor of -2.static final ElementToChannelConverter
Applies a scale factor of -3. -
Constructor Summary
ConstructorsConstructorDescriptionElementToChannelConverter
(Function<Object, Object> elementToChannel) This constructs a forward-only converter from Element to Channel.ElementToChannelConverter
(Function<Object, Object> elementToChannel, Function<Object, Object> channelToElement) This constructs and back-and-forth converter from Element to Channel and back. -
Method Summary
Modifier and TypeMethodDescriptionstatic final ElementToChannelConverter
ADD
(double value) Add the given value to the Channel value.static ElementToChannelConverter
chain
(ElementToChannelConverter... converters) Sets the chain with givenElementToChannelConverters
.channelToElement
(Object value) Convert a Channel value to an Element value.static final ElementToChannelConverter
DIVIDE
(double scale) Divide the channel value with the given scale.elementToChannel
(Object value) Convert an Element value to a Channel value.static ElementToChannelConverter
INVERT_IF_TRUE
(boolean invert) Converts depending on the given parameter.static final ElementToChannelConverter
MULTIPLY
(double factor) Multiply the given factor with the channel value.static final ElementToChannelConverter
SCALE_FACTOR_1_AND_INVERT_IF_TRUE
(boolean invert) AppliesSCALE_FACTOR_1
and INVERT_IF_TRUE.static final ElementToChannelConverter
SCALE_FACTOR_2_AND_INVERT_IF_TRUE
(boolean invert) AppliesSCALE_FACTOR_2
and INVERT_IF_TRUE.static final ElementToChannelConverter
SCALE_FACTOR_3_AND_INVERT_IF_TRUE
(boolean invert) AppliesSCALE_FACTOR_3
and INVERT_IF_TRUE.static final ElementToChannelConverter
SCALE_FACTOR_MINUS_1_AND_INVERT_IF_TRUE
(boolean invert) AppliesSCALE_FACTOR_MINUS_1
and INVERT_IF_TRUE.static ElementToChannelConverter
SET_ZERO_IF_TRUE
(boolean setZero) Sets the value to 'zero' if parameter is true; otherwiseDIRECT_1_TO_1
.static final ElementToChannelConverter
SUBTRACT
(double value) Subtract the given value to the Channel value.
-
Field Details
-
DIRECT_1_TO_1
Converts directly 1-to-1 between Element and Channel. -
SCALE_FACTOR_MINUS_1
Applies a scale factor of -1. Converts value [1] to [0.1].- See Also:
-
SCALE_FACTOR_MINUS_2
Applies a scale factor of -2. Converts value [1] to [0.01].- See Also:
-
SCALE_FACTOR_MINUS_3
Applies a scale factor of -3. Converts value [1] to [0.001].- See Also:
-
SCALE_FACTOR_1
Applies a scale factor of 1. Converts value [1] to [10].- See Also:
-
SCALE_FACTOR_2
Applies a scale factor of 2. Converts value [1] to [100].- See Also:
-
SCALE_FACTOR_3
Applies a scale factor of 3. Converts value [1] to [1000].- See Also:
-
KEEP_POSITIVE
Converts only positive values from Element to Channel. -
INVERT
Inverts the value from Element to Channel. -
KEEP_NEGATIVE_AND_INVERT
Converts only negative values from Element to Channel and inverts them (makes the value positive). -
SCALE_FACTOR_1_AND_KEEP_POSITIVE
AppliesSCALE_FACTOR_1
and CONVERT_POSITIVE. -
SCALE_FACTOR_2_AND_INVERT
AppliesSCALE_FACTOR_2
and INVERT. -
SCALE_FACTOR_1_AND_KEEP_NEGATIVE_AND_INVERT
AppliesSCALE_FACTOR_1
and CONVERT_NEGATIVE_AND_INVERT. -
SCALE_FACTOR_2_AND_KEEP_POSITIVE
AppliesSCALE_FACTOR_2
and CONVERT_POSITIVE. -
SCALE_FACTOR_2_AND_KEEP_NEGATIVE_AND_INVERT
AppliesSCALE_FACTOR_2
and @seeKEEP_NEGATIVE_AND_INVERT
. -
SCALE_FACTOR_2_AND_KEEP_NEGATIVE
AppliesSCALE_FACTOR_2_AND_KEEP_NEGATIVE
and @seeINVERT
.
-
-
Constructor Details
-
ElementToChannelConverter
public ElementToChannelConverter(Function<Object, Object> elementToChannel, Function<Object, Object> channelToElement) This constructs and back-and-forth converter from Element to Channel and back.- Parameters:
elementToChannel
- from Element to ChannelchannelToElement
- from Channel to Element
-
ElementToChannelConverter
This constructs a forward-only converter from Element to Channel. Back-conversion throws an Exception.- Parameters:
elementToChannel
- Element to Channel
-
-
Method Details
-
SCALE_FACTOR_1_AND_INVERT_IF_TRUE
AppliesSCALE_FACTOR_1
and INVERT_IF_TRUE.- Parameters:
invert
- input value forINVERT_IF_TRUE(boolean)
- Returns:
- the
ElementToChannelConverter
-
SCALE_FACTOR_2_AND_INVERT_IF_TRUE
AppliesSCALE_FACTOR_2
and INVERT_IF_TRUE.- Parameters:
invert
- input value forINVERT_IF_TRUE(boolean)
- Returns:
- the
ElementToChannelConverter
-
SCALE_FACTOR_3_AND_INVERT_IF_TRUE
AppliesSCALE_FACTOR_3
and INVERT_IF_TRUE.- Parameters:
invert
- input value forINVERT_IF_TRUE(boolean)
- Returns:
- the
ElementToChannelConverter
-
SCALE_FACTOR_MINUS_1_AND_INVERT_IF_TRUE
public static final ElementToChannelConverter SCALE_FACTOR_MINUS_1_AND_INVERT_IF_TRUE(boolean invert) AppliesSCALE_FACTOR_MINUS_1
and INVERT_IF_TRUE.- Parameters:
invert
- input value forINVERT_IF_TRUE(boolean)
- Returns:
- the
ElementToChannelConverter
-
elementToChannel
Convert an Element value to a Channel value. If the value can or should not be converted, this method returns null.- Parameters:
value
- the Element value- Returns:
- the converted value or null
-
channelToElement
Convert a Channel value to an Element value. If the value can or should not be converted, this method returns null.- Parameters:
value
- the Channel value- Returns:
- the converted value or null
-
SET_ZERO_IF_TRUE
Sets the value to 'zero' if parameter is true; otherwiseDIRECT_1_TO_1
.- true: set zero
- false: apply
DIRECT_1_TO_1
- Parameters:
setZero
- true to set to null- Returns:
- the
ElementToChannelConverter
-
INVERT_IF_TRUE
Converts depending on the given parameter.- true: invert value
- false: keep value (1-to-1)
- Parameters:
invert
- true if Converter should invert- Returns:
- the
ElementToChannelConverter
-
chain
Sets the chain with givenElementToChannelConverters
.- Parameters:
converters
- to be applied as chain one after the other.- Returns:
ElementToChannelConverter
after applied all converters.
-
MULTIPLY
Multiply the given factor with the channel value.- Parameters:
factor
- the value to be applied to the Channel value.- Returns:
ElementToChannelConverter
-
DIVIDE
Divide the channel value with the given scale.- Parameters:
scale
- the value to be applied to the Channel value.- Returns:
ElementToChannelConverter
-
ADD
Add the given value to the Channel value.- Parameters:
value
- to add to the Channel value.- Returns:
ElementToChannelConverter
-
SUBTRACT
Subtract the given value to the Channel value.- Parameters:
value
- to subtract to the Channel value.- Returns:
ElementToChannelConverter
-