Index: firmware/.launches/DG.launch =================================================================== diff -u -r87b18724c947a61e4c005947f227a6015d56cf0c -r7251df168640ae46ba5b5148b60a1ca3bac5c0a4 --- firmware/.launches/DG.launch (.../DG.launch) (revision 87b18724c947a61e4c005947f227a6015d56cf0c) +++ firmware/.launches/DG.launch (.../DG.launch) (revision 7251df168640ae46ba5b5148b60a1ca3bac5c0a4) @@ -2,10 +2,17 @@ + + +>>>>>>> DEN-13598-dg_hd_dev-sprint-77-fw-dong + + +>>>>>>> DEN-13598-dg_hd_dev-sprint-77-fw-dong + Index: firmware/App/Services/FPGA.c =================================================================== diff -u -rcef8149cb8dfbd5c91c32f5318334c5db2366f7e -r7251df168640ae46ba5b5148b60a1ca3bac5c0a4 --- firmware/App/Services/FPGA.c (.../FPGA.c) (revision cef8149cb8dfbd5c91c32f5318334c5db2366f7e) +++ firmware/App/Services/FPGA.c (.../FPGA.c) (revision 7251df168640ae46ba5b5148b60a1ca3bac5c0a4) @@ -9,7 +9,7 @@ * @file FPGA.c * * @author (last) Dara Navaei -* @date (last) 24-May-2022 +* @date (last) 04-Aug-2022 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -83,7 +83,11 @@ #define DRAIN_PUMP_DAC_SHIFT_BITS 4 ///< Drain pump DAC shift bits. #define FPGA_FLUIDLEAK_STATE_MASK 0x0004 ///< Bit mask for fluid leak detector. -#define FPGA_ENABLE_VALVES_CONTROL 0x015F ///< FPGA enable valves control +#define FPGA_ENABLE_VALVES_CONTROL 0x015F ///< FPGA enable valves control. +#define FPGA_VBF_PWM_PULL_IN_MS ( 3 * MS_PER_SECOND ) ///< FPGA VBf PWM pull in in milliseconds. +#define FPGA_VBF_PWM_LOW 9999 ///< FPGA VBf PWM low. +#define FPGA_VBF_PWM_PERIOD 16666 ///< FPGA VBf PWM period. +#define FPGA_ENABLE_VALVES_PWM 0x0020 ///< FPGA enable valves PWM. #define CONCENTRATE_CAP_SWITCH_MASK 0x10 ///< Concentrate cap switch bit mask. #define DIALYSATE_CAP_SWITCH_MASK 0x20 ///< Dialysate cap switch bit mask. #define FPGA_THD_CONTROL_COMMAND 0X01 ///< FPGA THd control command. @@ -383,19 +387,19 @@ memset( &fpgaActuatorSetPoints, 0, sizeof( FPGA_ACTUATORS_T ) ); // Set the THd control register to 0x1 to make sure its ADC is running - fpgaActuatorSetPoints.fpgaTHdControlReg = FPGA_THD_CONTROL_COMMAND; - fpgaActuatorSetPoints.fpgaValveStates = FPGA_ENABLE_VALVES_CONTROL; + fpgaActuatorSetPoints.fpgaTHdControlReg = FPGA_THD_CONTROL_COMMAND; + fpgaActuatorSetPoints.fpgaValveStates = FPGA_ENABLE_VALVES_CONTROL; + fpgaActuatorSetPoints.fpgaValvePWMEnable = FPGA_ENABLE_VALVES_PWM; + fpgaActuatorSetPoints.fpgaVBfPWMPullin = FPGA_VBF_PWM_PULL_IN_MS; + fpgaActuatorSetPoints.fpgaVBfPWMLow = FPGA_VBF_PWM_LOW; + fpgaActuatorSetPoints.fpgaVBFPWMPeriod = FPGA_VBF_PWM_PERIOD; // initialize fpga comm buffers memset( &fpgaWriteCmdBuffer, 0, FPGA_WRITE_CMD_BUFFER_LEN ); memset( &fpgaReadCmdBuffer, 0, FPGA_READ_CMD_BUFFER_LEN ); memset( &fpgaWriteResponseBuffer, 0, FPGA_WRITE_RSP_BUFFER_LEN ); memset( &fpgaReadResponseBuffer, 0, FPGA_READ_RSP_BUFFER_LEN ); - // Assume the read byte size is set for V3 since V3 contains less number of bytes. - // Once the V3 or DVT build switch is set resize the number of bytes to read. - fpgaReadByteSize = FPGA_SIZE_OF_V3_READ_BYTES; - // enable interrupt notifications for FPGA serial port sciEnableNotification( scilinREG, SCI_OE_INT | SCI_FE_INT ); @@ -775,7 +779,7 @@ fpgaReadCmdBuffer[ 0 ] = FPGA_READ_CMD_CODE; fpgaReadCmdBuffer[ 1 ] = GET_LSB_OF_WORD( FPGA_BULK_READ_START_ADDR ); fpgaReadCmdBuffer[ 2 ] = GET_MSB_OF_WORD( FPGA_BULK_READ_START_ADDR ); - fpgaReadCmdBuffer[ 3 ] = fpgaReadByteSize; //sizeof( DG_FPGA_SENSORS_T ); + fpgaReadCmdBuffer[ 3 ] = fpgaReadByteSize; crc = crc16( fpgaReadCmdBuffer, FPGA_READ_CMD_HDR_LEN ); fpgaReadCmdBuffer[ 4 ] = GET_MSB_OF_WORD( crc ); fpgaReadCmdBuffer[ 5 ] = GET_LSB_OF_WORD( crc ); @@ -786,7 +790,7 @@ // prep DMA for sending the bulk read cmd and receiving its response setupDMAForReadCmd( FPGA_READ_CMD_HDR_LEN + FPGA_CRC_LEN ); - setupDMAForReadResp( FPGA_READ_RSP_HDR_LEN + fpgaReadByteSize /*sizeof( DG_FPGA_SENSORS_T )*/ + FPGA_CRC_LEN ); + setupDMAForReadResp( FPGA_READ_RSP_HDR_LEN + fpgaReadByteSize + FPGA_CRC_LEN ); // set fpga comm flags for bulk write cmd and follow-up bulk read command fpgaWriteCommandInProgress = TRUE; @@ -822,7 +826,7 @@ // did FPGA Ack the read command? if ( fpgaReadResponseBuffer[ 0 ] == FPGA_READ_CMD_ACK ) { - U32 rspSize = FPGA_READ_RSP_HDR_LEN + fpgaReadByteSize; //sizeof( DG_FPGA_SENSORS_T ); + U32 rspSize = FPGA_READ_RSP_HDR_LEN + fpgaReadByteSize; U32 crcPos = rspSize; U16 crc = MAKE_WORD_OF_BYTES( fpgaReadResponseBuffer[ crcPos ], fpgaReadResponseBuffer[ crcPos + 1 ] ); @@ -831,7 +835,7 @@ { fpgaCommRetryCount = 0; // capture the read values - memcpy( &fpgaSensorReadings, &fpgaReadResponseBuffer[ FPGA_READ_RSP_HDR_LEN ], fpgaReadByteSize /*sizeof( DG_FPGA_SENSORS_T )*/ ); + memcpy( &fpgaSensorReadings, &fpgaReadResponseBuffer[ FPGA_READ_RSP_HDR_LEN ], fpgaReadByteSize ); result = FPGA_STATE_WRITE_ALL_ACTUATORS; } else // bad CRC @@ -1235,8 +1239,6 @@ fpgaActuatorSetPoints.fpgaCP2StepSpeed = stepSpeed; } -/****************************DVT Functions*******************************************/ - /*********************************************************************//** * @brief * The setFPGAAcidPumpControl function sets the DVT concentrate pump 1 @@ -2135,6 +2137,19 @@ /*********************************************************************//** * @brief + * The getFPGABaroMfgInfo function gets the FPGA barometric pressure + * sensor manufacturing information. + * @details Inputs: fpgaSensorReadings + * @details Outputs: none + * @return barometric pressure sensor manufacturing information + *************************************************************************/ +U16 getFPGABaroMfgInfo( void ) +{ + return fpgaSensorReadings.fpgaBaroManufacInfo; +} + +/*********************************************************************//** + * @brief * The getFPGABaroPressureSensitivity function gets the FPGA barometric pressure * sensor sensitivity. * @details Inputs: fpgaSensorReadings @@ -2213,6 +2228,19 @@ /*********************************************************************//** * @brief + * The getFPGABaroCoeffsCRC function gets the FPGA barometric pressure + * sensor temperature coefficients' CRC. + * @details Inputs: fpgaSensorReadings + * @details Outputs: none + * @return barometric pressure sensor temperature coefficients' CRC + *************************************************************************/ +U16 getFPGABaroCoeffsCRC( void ) +{ + return fpgaSensorReadings.fpgaBaroPROMCRC; +} + +/*********************************************************************//** + * @brief * The getFPGABaroPressure function gets the FPGA barometric pressure sensor * pressure. * @details Inputs: fpgaSensorReadings @@ -2352,4 +2380,28 @@ return fpgaSensorReadings.fpgaDialysateFlowSensorEdgeCount; } +/*********************************************************************//** + * @brief + * The getFPGAHeaterGateADC function gets Heater Gate ADC value. + * @details Inputs: fpgaSensorReadings + * @details Outputs: none + * @return heater gate adc value + *************************************************************************/ +U16 getFPGAHeaterGateADC( void ) +{ + return fpgaSensorReadings.fpgaHeaterGateADC; +} + +/*********************************************************************//** + * @brief + * The getFPGAHeaterGndADC function gets Heater Ground ADC value. + * @details Inputs: fpgaSensorReadings + * @details Outputs: none + * @return heater ground adc value + *************************************************************************/ +U16 getFPGAHeaterGndADC( void ) +{ + return fpgaSensorReadings.fpgaHeaterGNDADC; +} + /**@}*/ Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -rcef8149cb8dfbd5c91c32f5318334c5db2366f7e -r7251df168640ae46ba5b5148b60a1ca3bac5c0a4 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision cef8149cb8dfbd5c91c32f5318334c5db2366f7e) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 7251df168640ae46ba5b5148b60a1ca3bac5c0a4) @@ -7,8 +7,8 @@ * * @file SystemComm.c * -* @author (last) Dara Navaei -* @date (last) 23-May-2022 +* @author (last) Michael Garthwaite +* @date (last) 08-Aug-2022 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -817,6 +817,10 @@ handleAlarmClear( message ); break; + case MSG_ID_RTC_EPOCH: + handleRTCSyncFromHD( message ); + break; + case MSG_ID_SET_DG_DIALYSATE_TEMP_TARGETS: handleSetDialysateTemperatureCmd( message ); break; @@ -878,7 +882,7 @@ handleDGPOSTResultRequest( message ); break; - case MSG_ID_UI_REQUEST_SERVICE_INFO: + case MSG_ID_HD_REQUEST_DG_SERVICE_RECORD: handleDGServiceScheduleRequest( message ); break; @@ -890,6 +894,14 @@ handleDGScheduledRunsRequest( message ); break; + case MSG_ID_HD_REQUEST_DG_SERVICE_MODE: + handleServiceModeRequest( message ); + break; + + case MSG_ID_HD_REQUEST_DG_USAGE_INFO: + handleHDRequestDGUsageInfo( message ); + break; + // NOTE: This case must be last case MSG_ID_DG_TESTER_LOGIN_REQUEST: handleTesterLogInRequest( message ); @@ -938,20 +950,16 @@ handleTestPressureDataBroadcastIntervalOverrideRequest( message ); break; - case MSG_ID_RO_MEASURED_FLOW_OVERRIDE: - handleTestROMeasuredFlowOverrideRequest( message ); + case MSG_ID_MEASURED_FLOW_SENSORS_OVERRIDE: + handleTestMeasuredFlowOverrideRequest( message ); break; - case MSG_ID_DIALYSATE_MEASURED_FLOW_OVERRIDE: - handleTestDialysateMeasuredFlowOverrideRequest( message ); - break; - case MSG_ID_RO_PUMP_SEND_INTERVAL_OVERRIDE: handleTestROPumpDataBroadcastIntervalOverrideRequest( message ); break; - case MSG_ID_DIALYSATE_FLOW_SEND_INTERVAL_OVERRIDE: - handleTestDialysateFlowDataBroadcastIntervalOverrideRequest( message ); + case MSG_ID_FLOW_DATA_PUBLISH_INTERVAL_OVERRIDE: + handleTestFlowSensorsDataBroadcastIntervalOverrideRequest( message ); break; case MSG_ID_DRAIN_PUMP_SET_RPM: @@ -1062,10 +1070,6 @@ handleTestROPumpDutyCycleOverride( message ); break; - case MSG_ID_DG_RO_FLOW_RATE_OVERRIDE: - handleTestROMeasuredFlowOverrideRequest( message ); - break; - case MSG_ID_DG_SET_RO_PUMP_TARGET_FLOW: handleTestROPumpTargetFlowOverride( message ); break; @@ -1131,11 +1135,11 @@ break; case MSG_ID_FILTER_FLUSH_TIME_PERIOD_OVERRIDE: - handleFilterFlushTimePeriodOverride( message ); + handleFilterFlushTimePeriodOverride(message); break; - case MSG_ID_DG_FANS_RPM_OVERRIDE: - handleFansRPMOverride( message ); + case MSG_ID_DG_BLOCK_MESSAGE_TRANSMISSION: + handleTestBlockMessagesRequest( message ); break; case MSG_ID_DG_STOP_RTC_CLOCK: @@ -1146,10 +1150,6 @@ handleSetDrainPumpMeasuredRPMOverrideRequest( message ); break; - case MSG_ID_DG_BLOCK_MESSAGE_TRANSMISSION: - handleTestBlockMessagesRequest( message ); - break; - case MSG_ID_DG_SUPER_CLEAR_ALARMS_CMD: handleTestSuperClearAlarmsRequest( message ); break; @@ -1162,6 +1162,10 @@ handleTestFansRPMAlarmStartTimeOffsetRequest( message ); break; + case MSG_ID_DG_FANS_RPM_OVERRIDE: + handleFansRPMOverride( message ); + break; + case MSG_ID_DG_USED_ACID_VOLUME_ML_OVERRIDE: handleTestUsedAcidVolumeMLOverrideRequest( message ); break; @@ -1194,6 +1198,14 @@ handleSetDGUsageInfoRecord( message ); break; + case MSG_ID_DG_SET_OP_MODE_REQUEST: + handleTestSetOpModeRequest( message ); + break; + + case MSG_ID_DG_RESERVOIR_TARE_REQUEST: + handleTestTareReservoirRequest( message ); + break; + case MSG_ID_HD_REQUEST_DG_ALARMS: handleResendAllAlarmsCommand( message ); break; Index: firmware/App/Tasks/TaskGeneral.c =================================================================== diff -u -rcef8149cb8dfbd5c91c32f5318334c5db2366f7e -r7251df168640ae46ba5b5148b60a1ca3bac5c0a4 --- firmware/App/Tasks/TaskGeneral.c (.../TaskGeneral.c) (revision cef8149cb8dfbd5c91c32f5318334c5db2366f7e) +++ firmware/App/Tasks/TaskGeneral.c (.../TaskGeneral.c) (revision 7251df168640ae46ba5b5148b60a1ca3bac5c0a4) @@ -8,7 +8,7 @@ * @file TaskGeneral.c * * @author (last) Dara Navaei -* @date (last) 23-May-2022 +* @date (last) 06-Jul-2022 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019