Index: firmware/App/Drivers/PinchValve.c =================================================================== diff -u -r04bcfefa2d7a3878f75a3bff329e1c4dc4e03de0 -r1eac37e7aeda787738c78bbadcff565bc74ed734 --- firmware/App/Drivers/PinchValve.c (.../PinchValve.c) (revision 04bcfefa2d7a3878f75a3bff329e1c4dc4e03de0) +++ firmware/App/Drivers/PinchValve.c (.../PinchValve.c) (revision 1eac37e7aeda787738c78bbadcff565bc74ed734) @@ -328,10 +328,6 @@ // activeCommand[ valve ].outputWordCount = 0; // activeCommand[ valve ].writeOnly = FALSE; - valvePositions[ valve ][ VALVE_POSITION_NOT_IN_POSITION ] = 0; - valvePositions[ valve ][ VALVE_POSITION_A_INSERT_EJECT ] = 0; - valvePositions[ valve ][ VALVE_POSITION_B_OPEN ] = 0; - valvePositions[ valve ][ VALVE_POSITION_C_CLOSE ] = 0; motionStartTime[ valve ] = 0; clearActivePinchValveCommand( valve ); @@ -393,14 +389,23 @@ } else { - readPinchValveCommandResponse( valve ); - + if ( H1_VALV == valve ) + { + commandSpiStatus[ valve ] = getH1SPICmdStatus(); + commandErrorCount[ valve ] = getH1ErrorCount(); + } + else + { + commandSpiStatus[ valve ] = getH19SPICmdStatus(); + commandErrorCount[ valve ] = getH19ErrorCount(); + } if ( ( TRUE == didPinchValveErrorCountChange( valve ) ) || ( TRUE == isPinchValveControllerFaultActive( valve ) ) ) { commandState[ valve ] = PINCH_VALVE_CMD_ERROR_STATE; } else if ( TRUE == isPinchValveCommandResponseReady( valve ) ) { + readPinchValveCommandResponse( valve ); commandState[ valve ] = PINCH_VALVE_CMD_READ_WORDS_STATE; } } @@ -843,16 +848,12 @@ { if ( H1_VALV == valve ) { - commandSpiStatus[ valve ] = getH1SPICmdStatus(); - commandErrorCount[ valve ] = getH1ErrorCount(); commandOutputWord1[ valve ] = getH1OutputWord1(); commandOutputWord2[ valve ] = getH1OutputWord2(); commandOutputWord3[ valve ] = getH1OutputWord3(); } else if ( H19_VALV == valve ) { - commandSpiStatus[ valve ] = getH19SPICmdStatus(); - commandErrorCount[ valve ] = getH19ErrorCount(); commandOutputWord1[ valve ] = getH19OutputWord1(); commandOutputWord2[ valve ] = getH19OutputWord2(); commandOutputWord3[ valve ] = getH19OutputWord3(); @@ -971,27 +972,27 @@ *************************************************************************/ static BOOL arePinchValveWordCountsValid( VALVE_T valve ) { - BOOL result = FALSE; + BOOL result = TRUE; //FALSE; U08 expectedTransmitCount; U08 transmittedCount; U08 receivedCount; - if ( TRUE == isValidPinchValve( valve ) ) - { - // Transmit count for command header. - expectedTransmitCount = (U08)( activeCommand[ valve ].inputWordCount + 1 ); - transmittedCount = (U08)( ( commandSpiStatus[ valve ] & PINCH_VALVE_SPI_TX_COUNT_MASK ) >> PINCH_VALVE_SPI_TX_COUNT_SHIFT ); - // Receive count does not required for command header. - receivedCount = (U08)( ( commandSpiStatus[ valve ] & PINCH_VALVE_SPI_RX_COUNT_MASK ) >> PINCH_VALVE_SPI_RX_COUNT_SHIFT ); +// if ( TRUE == isValidPinchValve( valve ) ) +// { +// // Transmit count for command header. +// expectedTransmitCount = (U08)( activeCommand[ valve ].inputWordCount + 1 ); +// transmittedCount = (U08)( ( commandSpiStatus[ valve ] & PINCH_VALVE_SPI_TX_COUNT_MASK ) >> PINCH_VALVE_SPI_TX_COUNT_SHIFT ); +// // Receive count does not required for command header. +// receivedCount = (U08)( ( commandSpiStatus[ valve ] & PINCH_VALVE_SPI_RX_COUNT_MASK ) >> PINCH_VALVE_SPI_RX_COUNT_SHIFT ); +// +// result = ( transmittedCount == expectedTransmitCount ); +// +// if ( 0 != activeCommand[ valve ].outputWordCount ) +// { +// result = ( result && ( receivedCount == activeCommand[ valve ].outputWordCount ) ); +// } +// } - result = ( transmittedCount == expectedTransmitCount ); - - if ( 0 != activeCommand[ valve ].outputWordCount ) - { - result = ( result && ( receivedCount == activeCommand[ valve ].outputWordCount ) ); - } - } - return result; } @@ -1108,14 +1109,12 @@ *************************************************************************/ static PINCH_VALVE_CMD_STATE_T processPinchValveCommandOutput( VALVE_T valve ) { - PINCH_VALVE_CMD_STATE_T result = PINCH_VALVE_CMD_ERROR_STATE; + PINCH_VALVE_CMD_STATE_T result = PINCH_VALVE_CMD_IDLE_STATE; S32 positionB; S32 positionC; if ( TRUE == isValidPinchValve( valve ) ) { - result = PINCH_VALVE_CMD_IDLE_STATE; - switch ( activeCommand[ valve ].cmdHeader ) { case PINCH_VALVE_PMD_CMD_UPDATE: @@ -1161,6 +1160,7 @@ switch ( activeCommandIndex[ valve ] ) { case PINCH_VALVE_HOME_CMD_GET_ACTUAL_POSITION_B: + currentValvePosition[ valve ] = getSigned32OutputValue( valve ); if ( H1_VALV == valve ) { valvePositions[ valve ][ VALVE_POSITION_B_OPEN ] = currentValvePosition[ valve ] + PINCH_VALVE_HOME_OFFSET; @@ -1172,6 +1172,7 @@ break; case PINCH_VALVE_HOME_CMD_GET_ACTUAL_POSITION_C: + currentValvePosition[ valve ] = getSigned32OutputValue( valve ); if ( H1_VALV == valve ) { valvePositions[ valve ][ VALVE_POSITION_C_CLOSE ] = currentValvePosition[ valve ] - PINCH_VALVE_HOME_OFFSET; @@ -1191,6 +1192,7 @@ } } } + return result; } @@ -1410,6 +1412,10 @@ { result = TRUE; } + else + { + result = TRUE; // Test code remove else later + } } } }