|
@@ -33,6 +33,7 @@ TransmitterSwitch::TransmitterSwitch(QWidget *parent) :
|
|
|
{
|
|
|
ui->setupUi(this);
|
|
|
|
|
|
+ LH_WRITE_LOG("================================== TransmitterPlan =================================");
|
|
|
/* 创建一个布局 */
|
|
|
QVBoxLayout* layout = new QVBoxLayout(parent);
|
|
|
layout->setMargin(0);
|
|
@@ -175,6 +176,11 @@ void TransmitterSwitch::setWebAPIInfo(const InitData& data)
|
|
|
*/
|
|
|
void TransmitterSwitch::getExecPlanFromEQM()
|
|
|
{
|
|
|
+ if(m_fromWebAPI == nullptr)
|
|
|
+ {
|
|
|
+ LH_WRITE_ERROR("未初始化WebAPI");
|
|
|
+ return;
|
|
|
+ }
|
|
|
/* 判断是在线还是离线模式 */
|
|
|
if(!GInfo.isOnlineDB())
|
|
|
{
|
|
@@ -260,6 +266,11 @@ void TransmitterSwitch::getExecPlanFromEQM()
|
|
|
/* 将计划保存到EQM数据库 */
|
|
|
void TransmitterSwitch::saveExecPlanToEQM()
|
|
|
{
|
|
|
+ if(m_fromWebAPI == nullptr)
|
|
|
+ {
|
|
|
+ LH_WRITE_ERROR("未初始化WebAPI");
|
|
|
+ return;
|
|
|
+ }
|
|
|
/* 判断是在线还是离线模式 */
|
|
|
if(!GInfo.isOnlineDB())
|
|
|
{
|
|
@@ -353,7 +364,11 @@ void TransmitterSwitch::setWebAPIInfoOnly(const InitData& data)
|
|
|
LH_WRITE_ERROR("WebAPI info is empty");
|
|
|
return;
|
|
|
}
|
|
|
- m_fromWebAPI->initWebApi(data.url, data.serverID, data.serverKey);
|
|
|
+ if(!m_fromWebAPI->initWebApi(data.url, data.serverID, data.serverKey))
|
|
|
+ {
|
|
|
+ LH_WRITE_ERROR("WebAPI init failed");
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
@@ -430,6 +445,17 @@ void TransmitterSwitch::clearAll()
|
|
|
m_listFrequencyBtn.clear();
|
|
|
/* 清空频率信息 */
|
|
|
ChnContainer.clearAllChannel();
|
|
|
+ /* 删除数据库连接实例 */
|
|
|
+ if(m_fromWebAPI != nullptr)
|
|
|
+ {
|
|
|
+ delete m_fromWebAPI;
|
|
|
+ m_fromWebAPI = nullptr;
|
|
|
+ }
|
|
|
+ if(m_fromSQLite != nullptr)
|
|
|
+ {
|
|
|
+ delete m_fromSQLite;
|
|
|
+ m_fromSQLite = nullptr;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
@@ -545,6 +571,12 @@ void TransmitterSwitch::do_pBtnAddExecPlan()
|
|
|
}
|
|
|
/* 设置计划列表 */
|
|
|
pCard->setPlanList(list);
|
|
|
+
|
|
|
+ if(!GInfo.isOnlineDB())
|
|
|
+ {
|
|
|
+ /* 离线模式不需要写入数据库 */
|
|
|
+ continue;
|
|
|
+ }
|
|
|
/* 写入数据库 */
|
|
|
QList<OnePlanItemInfo> listPlan;
|
|
|
pCard->getAllPlanInfo(listPlan);
|
|
@@ -599,14 +631,19 @@ void TransmitterSwitch::do_pBtnModifyExecPlan()
|
|
|
auto list = mapPlanInfo.find(pCard->getChannelInfo().ChannelID);
|
|
|
pCard->setPlanList(*list);
|
|
|
|
|
|
- int chnID = pCard->getChannelInfo().ChannelID;
|
|
|
- QList<OnePlanItemInfo> listPlan;
|
|
|
- pCard->getAllPlanInfo(listPlan);
|
|
|
- if(!m_fromWebAPI->insertData(chnID, listPlan))
|
|
|
+ /* 在线模式写入数据库,离线模式不需要写入 */
|
|
|
+ if(GInfo.isOnlineDB())
|
|
|
{
|
|
|
- LH_WRITE_ERROR(QString("频率ID为%1的计划写入数据库失败").arg(chnID));
|
|
|
- TipWidget::display(TipWidget::OPERATOR_FAIL, QString("频率<%1>计划写入数据库失败").arg(pCard->getChannelInfo().ChannelName), this);
|
|
|
+ int chnID = pCard->getChannelInfo().ChannelID;
|
|
|
+ QList<OnePlanItemInfo> listPlan;
|
|
|
+ pCard->getAllPlanInfo(listPlan);
|
|
|
+ if(!m_fromWebAPI->insertData(chnID, listPlan))
|
|
|
+ {
|
|
|
+ LH_WRITE_ERROR(QString("频率ID为%1的计划写入数据库失败").arg(chnID));
|
|
|
+ TipWidget::display(TipWidget::OPERATOR_FAIL, QString("频率<%1>计划写入数据库失败").arg(pCard->getChannelInfo().ChannelName), this);
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
TipWidget::display(TipWidget::OPERATOR_OK, "修改计划成功", this);
|
|
|
/* 调用回调函数 */
|
|
|
if(m_trackCB != nullptr)
|
|
@@ -625,6 +662,15 @@ void TransmitterSwitch::do_pBtnRefresh()
|
|
|
/* 点击了“是否开启计划”按钮 */
|
|
|
void TransmitterSwitch::do_pBtnIsOpenPlan()
|
|
|
{
|
|
|
+ if(!GInfo.isOnlineDB())
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(m_fromWebAPI == nullptr)
|
|
|
+ {
|
|
|
+ LH_WRITE_ERROR("未初始化WebAPI");
|
|
|
+ return;
|
|
|
+ }
|
|
|
/* 保存“默认计划”和“执行模式” */
|
|
|
ConfigData config1;
|
|
|
config1.key = static_cast<int>(enum_ExecPlanConfig::OpenPlan);
|
|
@@ -650,6 +696,15 @@ void TransmitterSwitch::do_pBtnIsOpenPlan()
|
|
|
/* 点击了“执行模式”按钮 */
|
|
|
void TransmitterSwitch::do_pBtnExecMode()
|
|
|
{
|
|
|
+ if(!GInfo.isOnlineDB())
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(m_fromWebAPI == nullptr)
|
|
|
+ {
|
|
|
+ LH_WRITE_ERROR("未初始化WebAPI");
|
|
|
+ return;
|
|
|
+ }
|
|
|
/* 保存“默认计划”和“执行模式” */
|
|
|
ConfigData config1;
|
|
|
config1.key = static_cast<int>(enum_ExecPlanConfig::ExecMode);
|
|
@@ -713,14 +768,21 @@ void TransmitterSwitch::do_pBtnClearPlan()
|
|
|
}
|
|
|
/* 清空计划 */
|
|
|
pCard->clearPlanItem();
|
|
|
- /* 删除数据库中的计划 */
|
|
|
- if(!m_fromWebAPI->deleteOneChnPlan(pCard->getChannelInfo().ChannelID))
|
|
|
+ if(GInfo.isOnlineDB())
|
|
|
{
|
|
|
- LH_WRITE_ERROR(QString("频率ID为%1的计划删除失败").arg(pCard->getChannelInfo().ChannelID));
|
|
|
- TipWidget::display(TipWidget::OPERATOR_FAIL, QString("频率<%1>计划删除失败").arg(pCard->getChannelInfo().ChannelName), this);
|
|
|
+ /* 删除数据库中的计划 */
|
|
|
+ if(!m_fromWebAPI->deleteOneChnPlan(pCard->getChannelInfo().ChannelID))
|
|
|
+ {
|
|
|
+ LH_WRITE_ERROR(QString("频率ID为%1的计划删除失败").arg(pCard->getChannelInfo().ChannelID));
|
|
|
+ TipWidget::display(TipWidget::OPERATOR_FAIL, QString("频率<%1>计划删除失败").arg(pCard->getChannelInfo().ChannelName), this);
|
|
|
+ }else {
|
|
|
+ TipWidget::display(TipWidget::OPERATOR_OK, "清空计划成功", this);
|
|
|
+ }
|
|
|
}else {
|
|
|
+ /* 离线模式不需要删除数据库中的计划 */
|
|
|
TipWidget::display(TipWidget::OPERATOR_OK, "清空计划成功", this);
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/* 点击了复制到其他频率按钮 */
|
|
@@ -929,6 +991,10 @@ void TransmitterSwitch::do_setUIStyle()
|
|
|
/* 给所有的按钮设置样式 */
|
|
|
ui->pBtn_allFrequency->setStyleSheet(EPUIStyle.StrQSS_PBtnFrequency);
|
|
|
// LH_WRITE_LOG(QString("频率按钮设置样式:%1").arg(EPUIStyle.StrQSS_PBtnFrequency));
|
|
|
+ for(auto& it : m_listFrequencyBtn)
|
|
|
+ {
|
|
|
+ it->setStyleSheet(EPUIStyle.StrQSS_PBtnFrequency);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/* 选择了一个频率按钮,取消其他的选择 */
|
|
@@ -1160,10 +1226,8 @@ void TransmitterSwitch::setOneFrequencyMode()
|
|
|
/* 设置频率信息 */
|
|
|
GInfo.setChannelInfo(chnInfo);
|
|
|
}
|
|
|
- // LH_WRITE_LOG_DEBUG(QString("设置频率信息成功,频率ID:%1,频率名称:%2").arg(GInfo.getChannelInfo().ChannelID).arg(GInfo.getChannelInfo().ChannelName));
|
|
|
/* 如果设置了特定的频率,删除其他的频率 */
|
|
|
ChnContainer.deleteOtherChannel(GInfo.getChannelInfo().ChannelID);
|
|
|
- // LH_WRITE_LOG_DEBUG(QString("map频率ID:%1,频率名称:%2").arg(ChnContainer.getMapChannel().first().ChannelID).arg(ChnContainer.getMapChannel().first().ChannelName));
|
|
|
}else
|
|
|
{
|
|
|
/* 清空所有频率 */
|
|
@@ -1174,6 +1238,8 @@ void TransmitterSwitch::setOneFrequencyMode()
|
|
|
|
|
|
/* 隐藏复制到其他频率的按钮 */
|
|
|
ui->pBtn_cloneToOther->hide();
|
|
|
+ /* 隐藏全部频率按钮 */
|
|
|
+ ui->pBtn_allFrequency->hide();
|
|
|
}
|
|
|
|
|
|
/* 设置使用在线或者使用离线数据库,主要是保存模版 */
|
|
@@ -1206,6 +1272,12 @@ void TransmitterSwitch::setUseOnlineDB(bool useOnlineDB)
|
|
|
/* 从EQM数据库导入模版 */
|
|
|
void TransmitterSwitch::importTemplateFromEQM()
|
|
|
{
|
|
|
+ if(m_fromWebAPI == nullptr)
|
|
|
+ {
|
|
|
+ LH_WRITE_ERROR("没有初始化FromWebAPI");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
QMultiMap<int, OneTemplateInfo> tabList;
|
|
|
/* 判断有没有选中卡片 */
|
|
|
auto pCard = PData.getCurrentPlanCard();
|
|
@@ -1306,6 +1378,12 @@ void TransmitterSwitch::importTemplateFromEQM()
|
|
|
/* 从SQLite导入模版 */
|
|
|
void TransmitterSwitch::importTemplateFromSQLite()
|
|
|
{
|
|
|
+ if(m_fromSQLite == nullptr)
|
|
|
+ {
|
|
|
+ LH_WRITE_ERROR("没有初始化FromSQLite");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
QMultiMap<int, OneTemplateInfo> tabList;
|
|
|
/* 获取当前选中的卡片 */
|
|
|
auto pCard = PData.getCurrentPlanCard();
|
|
@@ -1374,6 +1452,12 @@ void TransmitterSwitch::importTemplateFromSQLite()
|
|
|
/* 将模版写入数据库 */
|
|
|
void TransmitterSwitch::saveTemplateToEQM(ChannelInfo info)
|
|
|
{
|
|
|
+ if(m_fromWebAPI == nullptr)
|
|
|
+ {
|
|
|
+ LH_WRITE_ERROR("没有初始化FromWebAPI");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
auto pCard = PData.findPlanCard(info.ChannelID);
|
|
|
if(pCard == nullptr)
|
|
|
{
|
|
@@ -1419,6 +1503,12 @@ void TransmitterSwitch::saveTemplateToEQM(ChannelInfo info)
|
|
|
/* 保存计划到SQLite数据库 */
|
|
|
void TransmitterSwitch::saveTemplateToSQLite(ChannelInfo info)
|
|
|
{
|
|
|
+ if(m_fromSQLite == nullptr)
|
|
|
+ {
|
|
|
+ LH_WRITE_ERROR("没有初始化FromSQLite");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
auto pCard = PData.findPlanCard(info.ChannelID);
|
|
|
if(pCard == nullptr)
|
|
|
{
|
|
@@ -1464,6 +1554,12 @@ void TransmitterSwitch::saveTemplateToSQLite(ChannelInfo info)
|
|
|
/* 从EQM数据库中删除一个模版 */
|
|
|
void TransmitterSwitch::deleteTemplateFromEQM(OneTemplateInfo info)
|
|
|
{
|
|
|
+ if(m_fromWebAPI == nullptr)
|
|
|
+ {
|
|
|
+ LH_WRITE_ERROR("没有初始化FromWebAPI");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
/* 删除模版 */
|
|
|
if(m_fromWebAPI->deleteTemplate(info))
|
|
|
{
|
|
@@ -1477,6 +1573,13 @@ void TransmitterSwitch::deleteTemplateFromEQM(OneTemplateInfo info)
|
|
|
/* 从SQLite数据库中删除一个模版 */
|
|
|
void TransmitterSwitch::deleteTemplateFromSQLite(OneTemplateInfo info)
|
|
|
{
|
|
|
+ if(m_fromSQLite == nullptr)
|
|
|
+ {
|
|
|
+ LH_WRITE_ERROR("没有初始化FromSQLite");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
if(m_fromSQLite->deleteTemplate(info))
|
|
|
{
|
|
|
TipWidget::display(TipWidget::OPERATOR_OK, "删除模版成功", this);
|
|
@@ -1489,6 +1592,12 @@ void TransmitterSwitch::deleteTemplateFromSQLite(OneTemplateInfo info)
|
|
|
/* 管理EQM数据库的模版数据 */
|
|
|
void TransmitterSwitch::manageTemplateFromEQM()
|
|
|
{
|
|
|
+ if(m_fromWebAPI == nullptr)
|
|
|
+ {
|
|
|
+ LH_WRITE_ERROR("没有初始化FromWebAPI");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
/* int是频率ID */
|
|
|
QMultiMap<int, OneTemplateInfo> tabList;
|
|
|
|
|
@@ -1567,6 +1676,12 @@ void TransmitterSwitch::manageTemplateFromEQM()
|
|
|
/* 管理SQLite数据库的模版数据 */
|
|
|
void TransmitterSwitch::manageTemplateFromSQLite()
|
|
|
{
|
|
|
+ if (m_fromSQLite == nullptr)
|
|
|
+ {
|
|
|
+ LH_WRITE_ERROR("没有初始化FromSQLite");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
QList<OneTemplateInfo> listTemplate;
|
|
|
/* 获取全部的频率 */
|
|
|
if(!m_fromSQLite->getTemplateList(GInfo.getChannelInfo().ChannelID, listTemplate))
|