/***************************************************************************

  BionxControl
  © 2025 -2026 christoph holzheuer
  christoph.holzheuer@gmail.com

  Using:

  mhs_can_drv.c
  © 2011 - 2023 by MHS-Elektronik GmbH & Co. KG, Germany
  Klaus Demlehner, klaus@mhs-elektronik.de
  @see www.mhs-elektronik.de

  Based on Bionx data type descriptions from:

  BigXionFlasher USB V 0.2.4 rev. 97
  © 2011-2013 by Thomas Koenig <info@bigxionflasher.org>
  @see www.bigxionflasher.org

  Bionx Bike Info
  © 2018 Thorsten Schmidt (tschmidt@ts-soft.de)
  @see www.ts-soft.de

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 3 of the License, or
  (at your option) any later version.
  @see https://github.com/bikemike/bionx-bikeinfo

 ***************************************************************************/


#include <QDebug>
#include <QRandomGenerator>

#include <bcdriver.h>



BCDriver::DriverState BCDriver::getDriverState() const
{
  return _driverState;
}

/**
 *
 * @brief Der Slot, der das Initialisieren des Treibers auslöst.
 * Teilt sich in die zwei Etappen
 * - Driver dll laden
 * - Driver mit der Console verbinden
 * D.h. initDriver kann als Wiedereinstiegspunkt
 * verwendet werden, falls der Treiber geladen wurde,
 * aber die Console noch nicht eingeschaltet war.
 */

BCDriver::DriverStateResult BCDriverDummy::loadAndStartDriver()
{
  _driverState = DriverState::DeviceReady;
  return _driverState;
}


/// -----------------------------------------------------------------------------------
/// -----------------------------------------------------------------------------------


TransmitResult BCDriverDummy::readRawByte( uint32_t deviceID, uint8_t registerID ) const
{
  Q_UNUSED(deviceID)
  Q_UNUSED(registerID)
  qDebug() << " --- Dummy: readRawByte:DriverState: " << getDriverState();
  uint8_t myRandomByte = static_cast<uint8_t>(QRandomGenerator::global()->bounded(256));
  return myRandomByte;
}

TransmitResult BCDriverDummy::writeRawByte( uint32_t deviceID, uint8_t registerID, uint8_t value ) const
{
  Q_UNUSED(deviceID)
  Q_UNUSED(registerID)
  qDebug() << " --- BCDriverTinyCan writeRawValue: " << value;
  return 0;
}


