1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063 |
- // Dlg_Controller.cpp : 实现文件
- //
- #include "stdafx.h"
- #include "StoneU_Door.h"
- #include "Dlg_Frame.h"
- #include "Dlg_Controller.h"
- #include ".\dlg_controller.h"
- #include "Global.h"
- #include "mdlProject.h"
- #include "Dlg_ControllerProperty.h"
- #include "DBConnection.h"
- // CDlg_Controller 对话框
- IMPLEMENT_DYNAMIC(CDlg_Controller, CDialog)
- CDlg_Controller::CDlg_Controller(CWnd* pParent /*=NULL*/)
- : CDialog(CDlg_Controller::IDD, pParent)
- , m_sEdit_ControlName(_T(""))
- , m_sEdit_ControlSN(_T(""))
- , m_sEdit_Door1Name(_T(""))
- , m_sEdit_Door2Name(_T(""))
- , m_sEdit_Door3Name(_T(""))
- , m_sEdit_Door4Name(_T(""))
- , m_sComb_Port(_T(""))
- , m_sEdit_IP(_T(""))
- , m_nEdit_Port(0)
- , m_nComb_WordMode(0)
- {
- memset( m_nDoorDelayTime,0,4*sizeof( int ) );
- }
- CDlg_Controller::~CDlg_Controller()
- {
- }
- void CDlg_Controller::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- DDX_Text(pDX, IDC_EDIT_NAME, m_sEdit_ControlName);
- DDX_Text(pDX, IDC_EDIT_SN, m_sEdit_ControlSN);
- DDX_Text(pDX, IDC_EDIT_DOOR1NAME, m_sEdit_Door1Name);
- DDX_Text(pDX, IDC_EDIT_DOOR2NAME, m_sEdit_Door2Name);
- DDX_Text(pDX, IDC_EDIT_DOOR3NAME, m_sEdit_Door3Name);
- DDX_Text(pDX, IDC_EDIT_DOOR4NAME, m_sEdit_Door4Name);
- DDX_CBString(pDX, IDC_COMBO_COM, m_sComb_Port);
- DDX_Control(pDX, IDC_COMBO_COM, m_Comb_Port);
- DDX_Control(pDX, IDC_LIST_CONTROL, m_List_Controller);
- DDX_Control(pDX, IDC_BTN_ADD, m_Btn_Add);
- DDX_Control(pDX, IDC_BTN_SAVE, m_Btn_Modify);
- DDX_Control(pDX, IDC_BTN_DEl, m_Btn_Delete);
- DDX_Text(pDX, IDC_EDIT_IP, m_sEdit_IP);
- DDX_Text(pDX, IDC_EDIT_PORT, m_nEdit_Port);
- DDX_Control(pDX, IDC_COMBO_WORDMDOE, m_Comb_WordMode);
- DDX_CBIndex(pDX, IDC_COMBO_WORDMDOE, m_nComb_WordMode);
- DDX_Control(pDX, IDC_COMBO_DOORNUMBER, m_Comb_DoorNumber);
- }
- BEGIN_MESSAGE_MAP(CDlg_Controller, CDialog)
- ON_EN_CHANGE(IDC_EDIT_SN, OnEnChangeEditSn)
- ON_BN_CLICKED(IDC_BTN_ADD, OnBnClickedBtnAdd)
- ON_BN_CLICKED(IDC_BTN_SAVE, OnBnClickedBtnSave)
- ON_BN_CLICKED(IDC_BTN_DEl, OnBnClickedBtnDel)
- ON_NOTIFY(NM_CLICK, IDC_LIST_CONTROL, OnNMClickListControl)
- ON_WM_CTLCOLOR()
- ON_WM_ERASEBKGND()
- ON_CBN_SELCHANGE(IDC_COMBO_WORDMDOE, OnCbnSelchangeComboWordmdoe)
- ON_CBN_SELCHANGE(IDC_COMBO_DOORNUMBER, OnCbnSelchangeComboDoornumber)
- ON_WM_TIMER()
- ON_NOTIFY(NM_DBLCLK, IDC_LIST_CONTROL, OnNMDblclkListControl)
- END_MESSAGE_MAP()
- // CDlg_Controller 消息处理程序
- BOOL CDlg_Controller::OnInitDialog()
- {
- CDialog::OnInitDialog();
- // TODO: 在此添加额外的初始化
- m_Comb_Port.SetCurSel( 0 );
- m_Comb_WordMode.SetCurSel( 0 );
- m_Comb_DoorNumber.SetCurSel( 0 );
- GetDlgItem( IDC_STATIC2 )->ShowWindow( SW_HIDE );
- GetDlgItem( IDC_EDIT_DOOR2NAME )->ShowWindow( SW_HIDE );
- GetDlgItem( IDC_STATIC3 )->ShowWindow( SW_HIDE );
- GetDlgItem( IDC_EDIT_DOOR3NAME )->ShowWindow( SW_HIDE );
- GetDlgItem( IDC_STATIC4 )->ShowWindow( SW_HIDE );
- GetDlgItem( IDC_EDIT_DOOR4NAME )->ShowWindow( SW_HIDE );
- //m_List_Controller.InsertColumn( 0, "编号" );
- //m_List_Controller.InsertColumn( 1, "名称" );
- //m_List_Controller.InsertColumn( 2, "SN" );
- //m_List_Controller.InsertColumn( 3, "信息" );
- //m_List_Controller.SetColumnWidth( 0, 60 );
- //m_List_Controller.SetColumnWidth( 1, 120);
- //m_List_Controller.SetColumnWidth( 2, 100);
- //m_List_Controller.SetColumnWidth( 3, 690);
- //m_List_Controller.SetExtendedStyle(m_List_Controller.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
- InitList();
- ReadController( &m_List_Controller );
- return TRUE; // return TRUE unless you set the focus to a control
- // 异常: OCX 属性页应返回 FALSE
- }
- int CDlg_Controller::InitList(void)
- {
- //m_List_Info.InsertColumn( 0, "执行时刻" );
- //m_List_Info.InsertColumn( 1, "人员信息" );
- //m_List_Info.InsertColumn( 2, "描述" );
- //m_List_Info.InsertColumn( 3, "信息" );
- //m_List_Info.SetColumnWidth( 0, 120 );
- //m_List_Info.SetColumnWidth( 1, 200);
- //m_List_Info.SetColumnWidth( 2, 200);
- //m_List_Info.SetColumnWidth( 3, 650);
- //m_List_Info.SetExtendedStyle(m_List_Info.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
- //m_List_Rule.SetColColor(0,RGB(10,150,20)); //设置列背景色
- //m_List_Rule.SetColColor(2,RGB(30,100,90)); //设置列背景色
- //m_List_Rule.SetBkColor(RGB(50,10,10)); //设置背景色
- //m_List_Rule.SetItemColor(1,1,RGB(100,100,10)); //设置指定单元背景色
- //m_List_Rule.SetRowHeigt(25); //设置行高度
- //m_List_Rule.SetHeaderHeight(1.5); //设置头部高度
- //m_List_Rule.SetHeaderFontHW(16,0); //设置头部字体高度,和宽度,0表示缺省,自适应
- //m_List_Record.SetHeaderTextColor(RGB(0,0,0)); //设置头部字体颜色
- //m_List_Rule.SetTextColor(RGB(0,255,255)); //设置文本颜色
- m_List_Controller.SetHeaderBKColor(213,222,242,8); //设置头部背景色
- ////m_List_Rule.SetFontHW(15,0); //设置字体高度,和宽度,0表示缺省宽度
- //m_List_Rule.SetColTextColor(2,RGB(255,255,100)); //设置列文本颜色
- //m_List_Rule.SetItemTextColor(3,1,RGB(255,0,0)); //设置单元格字体颜色
- m_List_Controller.InsertColumn(0,g_strIndex,LVCFMT_LEFT,40);
- m_List_Controller.InsertColumn(1,g_strName,LVCFMT_LEFT,120);
- m_List_Controller.InsertColumn(2,"监控开关",LVCFMT_LEFT,65);
- m_List_Controller.InsertColumn(3,g_strInfomation,LVCFMT_LEFT,800);
- SetWindowLong(m_List_Controller.m_hWnd ,GWL_EXSTYLE,WS_EX_CLIENTEDGE);
- m_List_Controller.SetExtendedStyle(LVS_EX_GRIDLINES); //设置扩展风格为网格
- ::SendMessage(m_List_Controller.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
- m_List_Controller.SetRowHeigt( 20 );
- return 0;
- }
- void CDlg_Controller::SetPos( CRect rect )
- {
- CRect rc1;
- rc1.left = 0;
- rc1.right = rc1.left+rect.Width();
- rc1.top = 0;
- rc1.bottom = rc1.top+rect.Height()-4;
- this->MoveWindow( rc1 );
- CRect rc2;
- rc2.left = rc1.left + 10;
- rc2.right = rc1.right - 10;
- rc2.top = 10;
- rc2.bottom = rc1.bottom - 40;
- m_List_Controller.MoveWindow( rc2 );
- CRect rc17;
- rc17.right = rc2.right-20;
- rc17.left = rc17.right-120;
- rc17.top = rc2.bottom+5;
- rc17.bottom = rc1.bottom-5;
- m_Btn_Delete.MoveWindow( rc17 );
- CRect rc18;
- rc18.right = rc17.left-5;
- rc18.left = rc18.right-120;
- rc18.top = rc2.bottom+5;
- rc18.bottom = rc1.bottom-5;
- m_Btn_Modify.MoveWindow( rc18 );
- CRect rc19;
- rc19.right = rc18.left-5;
- rc19.left = rc19.right-120;
- rc19.top = rc2.bottom+5;
- rc19.bottom = rc1.bottom-5;
- m_Btn_Add.MoveWindow( rc19 );
- }
- void CDlg_Controller::OnEnChangeEditSn()
- {
- // TODO: 如果该控件是 RICHEDIT 控件,则它将不会
- // 发送该通知,除非重写 CDialog::OnInitDialog()
- // 函数并调用 CRichEditCtrl().SetEventMask(),
- // 同时将 ENM_CHANGE 标志“或”运算到掩码中。
- // TODO: 在此添加控件通知处理程序代码
- //UpdateData();
- //GetDlgItem( IDC_STATIC2 )->ShowWindow( SW_HIDE );
- //GetDlgItem( IDC_EDIT_DOOR2NAME )->ShowWindow( SW_HIDE );
- //GetDlgItem( IDC_STATIC3 )->ShowWindow( SW_HIDE );
- //GetDlgItem( IDC_EDIT_DOOR3NAME )->ShowWindow( SW_HIDE );
- //GetDlgItem( IDC_STATIC4 )->ShowWindow( SW_HIDE );
- //GetDlgItem( IDC_EDIT_DOOR4NAME )->ShowWindow( SW_HIDE );
- //if( m_sEdit_ControlSN.Left(1)=="1" )
- //{
- //}
- //else if( m_sEdit_ControlSN.Left(1)=="2" )
- //{
- // GetDlgItem( IDC_STATIC2 )->ShowWindow( SW_SHOW );
- // GetDlgItem( IDC_EDIT_DOOR2NAME )->ShowWindow( SW_SHOW );
- //}
- //else if( m_sEdit_ControlSN.Left(1)=="4" )
- //{
- // GetDlgItem( IDC_STATIC2 )->ShowWindow( SW_SHOW );
- // GetDlgItem( IDC_EDIT_DOOR2NAME )->ShowWindow( SW_SHOW );
- // GetDlgItem( IDC_STATIC3 )->ShowWindow( SW_SHOW );
- // GetDlgItem( IDC_EDIT_DOOR3NAME )->ShowWindow( SW_SHOW );
- // GetDlgItem( IDC_STATIC4 )->ShowWindow( SW_SHOW );
- // GetDlgItem( IDC_EDIT_DOOR4NAME )->ShowWindow( SW_SHOW );
- //}
- }
- void CDlg_Controller::OnBnClickedBtnAdd()
- {
- CString sTemp;
- CDlg_ControllerProperty dlg;
- dlg.m_nOperate = ADD;
- if( dlg.DoModal()==IDOK )
- {
- CString sIndex;
- sIndex.Format("%d",dlg.m_Controller.nID );
- m_List_Controller.InsertItem( 0,sIndex );
- sTemp.Format(" %s",dlg.m_Controller.sName );
- m_List_Controller.SetItemText( 0,1,sTemp );
- sTemp.Format(" %s",dlg.m_Controller.bForbid==0?"启用":"禁用" );
- m_List_Controller.SetItemText( 0,2,sTemp );
- CString sWordMode;
- if( dlg.m_Controller.nWordMode==0 )
- sWordMode.Format( "COM%d",dlg.m_Controller.nComPort );
- else
- sWordMode.Format( "IP:%s,Port:%s",dlg.m_Controller.sIP,dlg.m_Controller.sPort );
- if( dlg.m_Controller.nBrandType==0 )
- sTemp.Format( " 微耕 【SN:%s】【%s】",dlg.m_Controller.sSN,sWordMode );
- else if( dlg.m_Controller.nBrandType==1 )
- sTemp.Format( " 中控 【SN:%s】【%s】",dlg.m_Controller.sSN,sWordMode );
- m_List_Controller.SetItemText( 0,3,sTemp );
- //m_List_Controller.SetItemText( 0,3,m_sComb_Port );
- //m_List_Controller.SetItemText( 0,4,m_sEdit_Door1Name );
- //m_List_Controller.SetItemText( 0,5,m_sEdit_Door2Name );
- //m_List_Controller.SetItemText( 0,6,m_sEdit_Door3Name );
- //m_List_Controller.SetItemText( 0,7,m_sEdit_Door4Name );
- //CString s1,sInfo;
- //if( m_nComb_WordMode==0 )
- // s1.Format("%s:485【%s:%s】 ",g_strConnectType,g_strConnectCom,m_sComb_Port );
- //else
- // s1.Format("%s:TCP【IP:%s Port:%d】 ",g_strConnectType,m_sEdit_IP,m_nEdit_Port );
- //if( nDoorCur==0 )
- // sInfo.Format(" 【%s-%s-%s-3%s】",g_strDoor1,m_sEdit_Door1Name,g_strControl_Online,g_strSecond );
- //else if( nDoorCur==1 )
- // sInfo.Format(" 【%s-%s-%s-3%s】 【%s-%s-%s-3%s】",
- // g_strDoor1,m_sEdit_Door1Name,g_strControl_Online,g_strSecond,
- // g_strDoor2,m_sEdit_Door2Name,g_strControl_Online,g_strSecond );
- //else if( nDoorCur==2 )
- // sInfo.Format(" 【%s-%s-%s-3%s】 【%s-%s-%s-3%s】 【%s-%s-%s-3%s】 【%s-%s-%s-3%s】",
- // g_strDoor1,m_sEdit_Door1Name,g_strControl_Online,g_strSecond,
- // g_strDoor2,m_sEdit_Door2Name,g_strControl_Online,g_strSecond,
- // g_strDoor3,m_sEdit_Door3Name,g_strControl_Online,g_strSecond,
- // g_strDoor4,m_sEdit_Door4Name,g_strControl_Online,g_strSecond );
- //sInfo = s1+sInfo;
- //m_List_Controller.SetItemText( 0,3,sInfo );
- for( int i=0;i<CONCTROLLER_NUM_MAX;i++ )
- {
- if( g_Controller[i].nID<0 )
- {
- g_Controller[i].nID = dlg.m_Controller.nID;
- g_Controller[i].sName = dlg.m_Controller.sName;
- g_Controller[i].nBrandType = dlg.m_Controller.nBrandType;
- g_Controller[i].sSN = dlg.m_Controller.sSN;
- g_Controller[i].nWordMode = dlg.m_Controller.nWordMode;
- g_Controller[i].nComPort = dlg.m_Controller.nComPort;
- g_Controller[i].sIP = dlg.m_Controller.sIP;
- g_Controller[i].sPort = dlg.m_Controller.sPort;
- g_Controller[i].bForbid = dlg.m_Controller.bForbid;
- g_Controller[i].nDoorCount = dlg.m_Controller.nDoorCount;
-
- for( int n=1;n<9;n++ )
- g_Controller[i].sDoorName[n] = dlg.m_Controller.sDoorName[n];
- if( !dlg.m_Controller.bForbid )
- {
- if( g_pDlgMain->m_pThread_Controller[i]==NULL )
- {
- g_pDlgMain->m_pThread_Controller[i] = new CThread_Controller( g_Controller[i] );
- g_pDlgMain->m_pThread_Controller[i]->StartThread();
- }
- }
- break;
- }
- }
- //改变门的信息
- SetCombDoor( &g_pDlgMain->m_pDlg_Record->m_Comb_Door );
- ////改变权限界面的控制器
- //g_pDlgMain->m_pDlg_Permit->InitTreeInfo();
- }
- }
- void CDlg_Controller::OnBnClickedBtnSave()
- {
- int iListCount = m_List_Controller.GetItemCount();
- POSITION pos = m_List_Controller.GetFirstSelectedItemPosition();
- int nListSel = m_List_Controller.GetNextSelectedItem(pos);
- if(nListSel>=iListCount || nListSel==-1)
- {
- return;
- }
- CString sTemp = m_List_Controller.GetItemText( nListSel,0 );
- CDlg_ControllerProperty dlg;
- dlg.m_nOperate = EDIT;
- dlg.m_Controller.nID = atoi(sTemp);
- if( dlg.DoModal()==IDOK )
- {
- sTemp.Format(" %s",dlg.m_Controller.sName );
- m_List_Controller.SetItemText( nListSel,1,sTemp );
- sTemp.Format(" %s",dlg.m_Controller.bForbid==0?"启用":"禁用" );
- m_List_Controller.SetItemText( nListSel,2,sTemp );
- CString sWordMode;
- if( dlg.m_Controller.nWordMode==0 )
- sWordMode.Format( "COM%d",dlg.m_Controller.nComPort );
- else
- sWordMode.Format( "IP:%s,Port:%s",dlg.m_Controller.sIP,dlg.m_Controller.sPort );
- if( dlg.m_Controller.nBrandType==0 )
- sTemp.Format( " 微耕 【SN:%s】【%s】",dlg.m_Controller.sSN,sWordMode );
- else if( dlg.m_Controller.nBrandType==1 )
- sTemp.Format( " 中控 【SN:%s】【%s】",dlg.m_Controller.sSN,sWordMode );
- m_List_Controller.SetItemText(nListSel,3,sTemp );
- }
- else
- return;
- for( int i=0;i<CONCTROLLER_NUM_MAX;i++ )
- {
- if( g_Controller[i].nID == dlg.m_Controller.nID )
- {
- if( g_Controller[i].sSN != dlg.m_Controller.sSN || g_Controller[i].nComPort != dlg.m_Controller.nComPort ||
- g_Controller[i].nWordMode!=dlg.m_Controller.nWordMode || g_Controller[i].sIP!=dlg.m_Controller.sIP ||
- g_Controller[i].nBrandType!=dlg.m_Controller.nBrandType )
- {
- g_Controller[i].nID = dlg.m_Controller.nID;
- g_Controller[i].sName = dlg.m_Controller.sName;
- g_Controller[i].nBrandType = dlg.m_Controller.nBrandType;
- g_Controller[i].sSN = dlg.m_Controller.sSN;
- g_Controller[i].nWordMode = dlg.m_Controller.nWordMode;
- g_Controller[i].nComPort = dlg.m_Controller.nComPort;
- g_Controller[i].sIP = dlg.m_Controller.sIP;
- g_Controller[i].sPort = dlg.m_Controller.sPort;
- g_Controller[i].bForbid = dlg.m_Controller.bForbid;
- g_Controller[i].nDoorCount = dlg.m_Controller.nDoorCount;
- if( g_pDlgMain->m_pThread_Controller[i] )
- {
- g_pDlgMain->m_pThread_Controller[i]->StopThread();
- delete g_pDlgMain->m_pThread_Controller[i];
- g_pDlgMain->m_pThread_Controller[i] = NULL;
- g_pDlgMain->m_pDlg_Moniter->DelDoorFromList( dlg.m_Controller.sName.Trim() );
- g_pDlgMain->m_pDlg_Moniter->OnDoorSort();
- }
- for( int n=1;n<9;n++ )
- g_Controller[i].sDoorName[n] = dlg.m_Controller.sDoorName[n];
- if( g_pDlgMain->m_pThread_Controller[i]==NULL && !g_Controller[i].bForbid )
- {
- g_pDlgMain->m_pThread_Controller[i] = new CThread_Controller( g_Controller[i] );
- g_pDlgMain->m_pThread_Controller[i]->StartThread();
- }
- }
- else if( g_Controller[i].bForbid!=dlg.m_Controller.bForbid || g_Controller[i].nDoorCount!=dlg.m_Controller.nDoorCount )
- {
- int nDelDoor = -1;//-1表示没删 0表示删除但没有添加 2表示已经添加
- if( dlg.m_Controller.bForbid )//禁用的删除
- {
- g_pDlgMain->m_pDlg_Moniter->DelDoorFromList( g_Controller[i].sName );
- }
- else if( g_Controller[i].nDoorCount!=dlg.m_Controller.nDoorCount )//门的个数改变
- {
- nDelDoor = 0;
- g_pDlgMain->m_pDlg_Moniter->DelDoorFromList( g_Controller[i].sName );
- }
- if( g_pDlgMain->m_pThread_Controller[i] && !g_Controller[i].bForbid && !g_pDlgMain->m_pThread_Controller[i]->m_bExitFinish )//已经创建类,并且原来是启用的和在线的,暂停线程
- {
- SuspendThread( g_pDlgMain->m_pThread_Controller[i]->m_Thread );
- }
-
- g_Controller[i].nID = dlg.m_Controller.nID;
- g_Controller[i].sName = dlg.m_Controller.sName;
- g_Controller[i].nBrandType = dlg.m_Controller.nBrandType;
- g_Controller[i].sSN = dlg.m_Controller.sSN;
- g_Controller[i].nWordMode = dlg.m_Controller.nWordMode;
- g_Controller[i].nComPort = dlg.m_Controller.nComPort;
- g_Controller[i].sIP = dlg.m_Controller.sIP;
- g_Controller[i].sPort = dlg.m_Controller.sPort;
- g_Controller[i].bForbid = dlg.m_Controller.bForbid;
- g_Controller[i].nDoorCount = dlg.m_Controller.nDoorCount;
- for( int n=1;n<9;n++ )
- g_Controller[i].sDoorName[n] = dlg.m_Controller.sDoorName[n];
- if( g_pDlgMain->m_pThread_Controller[i] && !g_Controller[i].bForbid && !g_pDlgMain->m_pThread_Controller[i]->m_bExitFinish )//已经创建类,并且现在是启用的和在线的,启用线程
- {
- nDelDoor = 2;
- g_pDlgMain->m_pDlg_Moniter->AddDoorToList( g_Controller[i].sName,2 );
- ResumeThread( g_pDlgMain->m_pThread_Controller[i]->m_Thread );
- }
- else if( g_pDlgMain->m_pThread_Controller[i]==NULL && !g_Controller[i].bForbid )//以前没有创建类,并且现在是启用的,创建类并创建线程
- {
- g_pDlgMain->m_pThread_Controller[i] = new CThread_Controller( g_Controller[i] );
- g_pDlgMain->m_pThread_Controller[i]->StartThread();
- }
- else if( g_pDlgMain->m_pThread_Controller[i] && !g_Controller[i].bForbid )//以前创建类,但连接失败,并且现在是启用的,创建类并创建线程
- {
- g_pDlgMain->m_pThread_Controller[i] = new CThread_Controller( g_Controller[i] );
- g_pDlgMain->m_pThread_Controller[i]->StartThread();
- }
- if( nDelDoor==0 )
- {
- g_pDlgMain->m_pDlg_Moniter->AddDoorToList( g_Controller[i].sName,2 );
- }
- }
- else
- {
- g_Controller[i].nID = dlg.m_Controller.nID;
- g_Controller[i].sName = dlg.m_Controller.sName;
- g_Controller[i].nBrandType = dlg.m_Controller.nBrandType;
- g_Controller[i].sSN = dlg.m_Controller.sSN;
- g_Controller[i].nWordMode = dlg.m_Controller.nWordMode;
- g_Controller[i].nComPort = dlg.m_Controller.nComPort;
- g_Controller[i].sIP = dlg.m_Controller.sIP;
- g_Controller[i].sPort = dlg.m_Controller.sPort;
- g_Controller[i].bForbid = dlg.m_Controller.bForbid;
- g_Controller[i].nDoorCount = dlg.m_Controller.nDoorCount;
- for( int n=1;n<9;n++ )
- g_Controller[i].sDoorName[n] = dlg.m_Controller.sDoorName[n];
- if( !g_Controller[i].bForbid )
- g_pDlgMain->m_pThread_Controller[i]->SetController( g_Controller[i] );
- }
- break;
- }
- }
-
- //改变门的信息
- SetCombDoor( &g_pDlgMain->m_pDlg_Record->m_Comb_Door );
- //改变权限界面的控制器
- //g_pDlgMain->m_pDlg_Permit->InitTreeInfo();
- }
- void CDlg_Controller::OnBnClickedBtnDel()
- {
- int iListCount = m_List_Controller.GetItemCount();
- POSITION pos = m_List_Controller.GetFirstSelectedItemPosition();
- int nListSel = m_List_Controller.GetNextSelectedItem(pos);
- if(nListSel>=iListCount || nListSel==-1)
- {
- MessageBox( g_strChooseThenDel, g_strTip, MB_ICONINFORMATION);
- return;
- }
- CString str,sControlName;
- str = m_List_Controller.GetItemText( nListSel,0 );
- sControlName = m_List_Controller.GetItemText( nListSel,1 );
- if( MessageBox( "确定要删除此控制器相关信息?", g_strTip, MB_YESNO|MB_ICONINFORMATION)!=IDYES )
- return;
-
- if( DelItemFromTable( "t_door_control","id",atoi( str ) ) )
- m_List_Controller.DeleteItem( nListSel );
- g_pDlgMain->m_pDlg_Moniter->DelDoorFromList( sControlName.Trim() );
- g_pDlgMain->m_pDlg_Moniter->OnDoorSort();
- for( int i=0;i<CONCTROLLER_NUM_MAX;i++ )
- {
- if( g_Controller[i].nID == atoi(str) )
- {
- if( g_pDlgMain->m_pThread_Controller[i] )
- {
- g_pDlgMain->m_pThread_Controller[i]->StopThread();
- delete g_pDlgMain->m_pThread_Controller[i];
- g_pDlgMain->m_pThread_Controller[i] = NULL;
- }
- g_Controller[i].nID = -1;
- break;
- }
- }
- //改变门的信息
- SetCombDoor( &g_pDlgMain->m_pDlg_Record->m_Comb_Door );
- //改变权限界面的控制器
- //g_pDlgMain->m_pDlg_Permit->InitTreeInfo();
- }
- void CDlg_Controller::OnNMClickListControl(NMHDR *pNMHDR, LRESULT *pResult)
- {
- // TODO: 在此添加控件通知处理程序代码
- int iListCount = m_List_Controller.GetItemCount();
- POSITION pos = m_List_Controller.GetFirstSelectedItemPosition();
- int nListSel = m_List_Controller.GetNextSelectedItem(pos);
- if(nListSel>=iListCount || nListSel==-1)
- {
- return;
- }
- //CString str;
- //str = m_List_Controller.GetItemText( nListSel,0 );
- //int nDoorNum=0;
- //
- //ADOCtrl.ReadController( atoi(str),m_sEdit_ControlName,m_sEdit_ControlSN,m_nComb_WordMode,m_sEdit_IP,m_nEdit_Port,m_sComb_Port,
- // m_sEdit_Door1Name,m_sEdit_Door2Name,m_sEdit_Door3Name,m_sEdit_Door4Name,
- // m_nDoorDelayTime[0],m_nDoorDelayTime[1],m_nDoorDelayTime[2],m_nDoorDelayTime[3],
- // m_sDoorControlType[0],m_sDoorControlType[1],m_sDoorControlType[2],m_sDoorControlType[3],nDoorNum );
- //UpdateData( false );
- //m_Comb_DoorNumber.SetCurSel( nDoorNum );
- //GetDlgItem( IDC_STATIC2 )->ShowWindow( SW_HIDE );
- //GetDlgItem( IDC_EDIT_DOOR2NAME )->ShowWindow( SW_HIDE );
- //GetDlgItem( IDC_STATIC3 )->ShowWindow( SW_HIDE );
- //GetDlgItem( IDC_EDIT_DOOR3NAME )->ShowWindow( SW_HIDE );
- //GetDlgItem( IDC_STATIC4 )->ShowWindow( SW_HIDE );
- //GetDlgItem( IDC_EDIT_DOOR4NAME )->ShowWindow( SW_HIDE );
- //if( nDoorNum==0 )
- //{
- //}
- //else if( nDoorNum==1 )
- //{
- // GetDlgItem( IDC_STATIC2 )->ShowWindow( SW_SHOW );
- // GetDlgItem( IDC_EDIT_DOOR2NAME )->ShowWindow( SW_SHOW );
- //}
- //else if( nDoorNum==2 )
- //{
- // GetDlgItem( IDC_STATIC2 )->ShowWindow( SW_SHOW );
- // GetDlgItem( IDC_EDIT_DOOR2NAME )->ShowWindow( SW_SHOW );
- // GetDlgItem( IDC_STATIC3 )->ShowWindow( SW_SHOW );
- // GetDlgItem( IDC_EDIT_DOOR3NAME )->ShowWindow( SW_SHOW );
- // GetDlgItem( IDC_STATIC4 )->ShowWindow( SW_SHOW );
- // GetDlgItem( IDC_EDIT_DOOR4NAME )->ShowWindow( SW_SHOW );
- //}
- //if( m_nComb_WordMode==1 )
- //{
- // GetDlgItem(IDC_STATIC_3)->ShowWindow( SW_HIDE );
- // GetDlgItem(IDC_COMBO_COM)->ShowWindow( SW_HIDE );
- // GetDlgItem(IDC_STATIC_6)->ShowWindow( SW_SHOW );
- // GetDlgItem(IDC_EDIT_IP)->ShowWindow( SW_SHOW );
- // GetDlgItem(IDC_STATIC_7)->ShowWindow( SW_SHOW );
- // GetDlgItem(IDC_EDIT_PORT)->ShowWindow( SW_SHOW );
- //}
- //else
- //{
- // GetDlgItem(IDC_STATIC_3)->ShowWindow( SW_SHOW );
- // GetDlgItem(IDC_COMBO_COM)->ShowWindow( SW_SHOW );
- // GetDlgItem(IDC_STATIC_6)->ShowWindow( SW_HIDE );
- // GetDlgItem(IDC_EDIT_IP)->ShowWindow( SW_HIDE );
- // GetDlgItem(IDC_STATIC_7)->ShowWindow( SW_HIDE );
- // GetDlgItem(IDC_EDIT_PORT)->ShowWindow( SW_HIDE );
- //}
- *pResult = 0;
- }
- HBRUSH CDlg_Controller::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
- {
- HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
- // TODO: 在此更改 DC 的任何属性
- int nID = pWnd->GetDlgCtrlID();
- //HBRUSH B1 = CreateSolidBrush( g_ColorGround );
- HBRUSH B1 = CreateSolidBrush( g_Color3 );
- if(nCtlColor == CTLCOLOR_STATIC)
- {
- // pOldFont = pDC->SelectObject(&m_font1);
- pDC->SetTextColor(RGB(0, 0, 0));
- pDC->SetBkMode( TRANSPARENT );
- //pDC->SelectObject(pOldFont);
- DeleteObject(B1);
- return B1;
- }
- //if( nID == IDC_STATIC_MSG)
- // {
- // pOldFont = pDC->SelectObject(&m_font3);
- // pDC->SetTextColor(RGB(0, 0, 255));
- // pDC->SetBkMode( TRANSPARENT );
- // //pDC->SelectObject(pOldFont);
- // return B1;
- // }
- DeleteObject(B1);
- // TODO: 如果默认的不是所需画笔,则返回另一个画笔
- return hbr;
- }
- BOOL CDlg_Controller::OnEraseBkgnd(CDC* pDC)
- {
- CBrush br1;
- CRect rect;
- GetWindowRect(&rect);
- ScreenToClient(&rect);
- br1.CreateSolidBrush(g_Color3);
- pDC->FillRect(rect,&br1);
- DeleteObject( br1 );
-
- return TRUE;
- //return CDialog::OnEraseBkgnd(pDC);
- }
- void CDlg_Controller::OnCbnSelchangeComboWordmdoe()
- {
- // TODO: 在此添加控件通知处理程序代码
- UpdateData();
- if( m_nComb_WordMode==1 )
- {
- GetDlgItem(IDC_STATIC_3)->ShowWindow( SW_HIDE );
- GetDlgItem(IDC_COMBO_COM)->ShowWindow( SW_HIDE );
- GetDlgItem(IDC_STATIC_6)->ShowWindow( SW_SHOW );
- GetDlgItem(IDC_EDIT_IP)->ShowWindow( SW_SHOW );
- GetDlgItem(IDC_STATIC_7)->ShowWindow( SW_SHOW );
- GetDlgItem(IDC_EDIT_PORT)->ShowWindow( SW_SHOW );
- }
- else
- {
- GetDlgItem(IDC_STATIC_3)->ShowWindow( SW_SHOW );
- GetDlgItem(IDC_COMBO_COM)->ShowWindow( SW_SHOW );
- GetDlgItem(IDC_STATIC_6)->ShowWindow( SW_HIDE );
- GetDlgItem(IDC_EDIT_IP)->ShowWindow( SW_HIDE );
- GetDlgItem(IDC_STATIC_7)->ShowWindow( SW_HIDE );
- GetDlgItem(IDC_EDIT_PORT)->ShowWindow( SW_HIDE );
- }
- }
- void CDlg_Controller::OnCbnSelchangeComboDoornumber()
- {
- // TODO: 在此添加控件通知处理程序代码
- //int nDoorCur = m_Comb_DoorNumber.GetCurSel();
- //GetDlgItem( IDC_STATIC2 )->ShowWindow( SW_HIDE );
- //GetDlgItem( IDC_EDIT_DOOR2NAME )->ShowWindow( SW_HIDE );
- //GetDlgItem( IDC_STATIC3 )->ShowWindow( SW_HIDE );
- //GetDlgItem( IDC_EDIT_DOOR3NAME )->ShowWindow( SW_HIDE );
- //GetDlgItem( IDC_STATIC4 )->ShowWindow( SW_HIDE );
- //GetDlgItem( IDC_EDIT_DOOR4NAME )->ShowWindow( SW_HIDE );
- //switch( nDoorCur )
- //{
- //case 0://1
- // {
- // m_sEdit_Door2Name = "";
- // m_sEdit_Door3Name = "";
- // m_sEdit_Door4Name = "";
- // }
- // break;
- //case 1://2
- // {
- // m_sEdit_Door3Name = "";
- // m_sEdit_Door4Name = "";
- // GetDlgItem( IDC_STATIC2 )->ShowWindow( SW_SHOW );
- // GetDlgItem( IDC_EDIT_DOOR2NAME )->ShowWindow( SW_SHOW );
- // }
- // break;
- //case 2://4
- // {
- // GetDlgItem( IDC_STATIC2 )->ShowWindow( SW_SHOW );
- // GetDlgItem( IDC_EDIT_DOOR2NAME )->ShowWindow( SW_SHOW );
- // GetDlgItem( IDC_STATIC3 )->ShowWindow( SW_SHOW );
- // GetDlgItem( IDC_EDIT_DOOR3NAME )->ShowWindow( SW_SHOW );
- // GetDlgItem( IDC_STATIC4 )->ShowWindow( SW_SHOW );
- // GetDlgItem( IDC_EDIT_DOOR4NAME )->ShowWindow( SW_SHOW );
- // }
- // break;
- //}
- //UpdateData( false );
- }
- void CDlg_Controller::OnTimer(UINT nIDEvent)
- {
- // TODO: 在此添加消息处理程序代码和/或调用默认值
- //static bool f = false;
- //if( nIDEvent==1 )
- //{
- //}
- CDialog::OnTimer(nIDEvent);
- }
- void CDlg_Controller::OnNMDblclkListControl(NMHDR *pNMHDR, LRESULT *pResult)
- {
- // TODO: 在此添加控件通知处理程序代码
- int iListCount = m_List_Controller.GetItemCount();
- POSITION pos = m_List_Controller.GetFirstSelectedItemPosition();
- int nListSel = m_List_Controller.GetNextSelectedItem(pos);
- if(nListSel>=iListCount || nListSel==-1)
- {
- return;
- }
- CString sTemp = m_List_Controller.GetItemText( nListSel,0 );
- CDlg_ControllerProperty dlg;
- dlg.m_nOperate = EDIT;
- dlg.m_Controller.nID = atoi(sTemp);
- if( dlg.DoModal()==IDOK )
- {
- sTemp.Format(" %s",dlg.m_Controller.sName );
- m_List_Controller.SetItemText( nListSel,1,sTemp );
- sTemp.Format(" %s",dlg.m_Controller.bForbid==0?"启用":"禁用" );
- m_List_Controller.SetItemText( nListSel,2,sTemp );
- CString sWordMode;
- if( dlg.m_Controller.nWordMode==0 )
- sWordMode.Format( "COM%d",dlg.m_Controller.nComPort );
- else
- sWordMode.Format( "IP:%s,Port:%s",dlg.m_Controller.sIP,dlg.m_Controller.sPort );
- if( dlg.m_Controller.nBrandType==0 )
- sTemp.Format( " 微耕 【SN:%s】【%s】",dlg.m_Controller.sSN,sWordMode );
- else if( dlg.m_Controller.nBrandType==1 )
- sTemp.Format( " 中控 【SN:%s】【%s】",dlg.m_Controller.sSN,sWordMode );
- m_List_Controller.SetItemText(nListSel,3,sTemp );
- }
- else
- return;
- for( int i=0;i<CONCTROLLER_NUM_MAX;i++ )
- {
- if( g_Controller[i].nID == dlg.m_Controller.nID )
- {
- if( g_Controller[i].sSN != dlg.m_Controller.sSN || g_Controller[i].nComPort != dlg.m_Controller.nComPort ||
- g_Controller[i].nWordMode!=dlg.m_Controller.nWordMode || g_Controller[i].sIP!=dlg.m_Controller.sIP ||
- g_Controller[i].nBrandType!=dlg.m_Controller.nBrandType )
- {
- g_Controller[i].nID = dlg.m_Controller.nID;
- g_Controller[i].sName = dlg.m_Controller.sName;
- g_Controller[i].nBrandType = dlg.m_Controller.nBrandType;
- g_Controller[i].sSN = dlg.m_Controller.sSN;
- g_Controller[i].nWordMode = dlg.m_Controller.nWordMode;
- g_Controller[i].nComPort = dlg.m_Controller.nComPort;
- g_Controller[i].sIP = dlg.m_Controller.sIP;
- g_Controller[i].sPort = dlg.m_Controller.sPort;
- g_Controller[i].bForbid = dlg.m_Controller.bForbid;
- g_Controller[i].nDoorCount = dlg.m_Controller.nDoorCount;
- if( g_pDlgMain->m_pThread_Controller[i] )
- {
- g_pDlgMain->m_pThread_Controller[i]->StopThread();
- delete g_pDlgMain->m_pThread_Controller[i];
- g_pDlgMain->m_pThread_Controller[i] = NULL;
- g_pDlgMain->m_pDlg_Moniter->DelDoorFromList( dlg.m_Controller.sName.Trim() );
- g_pDlgMain->m_pDlg_Moniter->OnDoorSort();
- }
- for( int n=1;n<9;n++ )
- g_Controller[i].sDoorName[n] = dlg.m_Controller.sDoorName[n];
- if( g_pDlgMain->m_pThread_Controller[i]==NULL && !g_Controller[i].bForbid )
- {
- g_pDlgMain->m_pThread_Controller[i] = new CThread_Controller( g_Controller[i] );
- g_pDlgMain->m_pThread_Controller[i]->StartThread();
- }
- }
- else if( g_Controller[i].bForbid!=dlg.m_Controller.bForbid || g_Controller[i].nDoorCount!=dlg.m_Controller.nDoorCount )
- {
- int nDelDoor = -1;//-1表示没删 0表示删除但没有添加 2表示已经添加
- if( dlg.m_Controller.bForbid )//禁用的删除
- {
- g_pDlgMain->m_pDlg_Moniter->DelDoorFromList( g_Controller[i].sName );
- }
- else if( g_Controller[i].nDoorCount!=dlg.m_Controller.nDoorCount )//门的个数改变
- {
- nDelDoor = 0;
- g_pDlgMain->m_pDlg_Moniter->DelDoorFromList( g_Controller[i].sName );
- }
- if( g_pDlgMain->m_pThread_Controller[i] && !g_Controller[i].bForbid && !g_pDlgMain->m_pThread_Controller[i]->m_bExitFinish )//已经创建类,并且原来是启用的和在线的,暂停线程
- {
- SuspendThread( g_pDlgMain->m_pThread_Controller[i]->m_Thread );
- }
-
- g_Controller[i].nID = dlg.m_Controller.nID;
- g_Controller[i].sName = dlg.m_Controller.sName;
- g_Controller[i].nBrandType = dlg.m_Controller.nBrandType;
- g_Controller[i].sSN = dlg.m_Controller.sSN;
- g_Controller[i].nWordMode = dlg.m_Controller.nWordMode;
- g_Controller[i].nComPort = dlg.m_Controller.nComPort;
- g_Controller[i].sIP = dlg.m_Controller.sIP;
- g_Controller[i].sPort = dlg.m_Controller.sPort;
- g_Controller[i].bForbid = dlg.m_Controller.bForbid;
- g_Controller[i].nDoorCount = dlg.m_Controller.nDoorCount;
- for( int n=1;n<9;n++ )
- g_Controller[i].sDoorName[n] = dlg.m_Controller.sDoorName[n];
- if( g_pDlgMain->m_pThread_Controller[i] && !g_Controller[i].bForbid && !g_pDlgMain->m_pThread_Controller[i]->m_bExitFinish )//已经创建类,并且现在是启用的和在线的,启用线程
- {
- nDelDoor = 2;
- g_pDlgMain->m_pDlg_Moniter->AddDoorToList( g_Controller[i].sName,2 );
- g_pDlgMain->m_pThread_Controller[i]->SetController( g_Controller[i] );
- ResumeThread( g_pDlgMain->m_pThread_Controller[i]->m_Thread );
- }
- else if( g_pDlgMain->m_pThread_Controller[i]==NULL && !g_Controller[i].bForbid )//以前没有创建类,并且现在是启用的,创建类并创建线程
- {
- g_pDlgMain->m_pThread_Controller[i] = new CThread_Controller( g_Controller[i] );
- g_pDlgMain->m_pThread_Controller[i]->StartThread();
- }
- else if( g_pDlgMain->m_pThread_Controller[i] && !g_Controller[i].bForbid )//以前创建类,但连接失败,并且现在是启用的,创建类并创建线程
- {
- g_pDlgMain->m_pThread_Controller[i] = new CThread_Controller( g_Controller[i] );
- g_pDlgMain->m_pThread_Controller[i]->StartThread();
- }
- if( nDelDoor==0 )
- {
- g_pDlgMain->m_pDlg_Moniter->AddDoorToList( g_Controller[i].sName,2 );
- }
- }
- else
- {
- g_Controller[i].nID = dlg.m_Controller.nID;
- g_Controller[i].sName = dlg.m_Controller.sName;
- g_Controller[i].nBrandType = dlg.m_Controller.nBrandType;
- g_Controller[i].sSN = dlg.m_Controller.sSN;
- g_Controller[i].nWordMode = dlg.m_Controller.nWordMode;
- g_Controller[i].nComPort = dlg.m_Controller.nComPort;
- g_Controller[i].sIP = dlg.m_Controller.sIP;
- g_Controller[i].sPort = dlg.m_Controller.sPort;
- g_Controller[i].bForbid = dlg.m_Controller.bForbid;
- g_Controller[i].nDoorCount = dlg.m_Controller.nDoorCount;
- for( int n=1;n<9;n++ )
- g_Controller[i].sDoorName[n] = dlg.m_Controller.sDoorName[n];
- if( !g_Controller[i].bForbid )
- g_pDlgMain->m_pThread_Controller[i]->SetController( g_Controller[i] );
- }
- break;
- }
- }
-
- //改变门的信息
- SetCombDoor( &g_pDlgMain->m_pDlg_Record->m_Comb_Door );
- //改变权限界面的控制器
- //g_pDlgMain->m_pDlg_Permit->InitTreeInfo();
- *pResult = 0;
- }
- CString CDlg_Controller::GetDoorNameFromDoorInfo( CString sDoorInfo )
- {
- CString sRet;
- int nPos1=0,nPos2=0;
- nPos2 = sDoorInfo.Find( "*",nPos1 );
- sRet = sDoorInfo.Mid( nPos1,nPos2-nPos1);
- return sRet;
- }
- void CDlg_Controller::ReadController( CListCtrl *pListCtrl )
- {
- int m=0;
- CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
- list<string> list1,list2,list3,list4,list5,list6,list7,list8,list9,list10;
- list<string> list11,list12,list13,list14,list15,list16,list17,list18,list19,list20;
- list<string> list21,list22,list23,list24,list25,list26,list27,list28,list29,list30;
- list<string>::iterator it_list1,it_list2,it_list3,it_list4,it_list5,it_list6,it_list7,it_list8,it_list9,it_list10;
- list<string>::iterator it_list11,it_list12,it_list13,it_list14,it_list15,it_list16,it_list17,it_list18,it_list19,it_list20;
- list<string>::iterator it_list21,it_list22,it_list23,it_list24,it_list25,it_list26,it_list27,it_list28,it_list29,it_list30;
- if(!_stricmp(g_strDBType, "PGSQL"))
- {
- sprintf(strSQLText, "select id, nbrandtype, scontrolname,ssn,nwordmode,ncomport,sip,sport,nforbid,ndoorconut,sdoor1,sdoor2,sdoor3,sdoor4,sdoor5,sdoor6,sdoor7,sdoor8, "\
- "intreserved1,intreserved2,intreserved3,intreserved4,intreserved5,intreserved6,strreserved1,strreserved2,strreserved3,strreserved4,strreserved5,strreserved6 "\
- "from t_door_control order by id");
- }
- else
- {
- sprintf(strSQLText, "select id, nbrandtype, scontrolname,ssn,nwordmode,ncomport,sip,sport,nforbid,ndoorconut,sdoor1,sdoor2,sdoor3,sdoor4,sdoor5,sdoor6,sdoor7,sdoor8, "\
- "intreserved1,intreserved2,intreserved3,intreserved4,intreserved5,intreserved6,strreserved1,strreserved2,strreserved3,strreserved4,strreserved5,strreserved6 "\
- "from t_door_control order by id");
- }
- int nRet = GetFieldValueList30( strSQLText,list1,list2,list3,list4,list5,list6,list7,list8,list9,list10
- ,list11,list12,list13,list14,list15,list16,list17,list18,list19,list20
- ,list21,list22,list23,list24,list25,list26,list27,list28,list29,list30);
- if( 0 == list1.size() || 0 == list2.size() )
- {
- return ;
- }
- if( nRet != -1 )
- {
- int nIndex = 0;
- CString sID,sBrandType,sControlName,sSn,sWordMode,sComPort,sIP,sPort,sForbid,sDoorCount;
- CString sDoor1,sDoor2,sDoor3,sDoor4,sDoor5,sDoor6,sDoor7,sDoor8;
- CString sTemp;
- for( it_list1=list1.begin(),it_list2=list2.begin(),it_list3=list3.begin(),
- it_list4=list4.begin(),it_list5=list5.begin(),it_list6=list6.begin(),
- it_list7=list7.begin(),it_list8=list8.begin(),it_list9=list9.begin(),
- it_list10=list10.begin(),it_list11=list11.begin(),it_list12=list12.begin(),
- it_list13=list13.begin(),it_list14=list14.begin(),it_list15=list15.begin(),
- it_list16=list16.begin(),it_list17=list17.begin(),it_list18=list18.begin();
- it_list1!=list1.end() && it_list2!=list2.end() && it_list3!=list3.end() &&
- it_list4!=list4.end() && it_list5!=list5.end() && it_list6!=list6.end() &&
- it_list7!=list7.end() && it_list8!=list8.end() && it_list9!=list9.end() &&
- it_list10!=list10.end() && it_list11!=list11.end() && it_list12!=list12.end() &&
- it_list13!=list13.end() && it_list14!=list14.end() && it_list15!=list15.end() &&
- it_list16!=list16.end() && it_list17!=list17.end() && it_list18!=list18.end();
- it_list1++,it_list2++,it_list3++,
- it_list4++,it_list5++,it_list6++,
- it_list7++,it_list8++,it_list9++,
- it_list10++,it_list11++,it_list12++,
- it_list13++,it_list14++,it_list15++,
- it_list16++,it_list17++,it_list18++ )
- {
- sID = (*it_list1).c_str();
- sBrandType = (*it_list2).c_str();
- sControlName = (*it_list3).c_str();
- sSn = (*it_list4).c_str();
- sWordMode = (*it_list5).c_str();
- sComPort = (*it_list6).c_str();
- sIP = (*it_list7).c_str();
- sPort = (*it_list8).c_str();
- sForbid = (*it_list9).c_str();
- sDoorCount = (*it_list10).c_str();
- sDoor1 = (*it_list11).c_str();
- sDoor2 = (*it_list12).c_str();
- sDoor3 = (*it_list13).c_str();
- sDoor4 = (*it_list14).c_str();
- sDoor5 = (*it_list15).c_str();
- sDoor6 = (*it_list16).c_str();
- sDoor7 = (*it_list17).c_str();
- sDoor8 = (*it_list18).c_str();
- g_Controller[nIndex].nID = atoi( sID );
- g_Controller[nIndex].nBrandType = atoi( sBrandType );
- g_Controller[nIndex].sName = sControlName;
- g_Controller[nIndex].sSN = sSn;
- g_Controller[nIndex].nWordMode = atoi( sWordMode );
- g_Controller[nIndex].nComPort = atoi( sComPort );
- g_Controller[nIndex].sIP = sIP;
- g_Controller[nIndex].sPort = sPort;
- g_Controller[nIndex].bForbid = atoi( sForbid );
- g_Controller[nIndex].nDoorCount = atoi( sDoorCount );
- g_Controller[nIndex].sDoorName[1] = GetDoorNameFromDoorInfo( sDoor1 );
- g_Controller[nIndex].sDoorName[2] = GetDoorNameFromDoorInfo( sDoor2 );
- g_Controller[nIndex].sDoorName[3] = GetDoorNameFromDoorInfo( sDoor3 );
- g_Controller[nIndex].sDoorName[4] = GetDoorNameFromDoorInfo( sDoor4 );
- g_Controller[nIndex].sDoorName[5] = GetDoorNameFromDoorInfo( sDoor5 );
- g_Controller[nIndex].sDoorName[6] = GetDoorNameFromDoorInfo( sDoor6 );
- g_Controller[nIndex].sDoorName[7] = GetDoorNameFromDoorInfo( sDoor7 );
- g_Controller[nIndex].sDoorName[8] = GetDoorNameFromDoorInfo( sDoor8 );
- g_Controller[nIndex].sDoorAll[1] = sDoor1;
- g_Controller[nIndex].sDoorAll[2] = sDoor2;
- g_Controller[nIndex].sDoorAll[3] = sDoor3;
- g_Controller[nIndex].sDoorAll[4] = sDoor4;
- g_Controller[nIndex].sDoorAll[5] = sDoor5;
- g_Controller[nIndex].sDoorAll[6] = sDoor6;
- g_Controller[nIndex].sDoorAll[7] = sDoor7;
- g_Controller[nIndex].sDoorAll[8] = sDoor8;
- int n=0;
- pListCtrl->InsertItem( n,sID );
- pListCtrl->SetItemText( n,1," "+sControlName );
- sTemp.Format( " %s",sForbid=="0"?"启用":"禁用" );
- pListCtrl->SetItemText( n,2,sTemp );
- CString sWordMode;
- if( g_Controller[nIndex].nWordMode==0 )
- sWordMode.Format( "COM%d",g_Controller[nIndex].nComPort );
- else
- sWordMode.Format( "IP:%s,Port:%s",g_Controller[nIndex].sIP,g_Controller[nIndex].sPort );
- if( g_Controller[nIndex].nBrandType==0 )
- sTemp.Format( " 微耕 【SN:%s】【%s】",g_Controller[nIndex].sSN,sWordMode );
- else if( g_Controller[nIndex].nBrandType==1 )
- sTemp.Format( " 中控 【SN:%s】【%s】",g_Controller[nIndex].sSN,sWordMode );
- pListCtrl->SetItemText(n,3,sTemp );
- nIndex++;
- }
- }
- for( it_list1=list1.begin(),it_list2=list2.begin(),it_list3=list3.begin(),it_list4=list4.begin(),it_list5=list5.begin(),it_list6=list6.begin(),
- it_list7=list7.begin(),it_list8=list8.begin(),it_list9=list9.begin(),it_list10=list10.begin(),it_list11=list11.begin(),it_list12=list12.begin(),
- it_list13=list13.begin(),it_list14=list14.begin(),it_list15=list15.begin(),it_list16=list16.begin(),it_list17=list17.begin(),it_list18=list18.begin(),
- it_list19=list19.begin(),it_list20=list20.begin(),it_list21=list21.begin(),it_list22=list22.begin(),it_list23=list23.begin(),it_list24=list24.begin(),
- it_list25=list25.begin(),it_list26=list26.begin(),it_list27=list27.begin(),it_list28=list28.begin(),it_list29=list29.begin(),it_list30=list30.begin();
- it_list1!=list1.end(),it_list2!=list2.end(),it_list3!=list3.end(),it_list4!=list4.end(),it_list5!=list5.end(),it_list6!=list6.end(),
- it_list7!=list7.end(),it_list8!=list8.end(),it_list9!=list9.end(),it_list10!=list10.end(),it_list11!=list11.end(),it_list12!=list12.end(),
- it_list13!=list13.end(),it_list14!=list14.end(),it_list15!=list15.end(),it_list16!=list16.end(),it_list17!=list17.end(),it_list18!=list18.end(),
- it_list19!=list19.end(),it_list20!=list20.end(),it_list21!=list21.end(),it_list22!=list22.end(),it_list23!=list23.end(),it_list24!=list24.end(),
- it_list25!=list25.end(),it_list26!=list26.end(),it_list27!=list27.end(),it_list28!=list28.end(),it_list29!=list29.end(),it_list30!=list30.end();)
- {
- list1.erase(it_list1++);
- list2.erase(it_list2++);
- list3.erase(it_list3++);
- list4.erase(it_list4++);
- list5.erase(it_list5++);
- list6.erase(it_list6++);
- list7.erase(it_list7++);
- list8.erase(it_list8++);
- list9.erase(it_list9++);
- list10.erase(it_list10++);
- list11.erase(it_list11++);
- list12.erase(it_list12++);
- list13.erase(it_list13++);
- list14.erase(it_list14++);
- list15.erase(it_list15++);
- list16.erase(it_list16++);
- list17.erase(it_list17++);
- list18.erase(it_list18++);
- list19.erase(it_list19++);
- list20.erase(it_list20++);
- list21.erase(it_list21++);
- list22.erase(it_list22++);
- list23.erase(it_list23++);
- list24.erase(it_list24++);
- list25.erase(it_list25++);
- list26.erase(it_list26++);
- list27.erase(it_list27++);
- list28.erase(it_list28++);
- list29.erase(it_list29++);
- list30.erase(it_list30++);
- }
- }
|