mirror of https://github.com/EspoTek/Labrador.git
Simplify firmware path construction
Use QString::asprintf() instead of a buffer. Convert to a C string using qPrintable().
This commit is contained in:
parent
19ae371cee
commit
5ba50892e9
|
@ -148,14 +148,11 @@ int androidUsbDriver::get_new_bootloader_ctx(libusb_device **device_ptr, libusb_
|
|||
|
||||
int androidUsbDriver::flashFirmware(void){
|
||||
|
||||
//File name
|
||||
char fname[128];
|
||||
qDebug() << "\n\n\n\n\n\n\n\nFLASHING FIRMWARE....\n\n\n\n\n\n\n";
|
||||
sprintf(fname, "assets:/firmware/labrafirm_%04x_%02x.hex", EXPECTED_FIRMWARE_VERSION, DEFINED_EXPECTED_VARIANT);
|
||||
qDebug() << "FLASHING " << fname;
|
||||
|
||||
//Copy to somewhere that fopen can access
|
||||
QFile asset_file(fname);
|
||||
QFile asset_file(QString::asprintf("assets:/firmware/labrafirm_%04x_%02x.hex", EXPECTED_FIRMWARE_VERSION, DEFINED_EXPECTED_VARIANT));
|
||||
qDebug() << "FLASHING " << asset_file.fileName();
|
||||
qDebug() << "asset_file.exists()" << asset_file.exists();
|
||||
|
||||
QString filePath = QStandardPaths::writableLocation( QStandardPaths::StandardLocation::AppDataLocation );
|
||||
|
@ -174,12 +171,6 @@ int androidUsbDriver::flashFirmware(void){
|
|||
}
|
||||
} else qDebug() << "File not found in assets";
|
||||
|
||||
std::string filePath_stdstr = filePath.toStdString();
|
||||
char filePath_cstring[256];
|
||||
strcpy(filePath_cstring, filePath_stdstr.c_str());
|
||||
|
||||
qDebug() << "File path is" << filePath_cstring;
|
||||
|
||||
if(connected) {
|
||||
//Switch from application mode to bootloader mode. Otherwise assume we are in bootloader.
|
||||
bootloaderJump();
|
||||
|
@ -231,7 +222,7 @@ int androidUsbDriver::flashFirmware(void){
|
|||
char command1[256];
|
||||
sprintf(command1, "dfu-programmer atxmega32a4u erase --force --debug 300");
|
||||
char command2[256];
|
||||
sprintf(command2, "dfu-programmer atxmega32a4u flash %s --debug 300", filePath_cstring);
|
||||
sprintf(command2, "dfu-programmer atxmega32a4u flash %s --debug 300", qPrintable(filePath));
|
||||
char command3[256];
|
||||
sprintf(command3, "dfu-programmer atxmega32a4u launch");
|
||||
char command4[256];
|
||||
|
|
|
@ -340,10 +340,7 @@ void unixUsbDriver::backupCleanup(){
|
|||
|
||||
int unixUsbDriver::flashFirmware(void){
|
||||
#ifndef PLATFORM_ANDROID
|
||||
char fname[128];
|
||||
qDebug() << "\n\n\n\n\n\n\n\nFIRMWARE MISMATCH!!!! FLASHING....\n\n\n\n\n\n\n";
|
||||
sprintf(fname, "/firmware/labrafirm_%04x_%02x.hex", EXPECTED_FIRMWARE_VERSION, DEFINED_EXPECTED_VARIANT);
|
||||
qDebug() << "FLASHING " << fname;
|
||||
|
||||
signalFirmwareFlash();
|
||||
QApplication::processEvents();
|
||||
|
@ -354,18 +351,15 @@ int unixUsbDriver::flashFirmware(void){
|
|||
|
||||
//Get location of firmware file
|
||||
QString dirString = QCoreApplication::applicationDirPath();
|
||||
dirString.append(fname);
|
||||
QByteArray array = dirString.toLocal8Bit();
|
||||
char* buffer = array.data();
|
||||
//qDebug() << buffer;
|
||||
|
||||
dirString.append(QString::asprintf("/firmware/labrafirm_%04x_%02x.hex", EXPECTED_FIRMWARE_VERSION, DEFINED_EXPECTED_VARIANT));
|
||||
qDebug() << "FLASHING " << dirString;
|
||||
|
||||
//Set up interface to dfuprog
|
||||
int exit_code = 1;
|
||||
char command1[256];
|
||||
sprintf(command1, "dfu-programmer atxmega32a4u erase --force");
|
||||
char command2[256];
|
||||
sprintf(command2, "dfu-programmer atxmega32a4u flash %s", buffer);
|
||||
sprintf(command2, "dfu-programmer atxmega32a4u flash %s", qPrintable(dirString));
|
||||
char command3[256];
|
||||
sprintf(command3, "dfu-programmer atxmega32a4u launch");
|
||||
char command4[256];
|
||||
|
@ -416,13 +410,8 @@ int unixUsbDriver::flashFirmware(void){
|
|||
void unixUsbDriver::manualFirmwareRecovery(void){
|
||||
#ifndef PLATFORM_ANDROID
|
||||
//Get location of firmware file
|
||||
char fname[128];
|
||||
sprintf(fname, "/firmware/labrafirm_%04x_%02x.hex", EXPECTED_FIRMWARE_VERSION, DEFINED_EXPECTED_VARIANT);
|
||||
|
||||
QString dirString = QCoreApplication::applicationDirPath();
|
||||
dirString.append(fname);
|
||||
QByteArray array = dirString.toLocal8Bit();
|
||||
char* buffer = array.data();
|
||||
dirString.append(QString::asprintf("/firmware/labrafirm_%04x_%02x.hex", EXPECTED_FIRMWARE_VERSION, DEFINED_EXPECTED_VARIANT));
|
||||
|
||||
//Vars
|
||||
QMessageBox manualFirmwareMessages;
|
||||
|
@ -435,7 +424,7 @@ void unixUsbDriver::manualFirmwareRecovery(void){
|
|||
char eraseCommand[256];
|
||||
sprintf(eraseCommand, "dfu-programmer atxmega32a4u erase --force");
|
||||
char flashCommand[256];
|
||||
sprintf(flashCommand, "dfu-programmer atxmega32a4u flash %s", buffer);
|
||||
sprintf(flashCommand, "dfu-programmer atxmega32a4u flash %s", qPrintable(dirString));
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -327,10 +327,7 @@ void winUsbDriver::shutdownProcedure(){
|
|||
}
|
||||
|
||||
int winUsbDriver::flashFirmware(void){
|
||||
char fname[64];
|
||||
qDebug() << "\n\n\n\n\n\n\n\nFIRMWARE MISMATCH!!!! FLASHING....\n\n\n\n\n\n\n";
|
||||
sprintf(fname, "labrafirm_%04x_%02x.hex", EXPECTED_FIRMWARE_VERSION, DEFINED_EXPECTED_VARIANT);
|
||||
qDebug() << "FLASHING " << fname;
|
||||
|
||||
signalFirmwareFlash();
|
||||
QApplication::processEvents();
|
||||
|
@ -339,12 +336,14 @@ int winUsbDriver::flashFirmware(void){
|
|||
//Go to bootloader mode
|
||||
bootloaderJump();
|
||||
|
||||
//Set up interface to dfuprog
|
||||
//Get location of firmware file
|
||||
QString dfuprog_location = QCoreApplication::applicationDirPath();
|
||||
dfuprog_location.append("/firmware/dfu-programmer");
|
||||
QString file_location = QCoreApplication::applicationDirPath();
|
||||
file_location.append("/firmware/");
|
||||
file_location.append(fname);
|
||||
file_location.append(QString::asprintf("/firmware/labrafirm_%04x_%02x.hex", EXPECTED_FIRMWARE_VERSION, DEFINED_EXPECTED_VARIANT));
|
||||
qDebug() << "FLASHING " << file_location;
|
||||
|
||||
//Set up interface to dfuprog
|
||||
QProcess dfu_exe;
|
||||
QStringList args_stage1;
|
||||
args_stage1 << "atxmega32a4u" << "erase" << "--force";
|
||||
|
@ -411,11 +410,8 @@ int winUsbDriver::flashFirmware(void){
|
|||
|
||||
void winUsbDriver::manualFirmwareRecovery(void){
|
||||
//Get location of firmware file
|
||||
char fname[128];
|
||||
sprintf(fname, "/firmware/labrafirm_%04x_%02x.hex", EXPECTED_FIRMWARE_VERSION, DEFINED_EXPECTED_VARIANT);
|
||||
|
||||
QString file_location = QCoreApplication::applicationDirPath();
|
||||
file_location.append(fname);
|
||||
file_location.append(QString::asprintf("/firmware/labrafirm_%04x_%02x.hex", EXPECTED_FIRMWARE_VERSION, DEFINED_EXPECTED_VARIANT));
|
||||
|
||||
//Set up interface to dfuprog
|
||||
QString dfuprog_location = QCoreApplication::applicationDirPath();
|
||||
|
|
Loading…
Reference in New Issue