设备实时监控

#pragma once
#include <assert.h>


class CIOMocker
{
public:
CIOMocker() : m_bOpen(FALSE) 
{
srand((unsigned)time(NULL));
wsprintf(m_szDescription,_T("CAXA-CAPP-%03d"),1+rand()%999);
}
~CIOMocker() {}


// 获得设备的描述
LPCTSTR GetDescription() const 
{
return m_szDescription;
}


// 打开设备,前提设备必须已经关闭;初始时设备为关闭状态
BOOL Open()
{
if (m_bOpen)
{
assert(!m_bOpen);
return TRUE;
}


m_bOpen = rand()%2;
return m_bOpen;
}


// 读取信号,前提设备必须已经打开
// 返回的第 0-7 bit 分别代表1-8路信号
DWORD Read()
{
if (!m_bOpen)
{
assert(m_bOpen);
return -1;
}


return rand() % 0x100;
}


// 关闭设备
void Close()
{
m_bOpen = FALSE;
}
private:
BOOL m_bOpen;
TCHAR m_szDescription[64];

};



DWORD dwVal = dev.dwRead();

// signalVal[0] = (dwVal & 0x1 == 0) ? 0 : 1;

signalVal[0] = dwVal & 0x1;

signalVal[1] = dwVal & 0x2;

signalVal[2] = dwVal & 0x4;

signalVal[3] = dwVal & 0x8;

signalVal[4] = dwVal & 0x10;

signalVal[5] = dwVal & 0x20;

signalVal[6] = dwVal & 0x40;

signalVal[7] = dwVal & 0x80;  

//信号有无,判断是否非0


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值