⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfid_tag_app.cpp

📁 RFID reader 语 tag 模拟器
💻 CPP
字号:
 #include "rfid_tag_app.hpp" #include "rfid_reader_app.hpp" #include "node.hpp" // RfidTagApp functions RfidTagApp::RfidTagApp(NodePtr node)    : ApplicationLayer(node), m_replyToReads(true) { } void RfidTagApp::simulationEndHandler() { } void RfidTagApp::startHandler() { } void RfidTagApp::stopHandler() { } bool RfidTagApp::getReplyToReads() const {    return m_replyToReads; } void RfidTagApp::setReplyToReads(bool replyToReads) {    m_replyToReads = replyToReads; } bool RfidTagApp::handleRecvdPacket(PacketPtr packet, t_uint recvLayerIdx) {    if(!m_isRunning)       return false;    RfidReaderAppDataPtr readerData =       boost::dynamic_pointer_cast<RfidReaderAppData>       (packet->getData(Packet::DataTypes_Application));    bool wasSuccessful = false;    // If the shared_ptr is empty, then either the cast failed    // (which could be the result of the packet having no    // application data).    if(readerData.get() != 0) {       switch(readerData->getType()) {       case RfidReaderAppData::Types_Read:          if(m_replyToReads) {             sendIdPacket(readerData->getReaderId());          }          wasSuccessful = true;          break;       case RfidReaderAppData::Types_Reset:          m_replyToReads = true;          wasSuccessful = true;          break;       default:          wasSuccessful = false;       }    }    return wasSuccessful; } void RfidTagApp::sendIdPacket(const NodeId& destination) {    PacketPtr packetToSend = Packet::create();    packetToSend->setDestination(destination);    RfidTagAppDataPtr appData = RfidTagAppData::create();    appData->setTagId(getNodeId());    packetToSend->addData(Packet::DataTypes_Application, *appData);    //sendToLayer(CommunicationLayer::Directions_Lower, packetToSend);    sendToQueue(packetToSend); } // RfidTagAppData functions RfidTagAppData::RfidTagAppData()    : m_type(RfidTagAppData::Types_NoType) {    fill(m_nodeId, &m_nodeId[m_nodeIdBytes], 0); } RfidTagAppData::RfidTagAppData(const RfidTagAppData& rhs)    : PacketData(rhs), m_type(rhs.m_type) {    copy(rhs.m_nodeId, &rhs.m_nodeId[m_nodeIdBytes], m_nodeId); } PacketDataPtr RfidTagAppData::clone() const {     PacketDataPtr p(new RfidTagAppData(*this));     return p; } void RfidTagAppData::setTagId(const NodeId& nodeId) {    nodeId.writeToByteArray(m_nodeId, m_nodeIdBytes); } NodeId RfidTagAppData::getTagId() const {    NodeId nodeId(m_nodeId, m_nodeIdBytes);    return nodeId; }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -