#include "mdevicemanager.h"
#include "ui_mdevicemanager.h"
#include "communication/network.h"
#include <QHeaderView>
#include <wDevicesManager/specialdlg.h>
#include <LoUIClass/x_uimsgboxok.h>
#include <QAction>
//#include <LoQClass/qexcel.h>
#include <QItemSelectionModel>
//设备管理响应页面
mDeviceManager::mDeviceManager(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::mDeviceManager)
{
    setAttribute(Qt::WA_DeleteOnClose);
    ui->setupUi(this);
    pNetComm = new NetComm(this);
    p_globaNetComm=pNetComm;
    QStyledItemDelegate* itemDelegate = new QStyledItemDelegate();
    m_headerItem = new QTreeWidgetItem();
    ui->label_2->setVisible(false);
    ui->label_4->setVisible(false);
    ui->label_5->setVisible(false);
    ui->label_5->setVisible(false);
    ui->label_6->setVisible(false);
    ui->label_7->setVisible(false);
    ui->label_8->setVisible(false);
    ui->label_9->setVisible(false);
    ui->label_10->setVisible(false);
    ui->label_11->setVisible(false);
    ui->nDeviceNumOnline->setVisible(false);
    ui->nDeviceNumUnlogin->setVisible(false);
    ui->nDeviceNumOffline->setVisible(false);

    QAction *search = new QAction(ui->txtSearch);
    search->setIcon(QIcon(":/res/ProgramManager/bnSearch.png"));
    ui->txtSearch->addAction(search, QLineEdit::LeadingPosition);
    ui->txtSearch->setClearButtonEnabled(true);
    ui->txtSearch->setProperty("ssType", "progManageTool");
    ui->txtSearch->setProperty("ssName", "searchProg");

//qss中使用，设置按钮（刷新，指定ip）的样式
    ui->bnFlashArea ->setProperty("ssType", tr("devManager"));
    ui->bnFlashArea ->setProperty("ssName", tr("devFlash"));
    ui->bnFlashArrow->setProperty("ssType", tr("devManager"));
    ui->bnFlashArrow->setProperty("ssName", tr("devFlashSpeciallyIP"));

    itemDelegate->setObjectName(tr("bnFlashArrowItem"));
    ui->bnFlashArrow->setItemDelegate(itemDelegate);
    //ui->bnFlashArrow->activated()
    refreshLable();
    m_headerItem->setTextAlignment(1, Qt::AlignHCenter | Qt::AlignVCenter);
    for(int i=2; i<ENUM_DEVICEHEADE_END; i++) {
        m_headerItem->setTextAlignment(i, Qt::AlignCenter);
    }
//    ui->wDeviceList->setProperty("ssType", "Toplist");
    ui->wDeviceList->setHeaderItem(m_headerItem);
    ui->wDeviceList->header()->setSectionResizeMode(ENUM_DEVICEHEADE_CHECK, QHeaderView::Fixed);
    ui->wDeviceList->header()->setSectionResizeMode(ENUM_DEVICEHEADE_ONLINE, QHeaderView::Fixed);
    ui->wDeviceList->header()->setSectionResizeMode(ENUM_DEVICEHEADE_SCREEN_ID, QHeaderView::Stretch);
    ui->wDeviceList->header()->setSectionResizeMode(ENUM_DEVICEHEADE_SCREEN_IP, QHeaderView::Stretch);
    ui->wDeviceList->header()->setSectionResizeMode(ENUM_DEVICEHEADE_SCREEN_SIZE, QHeaderView::Stretch);
    ui->wDeviceList->header()->setSectionResizeMode(ENUM_DEVICEHEADE_REMARK_NAME, QHeaderView::Stretch);
    ui->wDeviceList->header()->setSectionResizeMode(ENUM_DEVICEHEADE_BRIGHTNESS, QHeaderView::Stretch);
    ui->wDeviceList->header()->setSectionResizeMode(ENUM_DEVICEHEADE_POWER, QHeaderView::Stretch);
    ui->wDeviceList->header()->setSectionResizeMode(ENUM_DEVICEHEADE_PASSWORD, QHeaderView::Fixed);
    ui->wDeviceList->header()->setSectionResizeMode(ENUM_DEVICEHEADE_MORE_INFO, QHeaderView::Fixed);
    ui->wDeviceList->header()->setSectionResizeMode(ENUM_DEVICEHEADE_PIC_READBACK, QHeaderView::Fixed);

    ui->wDeviceList->header()->setStretchLastSection(false);
    ui->wDeviceList->setColumnWidth(ENUM_DEVICEHEADE_CHECK, 62);
    ui->wDeviceList->setColumnWidth(ENUM_DEVICEHEADE_ONLINE, 52);

    ui->wDeviceList->setColumnWidth(ENUM_DEVICEHEADE_PASSWORD, 72);
    ui->wDeviceList->setColumnWidth(ENUM_DEVICEHEADE_MORE_INFO, 72);
    ui->wDeviceList->setColumnWidth(ENUM_DEVICEHEADE_PIC_READBACK, 72);

 //   connect(ui->bnFlashArea,    SIGNAL(clicked()), pNetComm, SLOT(RestoreLedCardIpByUdpCmd()));
    connect(ui->bnFlashArea,    SIGNAL(clicked()), this, SLOT(OnRefreshButtonPro()));
    connect(ui->bnFlashArea,    SIGNAL(clicked()), pNetComm, SLOT(CheckControllersInLanByUdp2222Cmd()));
    connect(ui->bnFlashArrow,SIGNAL(activated(int)),this,SLOT(onSpecialIpPro()));
    //ui->bnFlashArrow->currentIndexChanged(1);
   /// ui->bnFlashArrow->activated()
    connect(ui->wDeviceList, SIGNAL(sigCheckStateChanged(int)), this, SLOT(onCheckStateChanged(int)));
//    connect(ui->wDeviceList, SIGNAL(itemSelectionChanged()), this, SLOT(onSelectionChanged()));
 //   ui->wDeviceList->setSelectionBehavior(QAbstractItemView::SelectItems);
   ui->wDeviceList->setSelectionMode(QAbstractItemView::SingleSelection);
    //ui->wDeviceList->setSelectionModel(QAbstractItemView::SingleSelection);
    //连接信号和设备管理界面槽行数
    connect(pNetComm,SIGNAL(addLedCard(LedCard *)),this,SLOT(onAddLedCard(LedCard *)));
    connect(pNetComm,SIGNAL(ClearHeartbeatFlagByUdp(LedCard *)),this,SLOT(onClearHeartbeatFlagByUdp(LedCard *)));

//    connect(pNetComm,SIGNAL(LedCardChanged(LedCard *)),this,SLOT(onLedCardChanged(LedCard *)));
    connect(pNetComm,SIGNAL(sigwDeviceItemHttpPost(LedCard *)),this,SLOT(onsigwDeviceItemHttpPost(LedCard *)));

    connect(ui->txtSearch,SIGNAL(textChanged(const QString &)),this,SLOT(FilterProgram(const QString &)));
    connect(this,SIGNAL(sigShowDevicesInfoOrControlWidget(int)),this,SLOT(ShowDevicesInfoOrControlWidget(int)));
//    connect(this,SIGNAL(sigShowDevicesInfoOrControlWidget(int)),this,SLOT(ShowDevicesInfoOrControlWidget(int)));


    //开始轮训查找局域网内的控制卡
    pNetComm->StartUpdCheck();

    ui->wDeviceList->hideColumn(0);
    ui->wDeviceList->HideHeaderCheckBox(true);

}

mDeviceManager::~mDeviceManager()
{
    pNetComm->StopAllCheck();
    delete pNetComm;

    delete ui;
}
#include <QDesktopWidget>

int mDeviceManager::GetScreenWidth()
   {
       QDesktopWidget* desktopWidget = QApplication::desktop();
       //获取可用桌面大小
      // QRect deskRect = desktopWidget->availableGeometry();
       //获取设备屏幕大小
       //QRect screenRect = desktopWidget->screenGeometry();QGuiApplication::screens();
//       int iScreenNum=desktopWidget->screenNumber();
//       QList<QScreen *> tempScreen=QGuiApplication::screens();
//       int ireturnwidth=3840;
//       for(int i=0;i<iScreenNum;i++)
//       {
//           QScreen *t=tempScreen.at(i);

//           t->screenGeometry();

//       }
//       const QRect screenGeometry(const QWidget *widget) const;
//       const QRect availableGeometry(const QWidget *widget) const;




       QRect screenRect = desktopWidget->screenGeometry();
       qDebug()<<"*********分辨率********"<<screenRect.width();
       return screenRect.width();
       //g_nActScreenY = screenRect.height();
       //g_nActScreenX = deskRect.width();
       //g_nActScreenY = deskRect.height();

       //获取系统设置的屏幕个数（屏幕拷贝方式该值为1）
       //g_nScreenCount = desktopWidget->screenCount();
}
void mDeviceManager::ShowDevicesInfoOrControlWidget(int index)
{
    int iDeviceListWidth=340;
    m_intIndexFlagOfInfoOrControl=index;
    if(index==ENUM_MAIN_TOOL_DEVICESMANAGER)//设备信息列表页面
    {   ui->wDeviceList->hideColumn(0);
        ui->wDeviceList->HideHeaderCheckBox(true);
        if(m_wDeviceSetting!=nullptr)
        {
            for(int j=ENUM_DEVICEHEADE_SCREEN_SIZE;j<ENUM_DEVICEHEADE_END;j++)
                ui->wDeviceList->showColumn(j);
            int iParentWidgetWidth=parentWidget()->width();
            ui->wDeviceList->resize(iParentWidgetWidth,ui->wDeviceList->size().height());
            ui->wDeviceList->setMaximumWidth(GetScreenWidth());
            m_wDeviceSetting->hide();
            m_pDevicesControlWidget->hide();

        }

    }
    else if(index==ENUM_MAIN_TOOL_DEVICESCONTROL)//终端控制页面
    {
        ui->wDeviceList->showColumn(0);
        ui->wDeviceList->HideHeaderCheckBox(false);
        if(m_wDeviceSetting==nullptr)
        {
            m_wDeviceSetting = new mDeviceSetting(this);
            m_wDeviceSetting->setFixedHeight(120);
            m_wDeviceSetting->setStyleSheet("background-color: rgba(255,255,255,0.5)");
            for(int j=ENUM_DEVICEHEADE_SCREEN_SIZE;j<ENUM_DEVICEHEADE_END;j++)
                ui->wDeviceList->hideColumn(j);
             ui->verticalLayout_6->addWidget(m_wDeviceSetting);
             GetSelectDeviceNum();
             m_pDevicesControlWidget=new DevicesControllWidget(this,&SelectedLedCardList);
             ui->verticalLayout_6->addWidget(m_pDevicesControlWidget);
             m_pDevicesControlWidget->setStyleSheet("background-color: rgba(255,255,255,0.5)");
//            m_pDevicesControlWidget->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding);
//            m_wDeviceSetting->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding);
            ui->wDeviceList->resize(iDeviceListWidth,ui->wDeviceList->size().height());
            ui->wDeviceList->setMaximumWidth(iDeviceListWidth);
        }
        else {
            m_wDeviceSetting->setFixedHeight(120);
            for(int j=ENUM_DEVICEHEADE_SCREEN_SIZE;j<ENUM_DEVICEHEADE_END;j++)
                ui->wDeviceList->hideColumn(j);
             ui->wDeviceList->resize(iDeviceListWidth,ui->wDeviceList->size().height());
             ui->wDeviceList->setMaximumWidth(iDeviceListWidth);
//             m_pDevicesControlWidget->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding);
//             m_wDeviceSetting->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding);

             m_wDeviceSetting->show();
             m_pDevicesControlWidget->show();
        }
        GetSelectDeviceNum();
        emit sigSelectedDeviceList(&SelectedLedCardList);

    }
    int cnt = ui->wDeviceList->topLevelItemCount();
    if(cnt>0)//切换到终点管理页面是刷新列表中控制卡的状态参数
    for(int i=0; i<cnt; i++) {
             static_cast<wDevicesItem*>(ui->wDeviceList->topLevelItem(i))->SetMainTabWidgetIndex(m_intIndexFlagOfInfoOrControl);
     }
}

//基类虚函数，子类重绘函数
void mDeviceManager::paintEvent(QPaintEvent *event)
{
    Q_UNUSED(event);
    QStyleOption opt;
    opt.init(this);
    QPainter p(this);
    style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
//切换语言，实时刷新翻译标签
void mDeviceManager::refreshLable()
{
    ui->bnFlashArea->setText(tr("Refresh","Refresh"));
    ui->bnFlashArrow->setItemText(0,tr("Specify IP"));
    ui->label_5->setText(tr("Online"));
    ui->label_3->setText(tr("All"));
    ui->label_10->setText(tr("Unlogin"));
    ui->label_11->setText(tr("Offline"));

    m_headerItem->setData(ENUM_DEVICEHEADE_CHECK, 0, "");
    m_headerItem->setData(ENUM_DEVICEHEADE_ONLINE, 0,  tr("Online"));

    m_headerItem->setData(ENUM_DEVICEHEADE_SCREEN_ID, 0, tr("Screen ID"));
    m_headerItem->setData(ENUM_DEVICEHEADE_SCREEN_IP, 0, tr("Screen IP"));
    m_headerItem->setData(ENUM_DEVICEHEADE_SCREEN_SIZE, 0, tr("Screen Size"));
    m_headerItem->setData(ENUM_DEVICEHEADE_REMARK_NAME, 0, tr("Remark Name"));
    m_headerItem->setData(ENUM_DEVICEHEADE_PIC_READBACK, 0, tr("readback pic"));

    m_headerItem->setData(ENUM_DEVICEHEADE_BRIGHTNESS, 0, tr("Cur Brightness"));
    m_headerItem->setData(ENUM_DEVICEHEADE_POWER, 0, tr("Power Status"));
    m_headerItem->setData(ENUM_DEVICEHEADE_PASSWORD, 0, tr("Security"));
    m_headerItem->setData(ENUM_DEVICEHEADE_MORE_INFO, 0, tr("More Info"));


    for(int i=0;i<m_pwDeviceItemList.count();i++)
    {
        m_pwDeviceItemList.at(i)->refreshLable();
    }
    if(m_wDeviceSetting!=nullptr)
    {
        m_wDeviceSetting->refreshLable();
    }
    emit sigChangeLanguage();
}


void mDeviceManager::onClearHeartbeatFlagByUdp(LedCard *p)
{
     int cnt = ui->wDeviceList->topLevelItemCount();
     for(int i=0; i<cnt; i++) {
         QString strTempCardId=static_cast<wDevicesItem*>(ui->wDeviceList->topLevelItem(i))->GetLedCardId();

         if(strTempCardId == p->m_strCardId) {
             static_cast<wDevicesItem*>(ui->wDeviceList->topLevelItem(i))->onClearHeartbeatFlagByUdp();
             break;
         }
     }

}
void mDeviceManager::OnStopAllItemPostHeartBeat(bool b)
{

    int cnt = ui->wDeviceList->topLevelItemCount();
    if(cnt>0 && b==true)//切换到终点管理页面是刷新列表中控制卡的状态参数
    for(int i=0; i<cnt; i++) {
             static_cast<wDevicesItem*>(ui->wDeviceList->topLevelItem(i))->OnStopAllItemPostHeartBeat(b);
     }
    OnRefreshDevicesListStatusInfo();

}
void mDeviceManager::onAddLedCard(LedCard *p)
{
     qDebug() << " SLOT onAddLedCard FUNC:" << p->m_strCardId;
     int iExistFlg=0;
     int cnt = ui->wDeviceList->topLevelItemCount();
     for(int i=0; i<cnt; i++) {
         QString strTempCardId=static_cast<wDevicesItem*>(ui->wDeviceList->topLevelItem(i))->GetLedCardId();

         if(strTempCardId == p->m_strCardId) {
             iExistFlg=1;
             static_cast<wDevicesItem*>(ui->wDeviceList->topLevelItem(i))->ChangeHttpGetResponsePro(p);
             break;
         }
     }
     if(iExistFlg==0)
     {
         m_pwDeviceItemList.append(new wDevicesItem( p, ui->wDeviceList,this));
         ui->nDeviceNum->setValue(ui->wDeviceList->topLevelItemCount());

     }
}
void mDeviceManager::onsigwDeviceItemHttpPost(LedCard *p)
{
     qDebug() << " SLOT onsigwDeviceItemHttpPost FUNC:" << p->m_strCardId;
     int cnt = ui->wDeviceList->topLevelItemCount();
     for(int i=0; i<cnt; i++) {
         QString strTempCardId=static_cast<wDevicesItem*>(ui->wDeviceList->topLevelItem(i))->GetLedCardId();

         if(strTempCardId == p->m_strCardId) {
             static_cast<wDevicesItem*>(ui->wDeviceList->topLevelItem(i))->DeviceItemHttpPost();
             break;
         }
     }
}
void mDeviceManager::OnRefreshDevicesListStatusInfo()
{
        int cnt = ui->wDeviceList->topLevelItemCount();
        for(int i=0; i<cnt; i++) {
               static_cast<wDevicesItem*>(ui->wDeviceList->topLevelItem(i))->DeviceItemHttpPost();
        }
}
void mDeviceManager::OnRefreshButtonPro()
{
    pNetComm->StopUpdCheck();
    pNetComm->ClearAllLedcardList();
    ui->wDeviceList->onCheckAll(false);
    ui->wDeviceList->clear();
    ui->nDeviceNum->setValue(0);
    m_pwDeviceItemList.clear();
    pNetComm->StartUpdCheck();
}
//void mDeviceManager::onLedCardChanged(LedCard * p)
//{
//    int cnt = ui->wDeviceList->topLevelItemCount();
//    QStringList selectProgramlist;
//    for(int i=0; i<cnt; i++) {
//        QString strTempCardId=static_cast<wDevicesItem*>(ui->wDeviceList->topLevelItem(i))->GetLedCardId();

//        if(strTempCardId == p->m_strCardId) {
//            static_cast<wDevicesItem*>(ui->wDeviceList->topLevelItem(i))->ChangeHttpGetResponsePro(p);
//            break;
//        }
//    }

//     qDebug() << " SLOT onLedCardChanged FUNC:" << p->m_strCardId;
//}
void mDeviceManager::onSpecialIpPro()
{
       SpecialDlg *pDlg =new SpecialDlg(this,this->pNetComm);
       pNetComm->OnStartUdpTimer(false);
       connect(pDlg, SIGNAL(sigGetSpecialIp(LedCard *)), this,    SLOT(OnSpecialGetLedcardIp(LedCard *)));//显示正在保存提示对话框
       pDlg->exec();
       pNetComm->OnStartUdpTimer(true);


}
void mDeviceManager::OnSpecialGetLedcardIp(LedCard *p)
{
    qDebug()<<"OnSpecialGetLedcardIp="<<p->m_strCardId;
    int cnt = ui->wDeviceList->topLevelItemCount();
    for(int i=0; i<cnt; i++) {
        QString strTempCardId=static_cast<wDevicesItem*>(ui->wDeviceList->topLevelItem(i))->GetLedCardId();

        if(strTempCardId == p->m_strCardId) {
            static_cast<wDevicesItem*>(ui->wDeviceList->topLevelItem(i))->setCheckState(0,Qt::CheckState::Checked);
            break;
        }
    }

}
void mDeviceManager::FilterProgram(const QString &strtemp)
{
    if (strtemp.isEmpty())	//显示全部
    {
        for (int i = 0; i< ui->wDeviceList->topLevelItemCount(); ++i)
        {
            QTreeWidgetItem* topItem = ui->wDeviceList->topLevelItem(i);
            ui->wDeviceList->setRowHidden(i,ui->wDeviceList->indexFromItem(topItem->parent()),false);
        }
    }
    else
    {
        QList<QTreeWidgetItem*> resultList = ui->wDeviceList->findItems(strtemp, Qt::MatchContains,ENUM_DEVICEHEADE_SCREEN_ID);	//搜索结果
        if (resultList.size() > 0)
        {
            //QMessageBox::warning(this, "Export", QString(resultList.size()));
            for (int i = 0; i< ui->wDeviceList->topLevelItemCount(); ++i)
            {
                QTreeWidgetItem* topItem = ui->wDeviceList->topLevelItem(i);
                if (resultList.contains(topItem))
                    ui->wDeviceList->setRowHidden(i,ui->wDeviceList->indexFromItem(topItem->parent()),false);	//显示匹配的结果
                else
                    ui->wDeviceList->setRowHidden(i,ui->wDeviceList->indexFromItem(topItem->parent()),true);	//隐藏不匹配的结果
            }
        }
        else {
            //QMessageBox::warning(this, "Export", "FilterProgram");
            QList<QTreeWidgetItem*> resultList1 = ui->wDeviceList->findItems(strtemp, Qt::MatchContains,ENUM_DEVICEHEADE_REMARK_NAME);	//搜索结果
            if (resultList1.size() > 0)
            {
                //QMessageBox::warning(this, "Export", QString(resultList.size()));
                for (int i = 0; i< ui->wDeviceList->topLevelItemCount(); ++i)
                {
                    QTreeWidgetItem* topItem = ui->wDeviceList->topLevelItem(i);
                    if (resultList1.contains(topItem))
                        ui->wDeviceList->setRowHidden(i,ui->wDeviceList->indexFromItem(topItem->parent()),false);	//显示匹配的结果
                    else
                        ui->wDeviceList->setRowHidden(i,ui->wDeviceList->indexFromItem(topItem->parent()),true);	//隐藏不匹配的结果
                }
            }
            else {
                QList<QTreeWidgetItem*> resultList2 = ui->wDeviceList->findItems(strtemp, Qt::MatchContains,ENUM_DEVICEHEADE_SCREEN_IP);	//搜索结果
                if (resultList2.size() > 0)
                {
                    //QMessageBox::warning(this, "Export", QString(resultList.size()));
                    for (int i = 0; i< ui->wDeviceList->topLevelItemCount(); ++i)
                    {
                        QTreeWidgetItem* topItem = ui->wDeviceList->topLevelItem(i);
                        if (resultList2.contains(topItem))
                            ui->wDeviceList->setRowHidden(i,ui->wDeviceList->indexFromItem(topItem->parent()),false);	//显示匹配的结果
                        else
                            ui->wDeviceList->setRowHidden(i,ui->wDeviceList->indexFromItem(topItem->parent()),true);	//隐藏不匹配的结果
                    }
                }
                else {
                    for (int i = 0; i< ui->wDeviceList->topLevelItemCount(); ++i)
                    {
                        QTreeWidgetItem* topItem = ui->wDeviceList->topLevelItem(i);
                            ui->wDeviceList->setRowHidden(i,ui->wDeviceList->indexFromItem(topItem->parent()),true);	//隐藏不匹配的结果
                    }
                }
            }


        }
    }

}

void mDeviceManager::onSwitchControlWidget(int index)
{
    if(m_pDevicesControlWidget!=nullptr)
        m_pDevicesControlWidget->SwitchControlWidget(index);
}
void mDeviceManager::OnControlTcpSend(int iProgramIndex)
{
    int cnt = ui->wDeviceList->topLevelItemCount();
    QList<wDevicesItem*> list;
    int iSelectCount=0;
    for(int i=0; i<cnt; i++) {
        if(ui->wDeviceList->topLevelItem(i)->checkState(0) == Qt::Checked) {
            iSelectCount++;
            wDevicesItem *item = static_cast<wDevicesItem*>(ui->wDeviceList->topLevelItem(i));
            //item->HttpPostByTypeJsonObject(json);
            item->OnControlTcpSend(iProgramIndex);
            //QString strCardId=item->GetLedCardId();
           // m_pDevicesControlWidget->OnOutputInfo(strCardId+":"+tr("Anycast")+"->"+tr("Success"));
        }
    }
}

void mDeviceManager::OnControlSendJson(QJsonObject &json,QString strFanYi)
{
    int cnt = ui->wDeviceList->topLevelItemCount();
    QList<wDevicesItem*> list;
    int iSelectCount=0;
    for(int i=0; i<cnt; i++) {
        if(ui->wDeviceList->topLevelItem(i)->checkState(0) == Qt::Checked) {
            iSelectCount++;
            wDevicesItem *item = static_cast<wDevicesItem*>(ui->wDeviceList->topLevelItem(i));
            item->HttpPostByTypeJsonObject(json);
            QString strCardId=item->GetLedCardId();
            m_pDevicesControlWidget->OnOutputInfo(strCardId+":"+tr("send")+"->"+strFanYi);
        }
    }
}

int mDeviceManager::GetSelectDeviceNum()
{
    int cnt = ui->wDeviceList->topLevelItemCount();
    int iSelectCount=0;
    SelectedLedCardList.clear();
    for(int i=0; i<cnt; i++) {
        if(ui->wDeviceList->topLevelItem(i)->checkState(0) == Qt::Checked) {
            iSelectCount++;
            wDevicesItem *item = static_cast<wDevicesItem*>(ui->wDeviceList->topLevelItem(i));
            SelectedLedCardList.append(item->GetLedCardPoint());
        }
    }
    return iSelectCount;
}
void mDeviceManager::OnOutputInfo(QString strInfo)
{
    if(m_intIndexFlagOfInfoOrControl==ENUM_MAIN_TOOL_DEVICESCONTROL)
        if(m_pDevicesControlWidget!=nullptr)
            m_pDevicesControlWidget->OnOutputInfo(strInfo);
}

void mDeviceManager::onCheckStateChanged(int f)
{
    Q_UNUSED(f);
    if(m_intIndexFlagOfInfoOrControl==ENUM_MAIN_TOOL_DEVICESCONTROL)
    {
        GetSelectDeviceNum();
        emit sigSelectedDeviceList(&SelectedLedCardList);
    }
}

