Index: firmware/App/Modes/ModeFill.c =================================================================== diff -u -r696e732c9742535a58b9c65f243df7cd797d1423 -r20535cdea80fac7a48eb84d47c9ec4a1968051c5 --- firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision 696e732c9742535a58b9c65f243df7cd797d1423) +++ firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision 20535cdea80fac7a48eb84d47c9ec4a1968051c5) @@ -197,12 +197,8 @@ *************************************************************************/ U32 transitionToFillMode( void ) { - DG_RESERVOIR_ID_T inactiveReservoir = getInactiveReservoir(); - initFillMode(); - reservoirBaseWeight = getReservoirWeight( inactiveReservoir ); - // Set initial actuator states setValveState( VDR, VALVE_STATE_DRAIN_C_TO_NO ); setValveState( VPO, VALVE_STATE_NOFILL_C_TO_NO ); @@ -711,6 +707,7 @@ { setValveState( VPO, VALVE_STATE_FILL_C_TO_NC ); + reservoirBaseWeight = getReservoirWeight( getInactiveReservoir() ); dialysateFillStartTime = getMSTimerCount(); fillStatus.isThisFirstFill = FALSE; result = DG_FILL_MODE_STATE_DELIVER_DIALYSATE; @@ -747,7 +744,7 @@ // Set concentrate pumps speed based on the RO pump flow rate handleDialysateMixing( getMeasuredFlowRateLPM( RO_FLOW_SENSOR ) * ML_PER_LITER, acidMix, bicarbMix ); - integratedVolumeML += getMeasuredROFlowRateWithConcPumpsLPM() * ( (F32)TASK_GENERAL_INTERVAL / (F32)( SEC_PER_MIN ) ); + integratedVolumeML += getMeasuredROFlowRateWithConcPumpsLPM() * ML_PER_LITER * FLOW_INTEGRATOR; usedAcidVolumeML.data += getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP1_ACID ) * FLOW_INTEGRATOR; usedBicarbVolumeML.data += getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP2_BICARB ) * FLOW_INTEGRATOR; acidConductivityTotal += acidConductivity; Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -rf192234d80556802fa42e62f8c1b20d1474f82f1 -r20535cdea80fac7a48eb84d47c9ec4a1968051c5 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision f192234d80556802fa42e62f8c1b20d1474f82f1) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 20535cdea80fac7a48eb84d47c9ec4a1968051c5) @@ -889,13 +889,6 @@ handleDGSendConcentrateMixingRatios( message ); break; -#if 0 - // For Phase 1B - case MSG_ID_DG_SCHEDULED_RUNS_INFO: - handleDGScheduledRunsRequest( message ); - break; -#endif - case MSG_ID_HD_REQUEST_DG_USAGE_INFO: handleHDRequestDGUsageInfo( message ); break; @@ -1115,17 +1108,6 @@ handleSetDGServiceRecord( message ); break; -#if 0 - // For Phase 1B - case MSG_ID_DG_GET_SCHEDULED_RUNS_RECORD: - handleGetDGScheduledRunsRecord( message ); - break; - - case MSG_ID_DG_SET_SCHEDULED_RUNS_RECORD: - handleSetDGScheduledRunsRecord( message ); - break; -#endif - case MSG_ID_DG_FLUID_LEAK_SEND_INTERVAL_OVERRIDE: handleSetFluidLeakBroadcastIntervalOverrideRequest( message ); break; Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r9afca35aabacd4a52a8eb39828e78e25ac4165f9 -r20535cdea80fac7a48eb84d47c9ec4a1968051c5 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 9afca35aabacd4a52a8eb39828e78e25ac4165f9) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 20535cdea80fac7a48eb84d47c9ec4a1968051c5) @@ -554,15 +554,18 @@ // has been already checked in POST getNVRecord2Driver( GET_SRV_RECORD, (U08*)&service, sizeof( DG_SERVICE_RECORD_T ), 0, ALARM_ID_NO_ALARM ); - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_DG_SERVICE_SCHEDULE_DATA; - msg.hdr.payloadLen = sizeof( U32 ) + sizeof( U32 ); + if ( 0 == message->hdr.payloadLen ) + { + // Create a message record + blankMessage( &msg ); + msg.hdr.msgID = MSG_ID_DG_SERVICE_SCHEDULE_DATA; + msg.hdr.payloadLen = sizeof( U32 ) + sizeof( U32 ); - // Fill message payload - memcpy( payloadPtr, &service.lastServiceEpochDate, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( payloadPtr, &service.serviceIntervalSeconds, sizeof( U32 ) ); + // Fill message payload + memcpy( payloadPtr, &service.lastServiceEpochDate, sizeof( U32 ) ); + payloadPtr += sizeof( U32 ); + memcpy( payloadPtr, &service.serviceIntervalSeconds, sizeof( U32 ) ); + } // Serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer serializeMessage( msg, COMM_BUFFER_OUT_CAN_DG_2_HD, ACK_REQUIRED ); @@ -724,49 +727,8 @@ return result; } -#if 0 /*********************************************************************//** * @brief - * The sendDGServiceRecord function sends out the DG service record. - * @details Inputs: none - * @details Outputs: DG system record msg constructed and queued - * @param msgCurrNum: current payload number - * @param msgTotalNum: total number of payloads - * @param length: buffer length to be written - * @param scheduledRcrdAddress: start address of the scheduled runs record - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL sendDGScheduledRunsRecord( U32 payloadCurrNum, U32 payloadTotalNum, U32 length, U08* scheduledRcrdAddress ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_DG_SEND_SCHEDULED_RUNS_RECORD; - msg.hdr.payloadLen = sizeof( U32 ) + sizeof( U32 ) + sizeof( U32 ) + length; - - memcpy( payloadPtr, &payloadCurrNum, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - - memcpy( payloadPtr, &payloadTotalNum, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - - memcpy( payloadPtr, &length, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - - memcpy( payloadPtr, scheduledRcrdAddress, length ); - - // Serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer - result = serializeMessage( msg, COMM_BUFFER_OUT_CAN_PC, ACK_NOT_REQUIRED ); - - return result; -} -#endif - -/*********************************************************************//** - * @brief * The sendPOSTTestResult function constructs an DG POST test result message * and queues the msg for transmit on the appropriate CAN channel. * @details Inputs: none @@ -865,41 +827,7 @@ return result; } -#if 0 -// For Phase 1B /*********************************************************************//** - * @brief - * The handleDGScheduledRunsRequest function handles a request for DG - * scheduled runs information. - * @details Inputs: none - * @details Outputs: message handled, response constructed and queued for - * transmit. - * @return none - *************************************************************************/ -void handleDGScheduledRunsRequest( MESSAGE_T *message ) -{ - MESSAGE_T msg; - DG_SCHEDULED_RUN_RECORD_T scheduledService; - - // Get the service record. There are no arrays of service to check and also, raise no alarm since the service record - // has been already checked in POST - getNVRecord2Driver( GET_SRR_RECORD, (U08*)&scheduledService, sizeof( DG_SCHEDULED_RUN_RECORD_T ), 0, ALARM_ID_NO_ALARM ); - - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_DG_SCHEDULED_RUNS_DATA; - msg.hdr.payloadLen = sizeof( U32 ) + sizeof( U32 ); - - // Do nothing this message is for Phase 1B. - - // Serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer - serializeMessage( msg, COMM_BUFFER_OUT_CAN_DG_2_UI, ACK_REQUIRED ); -} -#endif - -/*********************************************************************//** * @brief * The handleStartStopDGFlush function handles a request to start or stop * DG flush mode. @@ -1482,25 +1410,27 @@ { MESSAGE_T msg; DG_USAGE_INFO_RECORD_T usageInfo; + U08 *payloadPtr = msg.payload; // Get the service record. There are no arrays of service to check and also, raise no alarm since the service record // has been already checked in POST getNVRecord2Driver( GET_USAGE_RECORD, (U08*)&usageInfo, sizeof( DG_USAGE_INFO_RECORD_T ), 0, ALARM_ID_NO_ALARM ); - U08 *payloadPtr = msg.payload; + if ( 0 == message->hdr.payloadLen ) + { + // Create a message record + blankMessage( &msg ); + msg.hdr.msgID = MSG_ID_DG_USAGE_DATA; + msg.hdr.payloadLen = sizeof( U32 ) + sizeof( U32 ) + sizeof( BOOL ); - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_DG_USAGE_DATA; - msg.hdr.payloadLen = sizeof( U32 ) + sizeof( U32 ) + sizeof( BOOL ); + // Fill message payload + memcpy( payloadPtr, &usageInfo.lastHeatDisDateEpoch, sizeof( U32 ) ); + payloadPtr += sizeof( U32 ); + memcpy( payloadPtr, &usageInfo.lastChemicalDisDateEpoch, sizeof( U32 ) ); + payloadPtr += sizeof( U32 ); + memcpy( payloadPtr, &usageInfo.isDisinfected, sizeof( BOOL ) ); + } - // Fill message payload - memcpy( payloadPtr, &usageInfo.lastHeatDisDateEpoch, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( payloadPtr, &usageInfo.lastChemicalDisDateEpoch, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( payloadPtr, &usageInfo.isDisinfected, sizeof( BOOL ) ); - // Serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer serializeMessage( msg, COMM_BUFFER_OUT_CAN_DG_2_HD, ACK_REQUIRED ); } @@ -3131,81 +3061,23 @@ U32 totalMessages; U32 payloadLength; - memcpy(¤tMessage, payloadPtr, sizeof(U32)); - payloadPtr += sizeof(U32); - - memcpy(&totalMessages, payloadPtr, sizeof(U32)); - payloadPtr += sizeof(U32); - - memcpy(&payloadLength, payloadPtr, sizeof(U32)); - payloadPtr += sizeof(U32); - - status = receiveRecordFromDialin( NVDATAMGMT_SERVICE_RECORD, currentMessage, totalMessages, payloadLength, payloadPtr ); - - // Respond to request - sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, status ); -} - -#if 0 -/*********************************************************************//** -* @brief -* The handleGetDGServiceRecord function handles a request to get the DG -* scheduled runs data record. -* @details Inputs: none -* @details Outputs: message handled -* @param message a pointer to the message to handle -* @return none -*************************************************************************/ -void handleGetDGScheduledRunsRecord( MESSAGE_T *message ) -{ - BOOL result = FALSE; - - // verify payload length if ( 0 == message->hdr.payloadLen ) { - // Tester must be logged in - if ( TRUE == isTestingActivated() ) - { - result = sendRecordToDialin( NVDATAMGMT_SCHEDULED_RUNS_RECORD ); - } - } + memcpy(¤tMessage, payloadPtr, sizeof(U32)); + payloadPtr += sizeof(U32); - // respond to request - sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); -} + memcpy(&totalMessages, payloadPtr, sizeof(U32)); + payloadPtr += sizeof(U32); -/*********************************************************************//** -* @brief -* The handleSetDGScheduledRunsRecord function handles a request to set the DG -* scheduled runs data record. -* @details Inputs: none -* @details Outputs: message handled -* @param message a pointer to the message to handle -* @return none -*************************************************************************/ -void handleSetDGScheduledRunsRecord( MESSAGE_T *message ) -{ - BOOL status = FALSE; - U08* payloadPtr = message->payload; - U32 currentMessage; - U32 totalMessages; - U32 payloadLength; + memcpy(&payloadLength, payloadPtr, sizeof(U32)); + payloadPtr += sizeof(U32); - memcpy(¤tMessage, payloadPtr, sizeof(U32)); - payloadPtr += sizeof(U32); + status = receiveRecordFromDialin( NVDATAMGMT_SERVICE_RECORD, currentMessage, totalMessages, payloadLength, payloadPtr ); + } - memcpy(&totalMessages, payloadPtr, sizeof(U32)); - payloadPtr += sizeof(U32); - - memcpy(&payloadLength, payloadPtr, sizeof(U32)); - payloadPtr += sizeof(U32); - - status = receiveRecordFromDialin( NVDATAMGMT_SCHEDULED_RUNS_RECORD, currentMessage, totalMessages, payloadLength, payloadPtr ); - // Respond to request sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, status ); } -#endif /*********************************************************************//** * @brief Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -rf192234d80556802fa42e62f8c1b20d1474f82f1 -r20535cdea80fac7a48eb84d47c9ec4a1968051c5 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision f192234d80556802fa42e62f8c1b20d1474f82f1) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 20535cdea80fac7a48eb84d47c9ec4a1968051c5) @@ -136,12 +136,6 @@ // MSG_ID_DG_SEND_SERVICE_RECORD BOOL sendDGServiceRecord( U32 payloadCurrNum, U32 payloadTotalNum, U32 length, U08* srvcRcrdAddress ); -#if 0 -// For Phase 1B -// MSG_ID_DG_SEND_SCHEDULED_RUNS_RECORD -BOOL sendDGScheduledRunsRecord( U32 payloadCurrNum, U32 payloadTotalNum, U32 length, U08* scheduledRcrdAddress ); -#endif - // MSG_ID_DG_POST_SINGLE_TEST_RESULT BOOL sendPOSTTestResult( DG_POST_STATE_T test, BOOL passed ); @@ -154,12 +148,6 @@ // MSG_ID_DG_SEND_USAGE_INFO_RECORD BOOL sendDGUsageInfoRecord( U32 payloadCurrNum, U32 payloadTotalNum, U32 length, U08* usageInfoAddress ); -#if 0 -// For Phase 1B -// MSG_ID_DG_SCHEDULED_RUNS_INFO -void handleDGScheduledRunsRequest( MESSAGE_T *message ); -#endif - // MSG_ID_HD_OP_MODE BOOL handleSetHDOperationMode( MESSAGE_T *message ); @@ -343,15 +331,6 @@ // MSG_ID_DG_SET_SERVICE_RECORD void handleSetDGServiceRecord( MESSAGE_T *message ); -#if 0 -// For phase 1B -// MSG_ID_DG_GET_SCHEDULED_RUNS_RECORD -void handleGetDGScheduledRunsRecord( MESSAGE_T *message ); - -// MSG_ID_DG_SET_SCHEDULED_RUNS_RECORD -void handleSetDGScheduledRunsRecord( MESSAGE_T *message ); -#endif - // MSG_ID_DG_START_STOP_CHEM_DSINFECT BOOL handleStartStopDGChemicalDisinfect( MESSAGE_T *message ); Index: firmware/App/Services/WatchdogMgmt.c =================================================================== diff -u -rf192234d80556802fa42e62f8c1b20d1474f82f1 -r20535cdea80fac7a48eb84d47c9ec4a1968051c5 --- firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision f192234d80556802fa42e62f8c1b20d1474f82f1) +++ firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 20535cdea80fac7a48eb84d47c9ec4a1968051c5) @@ -198,7 +198,7 @@ // ask EE team why 24V does not quite recover all the way to 22.6V even after 750 ms. How long should it take? if ( v24 < MIN_24V_LEVEL_ON_WATCHDOG_RECOVER ) { - SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_WATCHDOG_POST_TEST_FAILED, 3.0, v24 ); + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_WATCHDOG_POST_TEST_FAILED, 3.0F, v24 ); watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; } else