📄 rfid_desktopreaderview.cpp
字号:
// RFID_DesktopReaderView.cpp : implementation of the CRFID_DesktopReaderView class
//
#include "stdafx.h"
#include "RFID_DesktopReader.h"
#include "RFID_DesktopReaderDoc.h"
#include "RFID_DesktopReaderView.h"
#include "CommDlg.h"
#include "exportFUNC.h"
#include "rfidSearchDlg.h"
#include "rfid_desktopreaderview.h"
#include "dbtable.h"
#include "rfid_desktopreaderview.h"
#include "adoDB.h"
#include ".\rfid_desktopreaderview.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CRFID_DesktopReaderView
IMPLEMENT_DYNCREATE(CRFID_DesktopReaderView, CFormView)
BEGIN_MESSAGE_MAP(CRFID_DesktopReaderView, CFormView)
//{{AFX_MSG_MAP(CRFID_DesktopReaderView)
// ON_COMMAND(ID_VIEW_PREVIEW_PANE, OnViewPreviewPane)
// ON_UPDATE_COMMAND_UI(ID_VIEW_PREVIEW_PANE, OnUpdateViewPreviewPane)
ON_WM_CREATE()
//}}AFX_MSG_MAP
ON_WM_CONTEXTMENU()
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, OnFilePrintPreview)
ON_COMMAND(ID_DB_CONNECT, OnDbConnect)
ON_COMMAND(ID_DB_DISCONNECT, OnDbDisconnect)
ON_COMMAND(ID_DB_SETTING, OnDbSetting)
ON_COMMAND(ID_COMM_CONNECT, OnCommConnect)
ON_COMMAND(ID_COMM_DISCONNECT, OnCommDisconnect)
ON_COMMAND(ID_COMM_SETTING, OnCommSetting)
// ON_COMMAND(ID_RFID_SEARCH, OnRfidSearch)
ON_COMMAND(ID_RFID_ASSOCIATE, OnRfidAssociate)
ON_COMMAND(ID_RFID_DEASSOCIATE, OnRfidDeassociate)
ON_MESSAGE(WM_MAPEDRFID,OnMapedRFID)
ON_COMMAND(ID_RFID_CANCLE, OnRfidCancle)
ON_CBN_SELCHANGE(IDC_COB_FIELD0, OnCbnSelchangeCobField0)
ON_CBN_SELCHANGE(IDC_COB_FIELD1, OnCbnSelchangeCobField1)
ON_CBN_SELCHANGE(IDC_COB_FIELD2, OnCbnSelchangeCobField2)
ON_CBN_SELCHANGE(IDC_COB_FIELD3, OnCbnSelchangeCobField3)
ON_BN_CLICKED(IDC_RESET_ALL, OnBnClickedResetAll)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRFID_DesktopReaderView construction/destruction
_ConnectionPtr g_pConnection;
_CommandPtr g_pCommand;
_RecordsetPtr g_pRecordset;
//CADODataset g_adoDataset;
//CADOConnection g_adoConnection;
CRFID_DesktopReaderView::CRFID_DesktopReaderView()
: CFormView(CRFID_DesktopReaderView::IDD)
{
// TODO: add construction code here
m_nBand=19200;
m_nPort=1;
m_nParity=0;//odd parity
m_nData=8;
m_nLamp=0;
m_pCommDlg=NULL;
// g_padoConnection=NULL;
// m_strStopBit="1";
}
CRFID_DesktopReaderView::~CRFID_DesktopReaderView()
{
if(m_pCommDlg!=NULL)
delete m_pCommDlg;
}
BOOL CRFID_DesktopReaderView::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style |= LVS_REPORT;
return CFormView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CRFID_DesktopReaderView drawing
void CRFID_DesktopReaderView::OnDraw(CDC* pDC)
{
CRFID_DesktopReaderDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
/*
CRect rect;
CRect rect1;
int height,width;
this->GetClientRect(&rect);
rect.top+=120;
rect.bottom-=5;
CListCtrl* list=(CListCtrl*)this->GetDlgItem(IDC_LIST2);
list->MoveWindow(&rect);
*/
// TODO: add draw code for native data here
}
void CRFID_DesktopReaderView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
// m_cDBList.SetExtendedStyle( LVS_EX_FULLROWSELECT| LVS_EX_GRIDLINES );
m_cListAssociation.SetExtendedStyle( LVS_EX_FULLROWSELECT| LVS_EX_GRIDLINES );
m_cListUnassociation.SetExtendedStyle( LVS_EX_FULLROWSELECT| LVS_EX_GRIDLINES );
//FillList();
}
/////////////////////////////////////////////////////////////////////////////
// CRFID_DesktopReaderView printing
void CRFID_DesktopReaderView::OnFilePrintPreview()
{
BCGPPrintPreview (this);
}
BOOL CRFID_DesktopReaderView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CRFID_DesktopReaderView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CRFID_DesktopReaderView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CRFID_DesktopReaderView diagnostics
#ifdef _DEBUG
void CRFID_DesktopReaderView::AssertValid() const
{
CFormView::AssertValid();
}
void CRFID_DesktopReaderView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
CRFID_DesktopReaderDoc* CRFID_DesktopReaderView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CRFID_DesktopReaderDoc)));
return (CRFID_DesktopReaderDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CRFID_DesktopReaderView message handlers
void CRFID_DesktopReaderView::OnContextMenu(CWnd*, CPoint point)
{
theApp.ShowPopupMenu (IDR_CONTEXT_MENU, point, this);
}
//void CRFID_DesktopReaderView::OnViewPreviewPane()
//{
// // TODO: Add your command handler code here
//
//}
//void CRFID_DesktopReaderView::OnUpdateViewPreviewPane(CCmdUI* pCmdUI)
//{
// // TODO: Add your command update UI handler code here
//
//}
int CRFID_DesktopReaderView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFormView::OnCreate(lpCreateStruct) == -1)
return -1;
const int nImageWidth = 12;
m_ImagesHeader.Create (IDB_HEADER_IMAGES, nImageWidth, 0, RGB (255, 0, 255));
// m_ImagesList.Create (IDB_LIST_IMAGES, 14, 0, RGB (255, 0, 255));
/*
CListCtrl& wndList = GetListCtrl ();
wndList.SetExtendedStyle (LVS_EX_FULLROWSELECT);
wndList.SetImageList (&m_ImagesList, LVSIL_SMALL);
wndList.InsertColumn (0, _T("From"), LVCFMT_LEFT, 100);
wndList.InsertColumn (1, _T("Subject"), LVCFMT_LEFT, 200);
*/
m_wndHeader.SubclassDlgItem (0, this);
// m_wndHeader.SetImageList (&m_ImagesHeader);
/*
LVCOLUMN lvColumn;
memset (&lvColumn, 0, sizeof (LVCOLUMN));
lvColumn.mask = LVCF_IMAGE | LVCF_WIDTH;
lvColumn.fmt = LVCFMT_COL_HAS_IMAGES;
lvColumn.cx = nImageWidth * 2;
lvColumn.iImage = 0;
wndList.InsertColumn (2, &lvColumn);
lvColumn.iImage = 1;
wndList.InsertColumn (3, &lvColumn);
lvColumn.iImage = 2;
wndList.InsertColumn (4, &lvColumn);
static int nColumsOrder [] = { 2, 3, 4, 0, 1 };
wndList.SetColumnOrderArray (sizeof (nColumsOrder) / sizeof (int), nColumsOrder);
*/
return 0;
}
void CRFID_DesktopReaderView::OnDbConnect()
{
// TODO: 在此添加命令处理程序代码
CRFID_DesktopReaderApp* ptheApp=(CRFID_DesktopReaderApp*)AfxGetApp();
ptheApp->CreateDBConnection("MyDbSource.udl");
CRFID_DesktopReaderDoc* pDoc=GetDocument();
ASSERT_VALID(pDoc);
if(ptheApp->m_adoConnection.IsOpen())
{
pDoc->m_adoDevice.SetConnection(&(ptheApp->m_adoConnection));
pDoc->m_adoRFIDMap.SetConnection(&(ptheApp->m_adoConnection));
pDoc->m_adoUnmapedDevice.SetConnection(&(ptheApp->m_adoConnection));
pDoc->m_adoMapedDevice.SetConnection(&(ptheApp->m_adoConnection));
pDoc->m_CurrentRFID.mapedDataset.SetConnection(&(ptheApp->m_adoConnection));
this->FillCOB();
this->FillAssociationList();
this->FillUnassociationList();
}
}
void CRFID_DesktopReaderView::OnDbDisconnect()
{
// TODO: 在此添加命令处理程序代码
}
void CRFID_DesktopReaderView::OnDbSetting()
{
// TODO: 在此添加命令处理程序代码
// TODO: Add your control notification handler code here
HRESULT hr;
IDataSourceLocatorPtr dlPrompt=NULL;
_RecordsetPtr rs=NULL;
try
{
// 初始化DataLinks对象
hr=dlPrompt.CreateInstance(__uuidof(DataLinks));
if(FAILED(hr))
throw(_com_error(hr,NULL));
// 建立连接
pConn=dlPrompt->PromptNew();
// 如果 conn 为 NULL
if(pConn==NULL)
return;
CRFID_DesktopReaderDoc* pDoc=GetDocument();
pDoc->m_strDataSource=(char*)pConn->ConnectionString;
UpdateData(FALSE);
/*
// 打开连接
pConn->Open(pConn->ConnectionString,L"",L"",-1);
// 清除列表框
while(m_tblList.GetCount()>0)
m_tblList.DeleteString(0);
// 获取数据库中表集
rs=pConn->OpenSchema(adSchemaTables);
while(!rs->adoEOF)
{
m_tblList.AddString((char*)(_bstr_t)rs->Fields->Item[L"TABLE_NAME"]->Value);
rs->MoveNext();
}
*/
rs=NULL;
dlPrompt.Release();
}
catch (_com_error &e)
{
AfxMessageBox(e.ErrorMessage());
}
}
//void CRFID_DesktopReaderView::OnRfidAssociate()
//{
// // TODO: 在此添加命令处理程序代码
//
//}
//void CRFID_DesktopReaderView::OnRfidDeassociate()
//{
// // TODO: 在此添加命令处理程序代码
//}
void CRFID_DesktopReaderView::OnCommConnect()
{
// TODO: 在此添加命令处理程序代码
//打开串行端口
int state = 1;
//port : com1
//baud : 19200
state = rf_init_com(1,m_nBand);
if(state != LIB_SUCCESS){
rf_ClosePort();
// MessageBox("不能正确打开端口!","Error",MB_OK|MB_ICONERROR);
return ;
}
}
void CRFID_DesktopReaderView::OnCommDisconnect()
{
// TODO: 在此添加命令处理程序代码
}
void CRFID_DesktopReaderView::OnCommSetting()
{
// TODO: 在此添加命令处理程序代码
if(m_pCommDlg==NULL)
{
m_pCommDlg=new CCommDlg(this,
m_nBand,
m_nPort,
m_nLamp);
m_pCommDlg->Create(IDD_COM_DLG,this);
}
ASSERT_VALID(m_pCommDlg);
m_pCommDlg->ShowWindow(SW_SHOW);
m_pCommDlg->UpdateData(TRUE);
/*
commDlg.m_nBand=m_nBand;
commDlg.m_nPort=m_nPort-1;
if(commDlg.DoModal()==IDOK)
{
m_nPort=commDlg.m_nPort+1;
m_nBand=commDlg.m_nBand;
m_nLamp=commDlg.m_nLamp;
}
*/
}
//void CRFID_DesktopReaderView::OnRfidSearch()
//{
// // TODO: 在此添加命令处理程序代码
//
//
//}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -