Desktop: Add option to force overwrite firmware for OSTC4.

In order to support development of the open source firmware of the
OSTC4.
Requires changes in libdivecomputer.

Signed-off-by: Michael Keller <github@ike.ch>
This commit is contained in:
Michael Keller 2023-03-03 01:01:46 +13:00
parent 5b263a8f4e
commit 324fbfa685
7 changed files with 47 additions and 33 deletions

View file

@ -491,13 +491,13 @@ bool ConfigureDiveComputer::restoreXMLBackup(QString fileName, DeviceDetails *de
return true;
}
void ConfigureDiveComputer::startFirmwareUpdate(QString fileName, device_data_t *data)
void ConfigureDiveComputer::startFirmwareUpdate(QString fileName, device_data_t *data, bool forceUpdate)
{
setState(FWUPDATE);
if (firmwareThread)
firmwareThread->deleteLater();
firmwareThread = new FirmwareUpdateThread(this, data, fileName);
firmwareThread = new FirmwareUpdateThread(this, data, fileName, forceUpdate);
connectThreadSignals(firmwareThread);
firmwareThread->start();

View file

@ -36,7 +36,7 @@ public:
void fetchDeviceDetails();
bool saveXMLBackup(QString fileName, DeviceDetails *details, device_data_t *data);
bool restoreXMLBackup(QString fileName, DeviceDetails *details);
void startFirmwareUpdate(QString fileName, device_data_t *data);
void startFirmwareUpdate(QString fileName, device_data_t *data, bool forceUpdate);
void resetSettings(device_data_t *data);
QString dc_open(device_data_t *data);

View file

@ -2203,7 +2203,7 @@ void WriteSettingsThread::run()
}
FirmwareUpdateThread::FirmwareUpdateThread(QObject *parent, device_data_t *data, QString fileName) : DeviceThread(parent, data), m_fileName(fileName)
FirmwareUpdateThread::FirmwareUpdateThread(QObject *parent, device_data_t *data, QString fileName, bool forceUpdate) : DeviceThread(parent, data), m_fileName(fileName), m_forceUpdate(forceUpdate)
{
}
@ -2218,7 +2218,7 @@ void FirmwareUpdateThread::run()
}
switch (dc_device_get_type(m_data->device)) {
case DC_FAMILY_HW_OSTC3:
rc = hw_ostc3_device_fwupdate(m_data->device, qPrintable(m_fileName));
rc = hw_ostc3_device_fwupdate(m_data->device, qPrintable(m_fileName), m_forceUpdate);
break;
case DC_FAMILY_HW_OSTC:
rc = hw_ostc_device_fwupdate(m_data->device, qPrintable(m_fileName));

View file

@ -44,11 +44,12 @@ private:
class FirmwareUpdateThread : public DeviceThread {
Q_OBJECT
public:
FirmwareUpdateThread(QObject *parent, device_data_t *data, QString fileName);
FirmwareUpdateThread(QObject *parent, device_data_t *data, QString fileName, bool forceUpdate);
void run();
private:
QString m_fileName;
bool m_forceUpdate;
};
class ResetSettingsThread : public DeviceThread {