HAN-FUN API  1.5.3
This project provides the common implementation of ULE Alliance's HAN-FUN application protocol.
HF::Interfaces::ColourControl::XY_Colour Struct Reference

Helper class that supports the XY colour mode. More...

#include <colour_control.h>

+ Collaboration diagram for HF::Interfaces::ColourControl::XY_Colour:

Public Member Functions

 XY_Colour (uint16_t X, uint16_t Y)
 Constructor. More...
 
uint16_t size () const
 Number bytes needed to serialize the message. More...
 
uint16_t pack (Common::ByteArray &array, uint16_t offset=0) const
 Write the object on to a ByteArray so it can be sent over the network. More...
 
uint16_t unpack (const Common::ByteArray &array, uint16_t offset=0)
 Read a message from a ByteArray. More...
 
int compare (const XY_Colour &other) const
 Compare this attribute with the given attribute in other. More...
 
float changed (const XY_Colour &other) const
 This method is used to get the percentage of change that the attribute has in relation to the value present in other. More...
 
bool operator== (const XY_Colour &other) const
 Operator equal.
 
bool operator!= (const XY_Colour &other) const
 Operator not equal.
 

Static Public Attributes

static constexpr uint16_t min_size
 Minimum pack/unpack required data size.
 

Detailed Description

Helper class that supports the XY colour mode.

This class implements the necessary functions for message serialization.

Definition at line 248 of file colour_control.h.

Constructor & Destructor Documentation

◆ XY_Colour()

HF::Interfaces::ColourControl::XY_Colour::XY_Colour ( uint16_t  X,
uint16_t  Y 
)
inline

Constructor.

Parameters
[in]XX colour value.
[in]YY colour value.

Definition at line 261 of file colour_control.h.

261  : X(X), Y(Y)
262  {}

Member Function Documentation

◆ changed()

float HF::Interfaces::ColourControl::XY_Colour::changed ( const XY_Colour other) const
inline

This method is used to get the percentage of change that the attribute has in relation to the value present in other.

Parameters
[in]otherattribute holding a previous value.
Returns
float indicating the percentage of change.

Definition at line 301 of file colour_control.h.

302  {
303  if (this->X != other.X)
304  {
305  return (100 * (this->X - other.X) / static_cast<float>(this->X));
306  }
307  else
308  {
309  if (this->Y != other.Y)
310  {
311  return (100 * (this->Y - other.Y) / static_cast<float>(this->Y));
312  }
313  else
314  {
315  return 0.0f;
316  }
317  }
318  }

◆ compare()

int HF::Interfaces::ColourControl::XY_Colour::compare ( const XY_Colour other) const
inline

Compare this attribute with the given attribute in other.

This method should return < 0 if this attribute is less that, 0 if it is equal and > 0 if greater that the other attribute.

Parameters
[in]otherattribute to compare to.
Return values
<0if attribute less than other;
0if attribute equal to other;
>0if attribute greater than other.

Definition at line 281 of file colour_control.h.

282  {
283  if (this->X != other.X)
284  {
285  return (this->X - other.X);
286  }
287  else
288  {
289  if (this->Y != other.Y)
290  {
291  return (this->Y - other.Y);
292  }
293  else
294  {
295  return 0;
296  }
297  }
298  }

◆ pack()

uint16_t HF::Interfaces::ColourControl::XY_Colour::pack ( Common::ByteArray array,
uint16_t  offset = 0 
) const

Write the object on to a ByteArray so it can be sent over the network.

The buffer passed in MUST have enough size to hold the serialized object, e.g.,

Serializable obj;
ByteArray payload(obj.size());
obj.pack(payload);
Parameters
[in,out]arrayByteArray reference to write the object to.
[in]offsetoffset to start writing to.
Returns
the number of bytes written.

◆ size()

uint16_t HF::Interfaces::ColourControl::XY_Colour::size ( ) const
inline

Number bytes needed to serialize the message.

Returns
number of bytes the message requires to be serialized.

Definition at line 269 of file colour_control.h.

References min_size.

270  {
271  return min_size;
272  }
static constexpr uint16_t min_size
Minimum pack/unpack required data size.

◆ unpack()

uint16_t HF::Interfaces::ColourControl::XY_Colour::unpack ( const Common::ByteArray array,
uint16_t  offset = 0 
)

Read a message from a ByteArray.

Parameters
[in]arrayByteArray reference to read the message from.
[in]offsetoffset to start reading from.
Returns
the number of bytes read.

The documentation for this struct was generated from the following file: