SystemGui/Sources/PICUploader/PICUploaderGui.cpp

166 lines
4.8 KiB
C++

#include "PICUploaderGui.h"
#include "ui_PICUploaderGui.h"
#include <QFileDialog>
#include "PICUploader.h"
#include "ProtocolDefs.h"
CPICUploaderGui::CPICUploaderGui(QWidget *parent) :
QDialog(parent),
ui(new Ui::CPICUploaderGui)
{
ui->setupUi(this);
connect(ui->mHexFileSelectBtn,SIGNAL(clicked(bool)),this,SLOT(OpenHexFileBtnClicked(bool)));
connect(ui->mConnectBtn,SIGNAL(clicked(bool)),this,SLOT(ConnectBtnClicked(bool)));
connect(ui->mSendCmdBtn,SIGNAL(clicked(bool)),this,SLOT(SendSingleCmdCliked(bool)));
connect(ui->mClearLogginWndwBtn,SIGNAL(clicked(bool)),SLOT(ClearLogScreen(bool)));
connect(ui->mShowHexFileInfoBtn,SIGNAL(clicked(bool)),this,SLOT(ShowHexFileInfoClicked(bool)));
ui->mUploadProgressBar->reset();
}
CPICUploaderGui::~CPICUploaderGui()
{
delete ui;
}
void CPICUploaderGui::OpenHexFileBtnClicked(bool checked)
{
QString FileName = QFileDialog::getOpenFileName(0,"Select Firmware Hex File",QString(),"Hex files (*.hex)");
if(mProgramHandle->OpenHexFileRequest(FileName) != 1)
{
ui->mOpenedHexFilePathLbl->setText(FileName);
}
}
void CPICUploaderGui::SetHexFileStats(QString Stats)
{
ui->mHexFileStatsLbl->setText(Stats);
}
void CPICUploaderGui::ConnectBtnClicked(bool)
{
if(ui->mConnectBtn->text() == "Connect")
{
QString IP = ui->mIPAddressEdit->text();
if(IP.isEmpty())
{
return;
}
// ui->mConnectBtn->setText("Disconnect");
// ui->mConnectBtn->setEnabled(false);
mProgramHandle->ConnectToBootloader(IP);
}
else
{
// ui->mConnectBtn->setText("Connect");
mProgramHandle->DisconnectFromBootloader();
}
}
void CPICUploaderGui::UploaderSocketConnected()
{
ui->mConnectBtn->setEnabled(true);
ui->mConnectBtn->setText("Disconnect");
}
void CPICUploaderGui::UploaderSocketDisconnected()
{
ui->mConnectBtn->setEnabled(true);
ui->mConnectBtn->setText("Connect");
}
void CPICUploaderGui::SendSingleCmdCliked(bool)
{
QString CmdSelection = ui->mCmdSelectCombo->currentText();
if(CmdSelection == "Heartbeat")
{
// mProgramHandle->SendSingleCmdRequest(BOOTLOADER_HEARTBEAT_REQUEST);
mProgramHandle->GuiEvent(UPLOADER_GUI_HEARTBEAT_BTN_CLICK_EVENT);
}
else if(CmdSelection == "Flash Erase")
{
//mProgramHandle->SendSingleCmdRequest(BOOTLOADER_ERASE_BOOTLOADER_FLASH_REQUEST);
mProgramHandle->GuiEvent(UPLOADER_GUI_FLASH_ERASE_BTN_CLICK_EVENT);
}
else if(CmdSelection == "Init Upload")
{
// mProgramHandle->SendSingleCmdRequest(BOOTLOADER_INIT_UPLOAD_REQUEST);
mProgramHandle->GuiEvent(UPLOADER_GUI_INIT_UPLOAD_BTN_CLICK_EVENT);
}
else if(CmdSelection == "Get State")
{
// mProgramHandle->SendSingleCmdRequest(BOOTLOADER_GET_STATE_REQUEST);
mProgramHandle->GuiEvent(UPLOADER_GUI_GET_STATE_BTN_CLICK_EVENT);
}
else if(CmdSelection == "Send Data Chunk")
{
// mProgramHandle->SendSingleCmdRequest(BOOTLOADER_SEND_DATA_CHUNK_REQUEST);
mProgramHandle->GuiEvent(UPLOADER_GUI_SEND_DATA_CHUNK_BTN_CLICK_EVENT);
}
else if(CmdSelection == "Upload Finished")
{
// mProgramHandle->SendSingleCmdRequest(BOOTLOADER_UPLOAD_FINISHED_REQUEST);
mProgramHandle->GuiEvent(UPLOADER_GUI_UPLOAD_FINISHED_BTN_CLICK_EVENT);
}
else if(CmdSelection == "Execute Upgrade")
{
// mProgramHandle->SendSingleCmdRequest(BOOTLOADER_EXECUTE_UPGRAGE_REQUEST);
mProgramHandle->GuiEvent(UPLOADER_GUI_EXECUTE_UPGRADE_BTN_CLICK_EVENT);
}
else if(CmdSelection == "Abort")
{
// mProgramHandle->SendSingleCmdRequest(BOOTLOADER_ABORT_OPERATION_REQUEST);
mProgramHandle->GuiEvent(UPLOADER_GUI_ABORT_BTN_CLICK_EVENT);
}
else if(CmdSelection == "Check Flash")
{
mProgramHandle->GuiEvent(UPLOADER_GUI_CHECK_FLASH_CLICK_EVENT);
}
else if(CmdSelection == "Get Stored Firmware Info")
{
mProgramHandle->GuiEvent(UPLOADER_GUI_GET_STORED_FIRMWARE_INFO_CLICK_EVENT);
}
else
{
qDebug("Unknown selection???!!!");
}
}
void CPICUploaderGui::AddTextToLogScreen(QString Text)
{
Text.append("\n");
mLogScreenText.prepend(Text);
ui->mLoggingWindowTextEdit->setPlainText(mLogScreenText);
}
void CPICUploaderGui::ClearLogScreen(bool dummy)
{
mLogScreenText.clear();
ui->mLoggingWindowTextEdit->setPlainText(mLogScreenText);
}
void CPICUploaderGui::ShowHexFileInfoClicked(bool)
{
mProgramHandle->ShowHexFileInfoRequest();
}
void CPICUploaderGui::SetUploadProgressSettings(int max)
{
ui->mUploadProgressBar->setRange(0,max);
}
void CPICUploaderGui::TickProgressBar()
{
ui->mUploadProgressBar->setValue(ui->mUploadProgressBar->value()+1);
}
void CPICUploaderGui::ResetProgressBar()
{
ui->mUploadProgressBar->reset();
}