Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -rd71d1e6c2be627158cac9a8bc56adac7cdefd1c8 -ref0b3f0ec00fadc50f95e0db1a6477fb4b076ea1 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision d71d1e6c2be627158cac9a8bc56adac7cdefd1c8) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision ef0b3f0ec00fadc50f95e0db1a6477fb4b076ea1) @@ -223,23 +223,13 @@ // if CAN transmitter is idle, start transmitting any pending packets if ( FALSE == isCAN1TransmitInProgress() ) { - U32 bytesXmitted = transmitNextCANPacket(); - - if ( bytesXmitted > 0 ) - { - signalCANXmitsInitiated(); - } + transmitNextCANPacket(); } // if UART transmitter is idle, start transmitting any pending packets if ( FALSE == isSCI1DMATransmitInProgress() ) { - U32 bytesXmitted = transmitNextUARTPacket(); - - if ( bytesXmitted > 0 ) - { - signalSCI1XmitsInitiated(); - } + transmitNextUARTPacket(); } } @@ -504,9 +494,18 @@ // if there's another CAN packet to send, send it if ( dataSize == CAN_MESSAGE_PAYLOAD_SIZE ) { - canTransmit( canREG1, mBox, data ); + signalCANXmitsInitiated(); + if ( canTransmit( canREG1, mBox, data ) == 0 ) + { + // TODO - shouldn't get here, but let's see if we do + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_SOFTWARE_FAULT, (U32)mBox ) + } result = CAN_MESSAGE_PAYLOAD_SIZE; } + else + { // TODO - shouldn't get here - just testing - set first data to new s/w fault enum later + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, (U32)buffer, (U32)dataSize ) + } } return result; @@ -535,6 +534,7 @@ // if there's another UART packet to send, send it if ( dataSize == PC_MESSAGE_PACKET_SIZE ) { + signalSCI1XmitsInitiated(); dmaSetCtrlPacket( DMA_CH3, pcDMAXmitControlRecord ); dmaSetChEnable( DMA_CH3, DMA_HW ); setSCI1DMATransmitInterrupt();