diff --git a/firmware/console/binary/serial_can.cpp b/firmware/console/binary/serial_can.cpp index 89b09aa6f4..02857ca397 100644 --- a/firmware/console/binary/serial_can.cpp +++ b/firmware/console/binary/serial_can.cpp @@ -164,6 +164,10 @@ int CanStreamerState::receiveFrame(CANRxFrame *rxmsg, uint8_t *buf, int num, can int CanStreamerState::sendDataTimeout(const uint8_t *txbuf, int numBytes, can_sysinterval_t timeout) { int offset = 0; +#ifdef SERIAL_CAN_DEBUG + efiPrintf("*** INFO: sendDataTimeout %d", numBytes); +#endif /* SERIAL_CAN_DEBUG */ + if (numBytes < 1) return 0; @@ -260,11 +264,20 @@ can_msg_t CanStreamerState::streamAddToTxTimeout(size_t *np, const uint8_t *txbu int numBytes = *np; int offset = 0; +#ifdef SERIAL_CAN_DEBUG + efiPrintf("*** INFO: streamAddToTxTimeout adding %d", numBytes); +#endif /* SERIAL_CAN_DEBUG */ + // we send here only if the TX FIFO buffer is getting overflowed while (numBytes >= txFifoBuf.getSize() - txFifoBuf.getCount()) { int numBytesToAdd = txFifoBuf.getSize() - txFifoBuf.getCount(); txFifoBuf.put(txbuf + offset, numBytesToAdd); int numSent = sendDataTimeout((const uint8_t *)txFifoBuf.getElements(), txFifoBuf.getCount(), timeout); + +#ifdef SERIAL_CAN_DEBUG + efiPrintf("*** INFO: streamAddToTxTimeout numSent %d / numBytes", numSent, numBytes); +#endif /* SERIAL_CAN_DEBUG */ + if (numSent < 1) break; txFifoBuf.clear(); @@ -272,6 +285,10 @@ can_msg_t CanStreamerState::streamAddToTxTimeout(size_t *np, const uint8_t *txbu numBytes -= numSent; } +#ifdef SERIAL_CAN_DEBUG + efiPrintf("*** INFO: streamAddToTxTimeout remaining goes to buffer %d", numBytes); +#endif /* SERIAL_CAN_DEBUG */ + // now we put the rest on hold txFifoBuf.put(txbuf + offset, numBytes); diff --git a/java_console/io/src/main/java/com/rusefi/binaryprotocol/IncomingDataBuffer.java b/java_console/io/src/main/java/com/rusefi/binaryprotocol/IncomingDataBuffer.java index ad952e8f38..6b964d5e97 100644 --- a/java_console/io/src/main/java/com/rusefi/binaryprotocol/IncomingDataBuffer.java +++ b/java_console/io/src/main/java/com/rusefi/binaryprotocol/IncomingDataBuffer.java @@ -23,7 +23,7 @@ import static com.rusefi.binaryprotocol.IoHelper.*; */ @ThreadSafe public class IncomingDataBuffer { - private static final Logging log = getLogging(IoStream.class); + private static final Logging log = getLogging(IncomingDataBuffer.class); static { log.configureDebugEnabled(false); @@ -103,14 +103,14 @@ public class IncomingDataBuffer { public void addData(byte[] freshData) { synchronized (cbb) { if (cbb.size() - cbb.length() < freshData.length) { - log.error("IncomingDataBuffer: buffer overflow not expected"); + log.error("buffer overflow not expected"); cbb.clear(); } cbb.put(freshData); cbb.notifyAll(); } if (log.debugEnabled()) - log.debug("IncomingDataBuffer: " + freshData.length + " byte(s) arrived, total " + cbb.length()); + log.debug(freshData.length + " byte(s) arrived, total " + cbb.length()); } /** @@ -174,7 +174,10 @@ public class IncomingDataBuffer { public int getShort() throws EOFException { streamStats.onArrived(2); synchronized (cbb) { - return cbb.getShort(); + int result = cbb.getShort(); + if (log.debugEnabled()) + log.debug("Consumed some, " + cbb.length() + " remaining"); + return result; } }