PVICOM读写结构体变量

<< 点击显示目录 >>

主页  PVI通信 > 应用例程 > Windows > PVICOM_C++ >

PVICOM读写结构体变量

1. 结构变量更整洁

结构变量更有利于查找和管理,程序更清晰的程序代码。

2. 创建 PVI 结构变量

          //////////////////////////////////////////////////////////////////////

// PVI variable object PV1:

if (! m_NamePv1.IsEmpty ())

{

PObjPvName = PObjName + PVICHR_PATH + m_NamePv1;

PObjDesc.Format ("CD=\"%s\" %s", m_ConnectPv1,m_ParamPv1);

 

// create a temporary variable object and a link object:

/////////////////////////////////////////////////////////////////////////

// Pv1:VisIO:

CString temp = "VT=struct";

int i;

for( i=0; i<15; i++) // 60

{

temp+=" {. VT=i32}"; // 15 个 i32, 60 个字节

}

/////////////////////////////////////////////////////////////////////////

for( i=0; i<4; i++) // 8

{

temp+=" {. VT=u16}"; // 4 个 u16, 8 个字节

}

/////////////////////////////////////////////////////////////////////////

for( i=0; i<64; i++)

{

temp+=" {. VT=u8}"; // 64 个 u8, 64 个字节

}

// IDC_PVAR1 是 LPARAM 类型, 对应每一个创建的对象.

ErrCode = PviCreate (&hPvar1, PObjPvName, POBJ_PVAR,PObjDesc, CWnd::m_hWnd, WM_PVI_EVENT,IDC_PVAR1,temp);

if (ErrCode != NULL)

{

hPvar1 = NULL;

DemoMessage ("Can't create variable (PV1) objekt \"%s\" (%u)",PObjName, ErrCode);

}

}

3. 读取 PVI 结构变量

/////////////////////////////////////////////////////////////////////////////

// PVI 读事件驱动:

/////////////////////////////////////////////////////////////////////////////

LRESULT CTchjView::OnPviEvent(WPARAM wParam, LPARAM lParam)

{

char        pszDataBf[80];

int        ErrCode;

/////////////////////////////////////////////////////////////////////////

// lParam:变量所对应事件: LPARAM 对应创建的对象, 此处是 IDC_PVAR1.

switch (lParam)

{

case IDC_PVAR1:

ErrCode = PviReadResponse (wParam, &VisIO, sizeof (PANELIO));

////////////////////////////////////////////////////////////////

// 从 PCC 中读该变量失败:

if (ErrCode != NULL)