code: boolean attemptResend(ZWaveChannelContext ctx, boolean dueToCAN) {
          if (startFrame.getSendCount() < MAX_SEND_COUNT) {
              logger.debug("Transaction {} has failed - will reset and resend initial request", getId());
              reset();
              // if a CAN was received, then we decrement the send count by one so this attempt doesn't count towards the maximum resend count
              if (dueToCAN) {
                  startFrame.decrementSendCount();
              }
              ctx.writeFrame(new OutboundDataFrame(startFrame, isListeningNode()));
              return true;
          } else {
              logger.debug("Exceeded max transaction resends");
              ctx.fireEvent(new TransactionFailedEvent(getId(), startFrame));
              return false;
          }
      }
docs: Attempts to re-send the data frame that initiated this transaction.
  
  @param ctx the ChannelHandlerContext
  @param dueToCAN indicates whether the re-send attempt was due to a CAN frame that was received
  
  @return boolean indicating whether re-send was attempted