diff --git a/apps/aqhome-react/aqhome_react.c b/apps/aqhome-react/aqhome_react.c index 46e244a..8ad08fd 100644 --- a/apps/aqhome-react/aqhome_react.c +++ b/apps/aqhome-react/aqhome_react.c @@ -190,15 +190,15 @@ AQHREACT_UNIT *AqHomeReact_CreateUnitByName(AQHOME_REACT *aqh, const char *unitT /* this does not include u_timer and u_varchanges, because those are only created once globally in init.c */ if (aqh && unitType && *unitType) { if (strcasecmp(unitType, "or")==0) - return AqHomeReact_UnitOr_new(); + return AqHomeReact_UnitOr_new(aqh); else if (strcasecmp(unitType, "valueFilter")==0) - return AqHomeReact_UnitValueFilter_new(); + return AqHomeReact_UnitValueFilter_new(aqh); else if (strcasecmp(unitType, "stabilize")==0) - return AqHomeReact_UnitStabilize_new(); + return AqHomeReact_UnitStabilize_new(aqh); else if (strcasecmp(unitType, "lowPass")==0) - return AqHomeReact_UnitLowPass_new(); + return AqHomeReact_UnitLowPass_new(aqh); else if (strcasecmp(unitType, "highPass")==0) - return AqHomeReact_UnitHighPass_new(); + return AqHomeReact_UnitHighPass_new(aqh); else { DBG_ERROR(NULL, "Unknown unit type \"%s\"", unitType); return NULL; diff --git a/apps/aqhome-react/init.c b/apps/aqhome-react/init.c index 541a7b2..ef67d53 100644 --- a/apps/aqhome-react/init.c +++ b/apps/aqhome-react/init.c @@ -213,12 +213,12 @@ void _setupBuiltinUnits(AQHOME_REACT *aqh) { AQHREACT_UNIT *unit; - unit=AqHomeReact_UnitTimer_new(); + unit=AqHomeReact_UnitTimer_new(aqh); AQHREACT_Unit_SetId(unit, ".timer"); AQHREACT_Unit_List_Add(unit, aqh->unitList); aqh->timerUnit=unit; - unit=AqHomeReact_UnitVarChanges_new(); + unit=AqHomeReact_UnitVarChanges_new(aqh); AQHREACT_Unit_SetId(unit, ".updatedValue"); AQHREACT_Unit_List_Add(unit, aqh->unitList); aqh->varChangeUnit=unit; diff --git a/apps/aqhome-react/types/unit.c b/apps/aqhome-react/types/unit.c index a95a915..8beef9c 100644 --- a/apps/aqhome-react/types/unit.c +++ b/apps/aqhome-react/types/unit.c @@ -21,7 +21,7 @@ GWEN_INHERIT_FUNCTIONS(AQHREACT_UNIT) -AQHREACT_UNIT *AQHREACT_Unit_new(void) +AQHREACT_UNIT *AQHREACT_Unit_new(AQHOME_REACT *aqh) { AQHREACT_UNIT *unit; @@ -29,6 +29,7 @@ AQHREACT_UNIT *AQHREACT_Unit_new(void) GWEN_INHERIT_INIT(AQHREACT_UNIT, unit); GWEN_LIST_INIT(AQHREACT_UNIT, unit); + unit->aqHomeReact=aqh; unit->inputSlotList=AQHREACT_InputSlot_List_new(); unit->outputSlotList=AQHREACT_OutputSlot_List_new(); unit->paramList=AQHREACT_Param_List_new(); diff --git a/apps/aqhome-react/types/unit.h b/apps/aqhome-react/types/unit.h index 626fbf7..6918fdc 100644 --- a/apps/aqhome-react/types/unit.h +++ b/apps/aqhome-react/types/unit.h @@ -36,9 +36,11 @@ typedef int (*AQHREACT_UNIT_PROCESS_FN)(AQHREACT_UNIT *unit); -AQHREACT_UNIT *AQHREACT_Unit_new(void); +AQHREACT_UNIT *AQHREACT_Unit_new(AQHOME_REACT *aqh); void AQHREACT_Unit_free(AQHREACT_UNIT *unit); +AQHOME_REACT *AQHREACT_Unit_GetAqHomeReact(const AQHREACT_UNIT *unit); + const char *AQHREACT_Unit_GetName(const AQHREACT_UNIT *unit); void AQHREACT_Unit_SetName(AQHREACT_UNIT *unit, const char *s); diff --git a/apps/aqhome-react/types/unit_p.h b/apps/aqhome-react/types/unit_p.h index a61581e..b4acb6a 100644 --- a/apps/aqhome-react/types/unit_p.h +++ b/apps/aqhome-react/types/unit_p.h @@ -17,6 +17,7 @@ struct AQHREACT_UNIT { GWEN_INHERIT_ELEMENT(AQHREACT_UNIT) GWEN_LIST_ELEMENT(AQHREACT_UNIT) + AQHOME_REACT *aqHomeReact; char *name; char *description; char *id; diff --git a/apps/aqhome-react/units/u_highpass.c b/apps/aqhome-react/units/u_highpass.c index a2efe2e..9c67770 100644 --- a/apps/aqhome-react/units/u_highpass.c +++ b/apps/aqhome-react/units/u_highpass.c @@ -40,14 +40,14 @@ static void _cbInputData(AQHREACT_UNIT *unit, int slotIdForUnit, const AQHREACT_ * ------------------------------------------------------------------------------------------------ */ -AQHREACT_UNIT *AqHomeReact_UnitHighPass_new(void) +AQHREACT_UNIT *AqHomeReact_UnitHighPass_new(AQHOME_REACT *aqh) { AQHREACT_UNIT *unit; AQHREACT_OUTPUT_SLOT *outputSlot; AQHREACT_INPUT_SLOT *inputSlot; AQHREACT_PARAM *param; - unit=AQHREACT_Unit_new(); + unit=AQHREACT_Unit_new(aqh); AQHREACT_Unit_SetName(unit, "highpass"); AQHREACT_Unit_SetDescription(unit, "Highpass filter for data"); AQHREACT_Unit_SetInputDataFn(unit, _cbInputData); diff --git a/apps/aqhome-react/units/u_highpass.h b/apps/aqhome-react/units/u_highpass.h index 1e75bfc..4fd98c9 100644 --- a/apps/aqhome-react/units/u_highpass.h +++ b/apps/aqhome-react/units/u_highpass.h @@ -18,7 +18,7 @@ #define AQHOMEREACT_UNIT_HIGHPASS_PARAM_NEWVALUE "newValue" -AQHREACT_UNIT *AqHomeReact_UnitHighPass_new(void); +AQHREACT_UNIT *AqHomeReact_UnitHighPass_new(AQHOME_REACT *aqh); diff --git a/apps/aqhome-react/units/u_lowpass.c b/apps/aqhome-react/units/u_lowpass.c index 70cc058..6ce67ac 100644 --- a/apps/aqhome-react/units/u_lowpass.c +++ b/apps/aqhome-react/units/u_lowpass.c @@ -40,14 +40,14 @@ static void _cbInputData(AQHREACT_UNIT *unit, int slotIdForUnit, const AQHREACT_ * ------------------------------------------------------------------------------------------------ */ -AQHREACT_UNIT *AqHomeReact_UnitLowPass_new(void) +AQHREACT_UNIT *AqHomeReact_UnitLowPass_new(AQHOME_REACT *aqh) { AQHREACT_UNIT *unit; AQHREACT_OUTPUT_SLOT *outputSlot; AQHREACT_INPUT_SLOT *inputSlot; AQHREACT_PARAM *param; - unit=AQHREACT_Unit_new(); + unit=AQHREACT_Unit_new(aqh); AQHREACT_Unit_SetName(unit, "lowpass"); AQHREACT_Unit_SetDescription(unit, "Lowpass filter for data"); AQHREACT_Unit_SetInputDataFn(unit, _cbInputData); diff --git a/apps/aqhome-react/units/u_lowpass.h b/apps/aqhome-react/units/u_lowpass.h index c13ec85..f2a9d2a 100644 --- a/apps/aqhome-react/units/u_lowpass.h +++ b/apps/aqhome-react/units/u_lowpass.h @@ -18,7 +18,7 @@ #define AQHOMEREACT_UNIT_LOWPASS_PARAM_NEWVALUE "newValue" -AQHREACT_UNIT *AqHomeReact_UnitLowPass_new(void); +AQHREACT_UNIT *AqHomeReact_UnitLowPass_new(AQHOME_REACT *aqh); diff --git a/apps/aqhome-react/units/u_or.c b/apps/aqhome-react/units/u_or.c index 5e2f74f..c492983 100644 --- a/apps/aqhome-react/units/u_or.c +++ b/apps/aqhome-react/units/u_or.c @@ -43,13 +43,13 @@ static int _sampleInputSlots(const AQHREACT_INPUT_SLOT_LIST *inputSlotList); * ------------------------------------------------------------------------------------------------ */ -AQHREACT_UNIT *AqHomeReact_UnitOr_new(void) +AQHREACT_UNIT *AqHomeReact_UnitOr_new(AQHOME_REACT *aqh) { AQHREACT_UNIT *unit; AQHREACT_OUTPUT_SLOT *outputSlot; AQHREACT_INPUT_SLOT *inputSlot; - unit=AQHREACT_Unit_new(); + unit=AQHREACT_Unit_new(aqh); AQHREACT_Unit_SetName(unit, "or"); AQHREACT_Unit_SetDescription(unit, "Logical OR inputs"); AQHREACT_Unit_SetProcessFn(unit, _cbProcessFn); diff --git a/apps/aqhome-react/units/u_or.h b/apps/aqhome-react/units/u_or.h index 6ff061c..bd7b1aa 100644 --- a/apps/aqhome-react/units/u_or.h +++ b/apps/aqhome-react/units/u_or.h @@ -14,7 +14,7 @@ #include "aqhome-react/types/unit.h" -AQHREACT_UNIT *AqHomeReact_UnitOr_new(void); +AQHREACT_UNIT *AqHomeReact_UnitOr_new(AQHOME_REACT *aqh); diff --git a/apps/aqhome-react/units/u_passthrough.c b/apps/aqhome-react/units/u_passthrough.c index c09452d..d81b563 100644 --- a/apps/aqhome-react/units/u_passthrough.c +++ b/apps/aqhome-react/units/u_passthrough.c @@ -37,13 +37,13 @@ static void _cbInputData(AQHREACT_UNIT *unit, int slotIdForUnit, const AQHREACT_ * ------------------------------------------------------------------------------------------------ */ -AQHREACT_UNIT *AqHomeReact_UnitPassthrough_new(void) +AQHREACT_UNIT *AqHomeReact_UnitPassthrough_new(AQHOME_REACT *aqh) { AQHREACT_UNIT *unit; AQHREACT_OUTPUT_SLOT *outputSlot; AQHREACT_INPUT_SLOT *inputSlot; - unit=AQHREACT_Unit_new(); + unit=AQHREACT_Unit_new(aqh); AQHREACT_Unit_SetName(unit, "passthrough"); AQHREACT_Unit_SetDescription(unit, "Generic passthrough unit"); AQHREACT_Unit_SetInputDataFn(unit, _cbInputData); diff --git a/apps/aqhome-react/units/u_passthrough.h b/apps/aqhome-react/units/u_passthrough.h index 9148d90..867f657 100644 --- a/apps/aqhome-react/units/u_passthrough.h +++ b/apps/aqhome-react/units/u_passthrough.h @@ -19,7 +19,7 @@ -AQHREACT_UNIT *AqHomeReact_UnitPassthrough_new(void); +AQHREACT_UNIT *AqHomeReact_UnitPassthrough_new(AQHOME_REACT *aqh); diff --git a/apps/aqhome-react/units/u_stabilize.c b/apps/aqhome-react/units/u_stabilize.c index 9a5a1ef..d7cf257 100644 --- a/apps/aqhome-react/units/u_stabilize.c +++ b/apps/aqhome-react/units/u_stabilize.c @@ -62,14 +62,14 @@ static void _setOutput(AQHREACT_UNIT *unit, AQHREACT_UNIT_STABILIZE *xunit, int * ------------------------------------------------------------------------------------------------ */ -AQHREACT_UNIT *AqHomeReact_UnitStabilize_new(void) +AQHREACT_UNIT *AqHomeReact_UnitStabilize_new(AQHOME_REACT *aqh) { AQHREACT_UNIT_STABILIZE *xunit; AQHREACT_UNIT *unit; AQHREACT_OUTPUT_SLOT *outputSlot; AQHREACT_INPUT_SLOT *inputSlot; - unit=AQHREACT_Unit_new(); + unit=AQHREACT_Unit_new(aqh); GWEN_NEW_OBJECT(AQHREACT_UNIT_STABILIZE, xunit); GWEN_INHERIT_SETDATA(AQHREACT_UNIT, AQHREACT_UNIT_STABILIZE, unit, xunit, _freeData); diff --git a/apps/aqhome-react/units/u_stabilize.h b/apps/aqhome-react/units/u_stabilize.h index cba8283..6cf9ab6 100644 --- a/apps/aqhome-react/units/u_stabilize.h +++ b/apps/aqhome-react/units/u_stabilize.h @@ -17,7 +17,7 @@ #define AQHOMEREACT_UNIT_STABILIZE_PARAM_HOLDTIME_LOW "holdTimeLow" -AQHREACT_UNIT *AqHomeReact_UnitStabilize_new(void); +AQHREACT_UNIT *AqHomeReact_UnitStabilize_new(AQHOME_REACT *aqh); diff --git a/apps/aqhome-react/units/u_timer.c b/apps/aqhome-react/units/u_timer.c index a96a411..2c8745f 100644 --- a/apps/aqhome-react/units/u_timer.c +++ b/apps/aqhome-react/units/u_timer.c @@ -17,11 +17,11 @@ -AQHREACT_UNIT *AqHomeReact_UnitTimer_new(void) +AQHREACT_UNIT *AqHomeReact_UnitTimer_new(AQHOME_REACT *aqh) { AQHREACT_UNIT *unit; - unit=AqHomeReact_UnitPassthrough_new(); + unit=AqHomeReact_UnitPassthrough_new(aqh); AQHREACT_Unit_SetName(unit, "timer"); AQHREACT_Unit_SetDescription(unit, "Periodically generate a timer signal"); diff --git a/apps/aqhome-react/units/u_timer.h b/apps/aqhome-react/units/u_timer.h index 92cfd2c..8375a83 100644 --- a/apps/aqhome-react/units/u_timer.h +++ b/apps/aqhome-react/units/u_timer.h @@ -14,7 +14,7 @@ #include "aqhome-react/types/unit.h" -AQHREACT_UNIT *AqHomeReact_UnitTimer_new(void); +AQHREACT_UNIT *AqHomeReact_UnitTimer_new(AQHOME_REACT *aqh); void AqHomeReact_UnitTimer_GenerateTick(AQHREACT_UNIT *unit); diff --git a/apps/aqhome-react/units/u_valuefilter.c b/apps/aqhome-react/units/u_valuefilter.c index feb995d..2bb3233 100644 --- a/apps/aqhome-react/units/u_valuefilter.c +++ b/apps/aqhome-react/units/u_valuefilter.c @@ -41,14 +41,14 @@ static void _cbInputData(AQHREACT_UNIT *unit, int slotIdForUnit, const AQHREACT_ * ------------------------------------------------------------------------------------------------ */ -AQHREACT_UNIT *AqHomeReact_UnitValueFilter_new(void) +AQHREACT_UNIT *AqHomeReact_UnitValueFilter_new(AQHOME_REACT *aqh) { AQHREACT_UNIT *unit; AQHREACT_OUTPUT_SLOT *outputSlot; AQHREACT_INPUT_SLOT *inputSlot; AQHREACT_PARAM *param; - unit=AQHREACT_Unit_new(); + unit=AQHREACT_Unit_new(aqh); AQHREACT_Unit_SetName(unit, "valuefilter"); AQHREACT_Unit_SetDescription(unit, "Filter values received from unit VarChanges by value path"); AQHREACT_Unit_SetInputDataFn(unit, _cbInputData); diff --git a/apps/aqhome-react/units/u_valuefilter.h b/apps/aqhome-react/units/u_valuefilter.h index 715ce87..183ac53 100644 --- a/apps/aqhome-react/units/u_valuefilter.h +++ b/apps/aqhome-react/units/u_valuefilter.h @@ -17,7 +17,7 @@ #define AQHOMEREACT_UNIT_VALUEFILTER_PARAM_VALUENAME "valueName" -AQHREACT_UNIT *AqHomeReact_UnitValueFilter_new(void); +AQHREACT_UNIT *AqHomeReact_UnitValueFilter_new(AQHOME_REACT *aqh); diff --git a/apps/aqhome-react/units/u_varchanges.c b/apps/aqhome-react/units/u_varchanges.c index 39d1e4e..fced7c6 100644 --- a/apps/aqhome-react/units/u_varchanges.c +++ b/apps/aqhome-react/units/u_varchanges.c @@ -17,11 +17,11 @@ -AQHREACT_UNIT *AqHomeReact_UnitVarChanges_new(void) +AQHREACT_UNIT *AqHomeReact_UnitVarChanges_new(AQHOME_REACT *aqh) { AQHREACT_UNIT *unit; - unit=AqHomeReact_UnitPassthrough_new(); + unit=AqHomeReact_UnitPassthrough_new(aqh); AQHREACT_Unit_SetName(unit, "varchanges"); AQHREACT_Unit_SetDescription(unit, "Propagates changes of values on the data server"); diff --git a/apps/aqhome-react/units/u_varchanges.h b/apps/aqhome-react/units/u_varchanges.h index 9f75df4..00234c9 100644 --- a/apps/aqhome-react/units/u_varchanges.h +++ b/apps/aqhome-react/units/u_varchanges.h @@ -16,7 +16,7 @@ #include "aqhome/data/value.h" -AQHREACT_UNIT *AqHomeReact_UnitVarChanges_new(void); +AQHREACT_UNIT *AqHomeReact_UnitVarChanges_new(AQHOME_REACT *aqh); void AqHomeReact_UnitVarChanges_ValueUpdated(AQHREACT_UNIT *unit, const AQH_VALUE *value, uint64_t timestamp, double data);