📄 sjaregview.cpp
字号:
// SJARegView.cpp : implementation file
//
#include "stdafx.h"
#include "VCStyle.h"
#include "SJARegView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSJARegView
IMPLEMENT_DYNCREATE(CSJARegView, CFormView)
CSJARegView::CSJARegView()
: CFormView(CSJARegView::IDD)
{
//{{AFX_DATA_INIT(CSJARegView)
m_alc = 0;
m_bus1 = 0;
m_bus2 = 0;
m_ecc = 0;
m_inten = 0;
m_int = 0;
m_mode = 0;
m_rxerr = 0;
m_state = 0;
m_txerr = 0;
m_mode_4 = FALSE;
m_mode_3 = FALSE;
m_mode_2 = FALSE;
m_mode_1 = FALSE;
m_mode_0 = FALSE;
m_state_0 = FALSE;
m_state_1 = FALSE;
m_state_2 = FALSE;
m_state_3 = FALSE;
m_state_4 = FALSE;
m_state_5 = FALSE;
m_state_6 = FALSE;
m_state_7 = FALSE;
m_int_0 = FALSE;
m_int_1 = FALSE;
m_int_2 = FALSE;
m_int_3 = FALSE;
m_int_4 = FALSE;
m_int_5 = FALSE;
m_int_6 = FALSE;
m_int_7 = FALSE;
m_inten_0 = FALSE;
m_inten_1 = FALSE;
m_inten_2 = FALSE;
m_inten_3 = FALSE;
m_inten_4 = FALSE;
m_inten_5 = FALSE;
m_inten_6 = FALSE;
m_inten_7 = FALSE;
//}}AFX_DATA_INIT
}
CSJARegView::~CSJARegView()
{
}
void CSJARegView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSJARegView)
DDX_Text(pDX, IDC_EDIT_ALC, m_alc);
DDX_Text(pDX, IDC_EDIT_BUSTIME1, m_bus1);
DDX_Text(pDX, IDC_EDIT_BUSTIME2, m_bus2);
DDX_Text(pDX, IDC_EDIT_ECC, m_ecc);
DDX_Text(pDX, IDC_EDIT_INTEN, m_inten);
DDX_Text(pDX, IDC_EDIT_INTERRUPT, m_int);
DDX_Text(pDX, IDC_EDIT_MODE, m_mode);
DDX_Text(pDX, IDC_EDIT_RXERR, m_rxerr);
DDX_Text(pDX, IDC_EDIT_STATE, m_state);
DDX_Text(pDX, IDC_EDIT1_TXERR, m_txerr);
DDX_Check(pDX, IDC_CHECK_MODE_4, m_mode_4);
DDX_Check(pDX, IDC_CHECK_MODE_3, m_mode_3);
DDX_Check(pDX, IDC_CHECK_MODE_2, m_mode_2);
DDX_Check(pDX, IDC_CHECK_MODE_1, m_mode_1);
DDX_Check(pDX, IDC_CHECK_MODE_0, m_mode_0);
DDX_Check(pDX, IDC_CHECK_STATE_0, m_state_0);
DDX_Check(pDX, IDC_CHECK_STATE_1, m_state_1);
DDX_Check(pDX, IDC_CHECK_STATE_2, m_state_2);
DDX_Check(pDX, IDC_CHECK_STATE_3, m_state_3);
DDX_Check(pDX, IDC_CHECK_STATE_4, m_state_4);
DDX_Check(pDX, IDC_CHECK_STATE_5, m_state_5);
DDX_Check(pDX, IDC_CHECK_STATE_6, m_state_6);
DDX_Check(pDX, IDC_CHECK_STATE_7, m_state_7);
DDX_Check(pDX, IDC_CHECK_INT_0, m_int_0);
DDX_Check(pDX, IDC_CHECK_INT_1, m_int_1);
DDX_Check(pDX, IDC_CHECK_INT_2, m_int_2);
DDX_Check(pDX, IDC_CHECK_INT_3, m_int_3);
DDX_Check(pDX, IDC_CHECK_INT_4, m_int_4);
DDX_Check(pDX, IDC_CHECK_INT_5, m_int_5);
DDX_Check(pDX, IDC_CHECK_INT_6, m_int_6);
DDX_Check(pDX, IDC_CHECK_INT_7, m_int_7);
DDX_Check(pDX, IDC_CHECK_INTEN_0, m_inten_0);
DDX_Check(pDX, IDC_CHECK_INTEN_1, m_inten_1);
DDX_Check(pDX, IDC_CHECK_INTEN_2, m_inten_2);
DDX_Check(pDX, IDC_CHECK_INTEN_3, m_inten_3);
DDX_Check(pDX, IDC_CHECK_INTEN_4, m_inten_4);
DDX_Check(pDX, IDC_CHECK_INTEN_5, m_inten_5);
DDX_Check(pDX, IDC_CHECK_INTEN_6, m_inten_6);
DDX_Check(pDX, IDC_CHECK_INTEN_7, m_inten_7);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSJARegView, CFormView)
//{{AFX_MSG_MAP(CSJARegView)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_WM_CTLCOLOR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSJARegView diagnostics
#ifdef _DEBUG
void CSJARegView::AssertValid() const
{
CFormView::AssertValid();
}
void CSJARegView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
CSJARegDoc *CSJARegView::GetDocument () // non-debug version is inline
{
ASSERT (m_pDocument->IsKindOf (RUNTIME_CLASS (CSJARegDoc)));
return (CSJARegDoc *) m_pDocument;
}
/////////////////////////////////////////////////////////////////////////////
// CSJARegView message handlers
#include "sja\\sjaexport.h"
#include "data.h"
void CSJARegView::ScanSJARegs()
{
m_mode = ReadSJAReg(0);
m_state = ReadSJAReg(2);
// m_int = ReadSJAReg(3);
m_int = intcode;
m_inten = ReadSJAReg(4);
m_bus1 = ReadSJAReg(6);
m_bus2 = ReadSJAReg(7);
m_alc = ReadSJAReg(11);
m_ecc = ReadSJAReg(12);
m_rxerr = ReadSJAReg(14);
m_txerr = ReadSJAReg(15);
}
void CSJARegView::OnButton1()
{
ScanSJARegs();
//update mode.4 ~ mode.0
m_mode_4 = (m_mode & 0x10)!=0;
m_mode_3 = (m_mode & 0x08)!=0;
m_mode_2 = (m_mode & 0x04)!=0;
m_mode_1 = (m_mode & 0x02)!=0;
m_mode_0 = (m_mode & 0x01)!=0;
//update state
m_state_7 = (m_state & 0x80)!=0;
m_state_6 = (m_state & 0x40)!=0;
m_state_5 = (m_state & 0x20)!=0;
m_state_4 = (m_state & 0x10)!=0;
m_state_3 = (m_state & 0x08)!=0;
m_state_2 = (m_state & 0x04)!=0;
m_state_1 = (m_state & 0x02)!=0;
m_state_0 = (m_state & 0x01)!=0;
//update int
m_int_7 = (m_int & 0x80)!=0;
m_int_6 = (m_int & 0x40)!=0;
m_int_5 = (m_int & 0x20)!=0;
m_int_4 = (m_int & 0x10)!=0;
m_int_3 = (m_int & 0x08)!=0;
m_int_2 = (m_int & 0x04)!=0;
m_int_1 = (m_int & 0x02)!=0;
m_int_0 = (m_int & 0x01)!=0;
//update int en
m_inten_7 = (m_inten & 0x80)!=0;
m_inten_6 = (m_inten & 0x40)!=0;
m_inten_5 = (m_inten & 0x20)!=0;
m_inten_4 = (m_inten & 0x10)!=0;
m_inten_3 = (m_inten & 0x08)!=0;
m_inten_2 = (m_inten & 0x04)!=0;
m_inten_1 = (m_inten & 0x02)!=0;
m_inten_0 = (m_inten & 0x01)!=0;
UpdateData(FALSE);
}
HBRUSH CSJARegView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
// HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
return m_bkbrush;
// TODO: Return a different brush if the default is not desired
// return hbr;
}
void CSJARegView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
m_bkbrush.CreateSolidBrush(RGB(240,250,245));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -