mirror of
https://github.com/thelsing/knx.git
synced 2024-12-18 19:08:18 +01:00
Start with implementing subdpts
This commit is contained in:
parent
60b414bab2
commit
c77490ad62
@ -3,9 +3,6 @@
|
|||||||
#include "../group_object.h"
|
#include "../group_object.h"
|
||||||
namespace Knx
|
namespace Knx
|
||||||
{
|
{
|
||||||
#define DPT_Switch Dpt(1, 1)
|
|
||||||
#define DPT_Bool Dpt(1, 2)
|
|
||||||
#define DPT_Enable Dpt(1, 3)
|
|
||||||
#define DPT_Ramp Dpt(1, 4)
|
#define DPT_Ramp Dpt(1, 4)
|
||||||
#define DPT_Alarm Dpt(1, 5)
|
#define DPT_Alarm Dpt(1, 5)
|
||||||
#define DPT_BinaryValue Dpt(1, 6)
|
#define DPT_BinaryValue Dpt(1, 6)
|
||||||
|
@ -2,9 +2,12 @@
|
|||||||
|
|
||||||
#include "dptconvert.h"
|
#include "dptconvert.h"
|
||||||
|
|
||||||
Knx::Dpt1::Dpt1() {}
|
Knx::Dpt1::Dpt1(unsigned short subgroup /*= 0*/) : Dpt(1, subgroup) {}
|
||||||
|
|
||||||
Knx::Dpt1::Dpt1(bool value) : _value(value) {}
|
Knx::Dpt1::Dpt1(bool value) : Dpt1()
|
||||||
|
{
|
||||||
|
_value = value;
|
||||||
|
}
|
||||||
|
|
||||||
Knx::Go_SizeCode Knx::Dpt1::size() const
|
Knx::Go_SizeCode Knx::Dpt1::size() const
|
||||||
{
|
{
|
||||||
@ -26,7 +29,7 @@ void Knx::Dpt1::value(bool value)
|
|||||||
_value = value;
|
_value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Knx::Dpt1::value()
|
bool Knx::Dpt1::value() const
|
||||||
{
|
{
|
||||||
return _value;
|
return _value;
|
||||||
}
|
}
|
||||||
@ -42,3 +45,75 @@ Knx::Dpt1& Knx::Dpt1::operator=(const bool value)
|
|||||||
_value = value;
|
_value = value;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Knx::DPT_Switch::DPT_Switch() : Dpt1()
|
||||||
|
{
|
||||||
|
subGroup = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
Knx::DPT_Switch::DPT_Switch(SwitchValue value) : Dpt1(value == On)
|
||||||
|
{
|
||||||
|
subGroup = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Knx::DPT_Switch::value(SwitchValue value)
|
||||||
|
{
|
||||||
|
Dpt1::value(value == On);
|
||||||
|
}
|
||||||
|
|
||||||
|
Knx::DPT_Switch::SwitchValue Knx::DPT_Switch::value() const
|
||||||
|
{
|
||||||
|
return Dpt1::value() ? On : Off;
|
||||||
|
}
|
||||||
|
|
||||||
|
Knx::DPT_Switch::operator Knx::DPT_Switch::SwitchValue() const
|
||||||
|
{
|
||||||
|
return value();
|
||||||
|
}
|
||||||
|
|
||||||
|
Knx::DPT_Switch& Knx::DPT_Switch::operator=(const Knx::DPT_Switch::SwitchValue value)
|
||||||
|
{
|
||||||
|
Dpt1::value(value == On);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
Knx::DPT_Bool::DPT_Bool() : Dpt1()
|
||||||
|
{
|
||||||
|
subGroup = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
Knx::DPT_Bool::DPT_Bool(bool value) : DPT_Bool()
|
||||||
|
{
|
||||||
|
Dpt1::value(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
Knx::DPT_Enable::DPT_Enable() : Dpt1()
|
||||||
|
{
|
||||||
|
subGroup = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
Knx::DPT_Enable::DPT_Enable(EnableValue value) : Dpt1(value == Enable)
|
||||||
|
{
|
||||||
|
subGroup = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Knx::DPT_Enable::value(EnableValue value)
|
||||||
|
{
|
||||||
|
Dpt1::value(value == Enable);
|
||||||
|
}
|
||||||
|
|
||||||
|
Knx::DPT_Enable::EnableValue Knx::DPT_Enable::value() const
|
||||||
|
{
|
||||||
|
return Dpt1::value() ? Enable : Disable;
|
||||||
|
}
|
||||||
|
|
||||||
|
Knx::DPT_Enable::operator Knx::DPT_Enable::EnableValue() const
|
||||||
|
{
|
||||||
|
return value();
|
||||||
|
}
|
||||||
|
|
||||||
|
Knx::DPT_Enable& Knx::DPT_Enable::operator=(const Knx::DPT_Enable::EnableValue value)
|
||||||
|
{
|
||||||
|
Dpt1::value(value == Enable);
|
||||||
|
return *this;
|
||||||
|
}
|
@ -5,7 +5,7 @@ namespace Knx
|
|||||||
class Dpt1: public Dpt
|
class Dpt1: public Dpt
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Dpt1();
|
Dpt1(unsigned short subgroup = 0);
|
||||||
Dpt1(bool value);
|
Dpt1(bool value);
|
||||||
Go_SizeCode size() const override;
|
Go_SizeCode size() const override;
|
||||||
|
|
||||||
@ -13,10 +13,49 @@ namespace Knx
|
|||||||
virtual void decode(uint8_t* data) override;
|
virtual void decode(uint8_t* data) override;
|
||||||
|
|
||||||
void value(bool value);
|
void value(bool value);
|
||||||
bool value();
|
bool value() const;
|
||||||
operator bool() const;
|
operator bool() const;
|
||||||
Dpt1& operator=(const bool value);
|
Dpt1& operator=(const bool value);
|
||||||
private:
|
private:
|
||||||
bool _value;
|
bool _value;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class DPT_Switch : public Dpt1
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
enum SwitchValue
|
||||||
|
{
|
||||||
|
Off, On
|
||||||
|
};
|
||||||
|
|
||||||
|
DPT_Switch();
|
||||||
|
DPT_Switch(SwitchValue value);
|
||||||
|
void value(SwitchValue value);
|
||||||
|
SwitchValue value() const;
|
||||||
|
operator SwitchValue() const;
|
||||||
|
DPT_Switch& operator=(const SwitchValue value);
|
||||||
|
};
|
||||||
|
|
||||||
|
class DPT_Bool : public Dpt1
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
DPT_Bool();
|
||||||
|
DPT_Bool(bool value);
|
||||||
|
};
|
||||||
|
|
||||||
|
class DPT_Enable : public Dpt1
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
enum EnableValue
|
||||||
|
{
|
||||||
|
Disable, Enable
|
||||||
|
};
|
||||||
|
|
||||||
|
DPT_Enable();
|
||||||
|
DPT_Enable(EnableValue value);
|
||||||
|
void value(EnableValue value);
|
||||||
|
EnableValue value() const;
|
||||||
|
operator EnableValue() const;
|
||||||
|
DPT_Enable& operator=(const EnableValue value);
|
||||||
|
};
|
||||||
}
|
}
|
@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
#include "dptconvert.h"
|
#include "dptconvert.h"
|
||||||
|
|
||||||
Knx::Dpt9::Dpt9() {}
|
Knx::Dpt9::Dpt9() { mainGroup = 9; }
|
||||||
|
|
||||||
Knx::Dpt9::Dpt9(float value) : _value(value) {}
|
Knx::Dpt9::Dpt9(float value) : _value(value) { mainGroup = 9; }
|
||||||
|
|
||||||
Knx::Go_SizeCode Knx::Dpt9::size() const
|
Knx::Go_SizeCode Knx::Dpt9::size() const
|
||||||
{
|
{
|
||||||
@ -29,7 +29,7 @@ void Knx::Dpt9::value(float value)
|
|||||||
_value = value;
|
_value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Knx::Dpt9::value()
|
float Knx::Dpt9::value() const
|
||||||
{
|
{
|
||||||
return _value;
|
return _value;
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ namespace Knx
|
|||||||
virtual void decode(uint8_t* data) override;
|
virtual void decode(uint8_t* data) override;
|
||||||
|
|
||||||
void value(float value);
|
void value(float value);
|
||||||
bool value();
|
float value() const;
|
||||||
operator float() const;
|
operator float() const;
|
||||||
Dpt9& operator=(const float value);
|
Dpt9& operator=(const float value);
|
||||||
private:
|
private:
|
||||||
|
Loading…
Reference in New Issue
Block a user