unsigned Device_Object_List_Count( void) { unsigned count = 1; /* at least 1 for device object */ /* FIXME: add objects as needed */ count += Analog_Value_Count(); count += Binary_Value_Count(); return count; }
bool Device_Object_List_Identifier( unsigned array_index, int *object_type, uint32_t * instance) { bool status = false; unsigned object_index = 0; unsigned object_count = 0; /* device object */ if (array_index == 1) { *object_type = OBJECT_DEVICE; *instance = Object_Instance_Number; status = true; } /* normalize the index since we know it is not the previous objects */ /* array index starts at 1 */ object_index = array_index - 1; /* 1 for the device object */ object_count = 1; /* FIXME: add objects as needed */ #if MAX_ANALOG_VALUES /* analog value objects */ if (!status) { /* array index starts at 1, and 1 for the device object */ object_index -= object_count; object_count = Analog_Value_Count(); if (object_index < object_count) { *object_type = OBJECT_ANALOG_VALUE; *instance = Analog_Value_Index_To_Instance(object_index); status = true; } } #endif #if MAX_BINARY_VALUES /* binary value objects */ if (!status) { object_index -= object_count; object_count = Binary_Value_Count(); /* is it a valid index for this object? */ if (object_index < object_count) { *object_type = OBJECT_BINARY_VALUE; *instance = Binary_Value_Index_To_Instance(object_index); status = true; } } #endif return status; }
unsigned Device_Object_List_Count( void) { unsigned count = 1; /* at least 1 for device object */ #if MAX_ANALOG_VALUES /* FIXME: add objects as needed */ count += Analog_Value_Count(); #endif #if MAX_BINARY_VALUES /* FIXME: add objects as needed */ count += Binary_Value_Count(); #endif return count; }