/************************************************************************** * * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file DialOutFlow.h * * @date 7-Jan-2019 * @author L. Baloa * * @brief DialOutFlow header file. * **************************************************************************/ #ifndef __DIALYSATE_OUT_FLOW_H__ #define __DIALYSATE_OUT_FLOW_H__ #include "Common.h" // ********** public definitions ********** typedef enum Load_Cells { LOAD_CELL_RESERVOIR_1_PRIMARY = 0, LOAD_CELL_RESERVOIR_1_BACKUP, LOAD_CELL_RESERVOIR_2_PRIMARY, LOAD_CELL_RESERVOIR_2_BACKUP, NUM_OF_LOAD_CELLS } LOAD_CELL_T; #pragma pack(push, 1) typedef struct DialOutBroadcastingRecord { F32 refUFVolMl; F32 measUFVolMl; F32 measRotSpdRPM; F32 measSpdRPM; F32 measMCSpdRPM; F32 measMCCurrmA; F32 setPWMpct; } DIAL_OUT_FLOW_DATA_T; #pragma pack(pop) // ********** public function prototypes ********** void initDialOutFlow( void ); void execDialOutFlowMonitor( void ); void execDialOutFlowController( void ); BOOL setDialOutPumpTargetRate( U32 flowRate, MOTOR_DIR_T dir, PUMP_CONTROL_MODE_T mode ); void setDialOutUFVolumes( F32 refVol, F32 totVol ); void signalDialOutPumpHardStop( void ); void setNewLoadCellReadings( F32 res1Primary, F32 res1Backup, F32 res2Primary, F32 res2Backup ); // SELF_TEST_STATUS_T execDialOutFlowTest( void ); // TODO - implement later DATA_GET_PROTOTYPE( F32, getTotalTargetDialOutUFVolumeInMl ); DATA_GET_PROTOTYPE( F32, getTotalMeasuredUFVolumeInMl); DATA_GET_PROTOTYPE( F32, getMeasuredDialOutPumpMCSpeed ); DATA_GET_PROTOTYPE( F32, getMeasuredDialOutPumpMCCurrent ); DATA_ARRAY_GET_PROTOTYPE( F32, getLoadCellWeightInGrams, loadCellID ); DATA_GET_PROTOTYPE( F32, getMeasuredDialOutPumpRotorSpeed ); DATA_GET_PROTOTYPE( F32, getMeasuredDialOutPumpSpeed ); BOOL testSetDialOutPumpAndLoadCellDataPublishIntervalOverride( U32 value ); BOOL testResetDialOutPumpAndLoadCellDataPublishIntervalOverride( void ); BOOL testSetDialOutUFRefVolumeOverride( F32 value ); BOOL testResetDialOutUFRefVolumeOverride( void ); BOOL testSetDialOutUFTotVolumeOverride( F32 value ); BOOL testResetDialOutUFTotVolumeOverride( void ); BOOL testSetMeasuredDialOutPumpRotorSpeedOverride( F32 value ); BOOL testResetMeasuredDialOutPumpRotorSpeedOverride( void ); BOOL testSetMeasuredDialOutPumpSpeedOverride( F32 value ); BOOL testResetMeasuredDialOutPumpSpeedOverride( void ); BOOL testSetMeasuredDialOutPumpMCSpeedOverride( F32 value ); BOOL testResetMeasuredDialOutPumpMCSpeedOverride( void ); BOOL testSetMeasuredDialOutPumpMCCurrentOverride( F32 value ); BOOL testResetMeasuredDialOutPumpMCCurrentOverride( void ); BOOL testSetDialOutLoadCellWeightOverride( U32 sensor, F32 value ); BOOL testResetDialOutLoadCellWeightOverride( U32 sensor ); #endif