From cdaf25c3477fd110bffcbe1bda8206304d90e245 Mon Sep 17 00:00:00 2001 From: Luigi Luz Date: Wed, 8 Jan 2020 10:02:03 -0300 Subject: [PATCH 1/2] Add KNoT Type ID acceleration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add KNoT Type ID acceleration using m/s² as unit. --- src/knot_protocol.c | 5 ++++- src/knot_types.h | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/knot_protocol.c b/src/knot_protocol.c index 22ea1c9..efbe20e 100644 --- a/src/knot_protocol.c +++ b/src/knot_protocol.c @@ -96,6 +96,8 @@ UNIT_MASK(KNOT_UNIT_ENERGY_CAL) | \ UNIT_MASK(KNOT_UNIT_ENERGY_KCAL)) +#define UNIT_ACCELERATION_MASK (UNIT_MASK(KNOT_UNIT_ACCELERATION_MS2)) + #define TYPE_ID_MASK(type) (type & 0x000F) static const struct schema { @@ -123,7 +125,8 @@ static const struct schema { {KNOT_VALUE_TYPE_FLOAT, UNIT_LONG_MASK }, {KNOT_VALUE_TYPE_INT, UNIT_SPEED_MASK }, {KNOT_VALUE_TYPE_FLOAT, UNIT_VOLFLOW_MASK }, - {KNOT_VALUE_TYPE_INT, UNIT_ENERGY_MASK } + {KNOT_VALUE_TYPE_INT, UNIT_ENERGY_MASK }, + {KNOT_VALUE_TYPE_FLOAT, UNIT_ACCELERATION_MASK } }; static const uint8_t logic_types[] = { diff --git a/src/knot_types.h b/src/knot_types.h index 214e747..0002cac 100644 --- a/src/knot_types.h +++ b/src/knot_types.h @@ -42,9 +42,10 @@ #define KNOT_TYPE_ID_SPEED 0x0013 #define KNOT_TYPE_ID_VOLUMEFLOW 0x0014 #define KNOT_TYPE_ID_ENERGY 0x0015 +#define KNOT_TYPE_ID_ACCELERATION 0x0016 // MAX TypeID for basic units -#define KNOT_TYPE_ID_BASIC_MAX (KNOT_TYPE_ID_ENERGY+1) +#define KNOT_TYPE_ID_BASIC_MAX (KNOT_TYPE_ID_ACCELERATION+1) // TypeIDs for logical units #define KNOT_TYPE_ID_PRESENCE 0xFFF0 @@ -127,6 +128,7 @@ #define KNOT_UNIT_ENERGY_KWH 0x04 #define KNOT_UNIT_ENERGY_CAL 0x05 #define KNOT_UNIT_ENERGY_KCAL 0x06 +#define KNOT_UNIT_ACCELERATION_MS2 0X01 // definition of value type #define KNOT_VALUE_TYPE_INT 0x01 From d19fb92009043419e752742a873ffbe7621c002d Mon Sep 17 00:00:00 2001 From: Luigi Luz Date: Wed, 8 Jan 2020 10:14:12 -0300 Subject: [PATCH 2/2] Add KNoT Type ID angular velocity Add angular velocity KNOT Type ID with units rad/seg and deg/seg. --- src/knot_protocol.c | 6 +++++- src/knot_types.h | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/knot_protocol.c b/src/knot_protocol.c index efbe20e..38cb8c3 100644 --- a/src/knot_protocol.c +++ b/src/knot_protocol.c @@ -98,6 +98,9 @@ #define UNIT_ACCELERATION_MASK (UNIT_MASK(KNOT_UNIT_ACCELERATION_MS2)) +#define UNIT_ANG_VEL_MASK (UNIT_MASK(KNOT_UNIT_ANGULAR_VELOCITY_RADSEG) | \ + UNIT_MASK(KNOT_UNIT_ANGULAR_VELOCITY_DEGSEG)) + #define TYPE_ID_MASK(type) (type & 0x000F) static const struct schema { @@ -126,7 +129,8 @@ static const struct schema { {KNOT_VALUE_TYPE_INT, UNIT_SPEED_MASK }, {KNOT_VALUE_TYPE_FLOAT, UNIT_VOLFLOW_MASK }, {KNOT_VALUE_TYPE_INT, UNIT_ENERGY_MASK }, - {KNOT_VALUE_TYPE_FLOAT, UNIT_ACCELERATION_MASK } + {KNOT_VALUE_TYPE_FLOAT, UNIT_ACCELERATION_MASK }, + {KNOT_VALUE_TYPE_FLOAT, UNIT_ANG_VEL_MASK} }; static const uint8_t logic_types[] = { diff --git a/src/knot_types.h b/src/knot_types.h index 0002cac..7e1087d 100644 --- a/src/knot_types.h +++ b/src/knot_types.h @@ -43,9 +43,10 @@ #define KNOT_TYPE_ID_VOLUMEFLOW 0x0014 #define KNOT_TYPE_ID_ENERGY 0x0015 #define KNOT_TYPE_ID_ACCELERATION 0x0016 +#define KNOT_TYPE_ID_ANGULAR_VELOCITY 0x0017 // MAX TypeID for basic units -#define KNOT_TYPE_ID_BASIC_MAX (KNOT_TYPE_ID_ACCELERATION+1) +#define KNOT_TYPE_ID_BASIC_MAX (KNOT_TYPE_ID_ANGULAR_VELOCITY+1) // TypeIDs for logical units #define KNOT_TYPE_ID_PRESENCE 0xFFF0 @@ -129,6 +130,8 @@ #define KNOT_UNIT_ENERGY_CAL 0x05 #define KNOT_UNIT_ENERGY_KCAL 0x06 #define KNOT_UNIT_ACCELERATION_MS2 0X01 +#define KNOT_UNIT_ANGULAR_VELOCITY_RADSEG 0X01 +#define KNOT_UNIT_ANGULAR_VELOCITY_DEGSEG 0X02 // definition of value type #define KNOT_VALUE_TYPE_INT 0x01