本文整理汇总了C++中APDU::GetApduMem方法的典型用法代码示例。如果您正苦于以下问题:C++ APDU::GetApduMem方法的具体用法?C++ APDU::GetApduMem怎么用?C++ APDU::GetApduMem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类APDU
的用法示例。
在下文中一共展示了APDU::GetApduMem方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
ExtendedFrame::ExtendedFrame(const APDU& apdu)
{
m_frame_len = 7 + apdu.GetApduLen() + 1;
m_frame_mem = new UCHAR[m_frame_len];
memset(m_frame_mem, 0, m_frame_len);
// 设置控制字.
UCHAR& ctrl_code = m_frame_mem[0];
ctrl_code &= 0x7F; // 第一位置0就是扩展帧.
ctrl_code |= 0x20; // 非重复的Frame.
ctrl_code |= 0x10; // 数据帧.
UCHAR priority = apdu.GetPriority();
priority <<= 2;
ctrl_code |= priority; // 设优先级.
// 设置扩展字.
UCHAR& ctrle_code = m_frame_mem[1];
if ( apdu.GetAddrType() )
{
ctrle_code |= 0x80;
}
ctrle_code |= 0x70; // Hop数写死为7.
// 下面设源地址.
const UCHAR* hostaddr = apdu.GetHostAddr();
m_frame_mem[2] = hostaddr[0];
m_frame_mem[3] = hostaddr[1];
// 下面设目标地址.
const UCHAR* peeraddr = apdu.GetPeerAddr();
m_frame_mem[4] = peeraddr[0];
m_frame_mem[5] = peeraddr[1];
// 设置长度.
m_frame_mem[6] = apdu.GetApduLen();
// 把APDU放入.
memcpy(m_frame_mem + 7, apdu.GetApduMem(), apdu.GetApduLen());
// 算checksum.
m_frame_mem[m_frame_len-1] = xor_check_sum(m_frame_mem, m_frame_len-1);
}