• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C++ HAL函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中HAL函数的典型用法代码示例。如果您正苦于以下问题:C++ HAL函数的具体用法?C++ HAL怎么用?C++ HAL使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了HAL函数的17个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: DMSG

int16_t PN532::tgGetData(uint8_t *buf, uint16_t len)
{
    pn532_packetbuffer[0] = PN532_COMMAND_TGGETDATA;
    
    if (HAL(writeCommand)(pn532_packetbuffer, 1)) {
        DMSG("TgGetData: no ACK\n");
        return -1;
    }
    
    int16_t status = HAL(readResponse)(pn532_packetbuffer, sizeof(pn532_packetbuffer), 3000);
    if (0 > status) {
        DMSG("TgGetData: failed to read response, error code - ");
        DMSG(status);
        DMSG('\n');
        return status;
    }
    
    uint16_t length = status;
    if (length > len) {
        return -4;
    }
    
    if (pn532_packetbuffer[0] != 0) {
        DMSG("status is not ok\n");
        return -5;
    }
    
    memcpy(buf, pn532_packetbuffer + 1, length - 1);

    
    return length - 1;
}
开发者ID:don,项目名称:PN532,代码行数:32,代码来源:PN532.cpp


示例2: HAL

/**
 * Peer to Peer
 */
int8_t PN532::tgInitAsTarget()
{
    static const uint8_t command[] = {
            PN532_COMMAND_TGINITASTARGET,
            0,
            0x00, 0x00,         //SENS_RES
            0x00, 0x00, 0x00,   //NFCID1
            0x40,               //SEL_RES

            0x01, 0xFE, 0x0F, 0xBB, 0xBA, 0xA6, 0xC9, 0x89, // POL_RES
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0xFF, 0xFF,

            0x01, 0xFE, 0x0F, 0xBB, 0xBA, 0xA6, 0xC9, 0x89, 0x00, 0x00, //NFCID3t: Change this to desired value

            0x06, 0x46,  0x66, 0x6D, 0x01, 0x01, 0x10, 0x00// LLCP magic number and version parameter
            };
    
    int8_t status = HAL(writeCommand)(command, sizeof(command));
    if (status < 0) {
        return status;
    }
    
    return HAL(readResponse)(pn532_packetbuffer, sizeof(pn532_packetbuffer), 0);
}
开发者ID:don,项目名称:PN532,代码行数:28,代码来源:PN532.cpp


示例3: memcpy

uint8_t PN532::mifareclassic_AuthenticateBlock (uint8_t *uid, uint8_t uidLen, uint32_t blockNumber, uint8_t keyNumber, uint8_t *keyData)
{
    uint8_t i;

    // Hang on to the key and uid data
    memcpy (_key, keyData, 6);
    memcpy (_uid, uid, uidLen);
    _uidLen = uidLen;

    // Prepare the authentication command //
    pn532_packetbuffer[0] = PN532_COMMAND_INDATAEXCHANGE;   /* Data Exchange Header */
    pn532_packetbuffer[1] = 1;                              /* Max card numbers */
    pn532_packetbuffer[2] = (keyNumber) ? MIFARE_CMD_AUTH_B : MIFARE_CMD_AUTH_A;
    pn532_packetbuffer[3] = blockNumber;                    /* Block Number (1K = 0..63, 4K = 0..255 */
    memcpy (pn532_packetbuffer + 4, _key, 6);
    for (i = 0; i < _uidLen; i++) {
        pn532_packetbuffer[10 + i] = _uid[i];              /* 4 bytes card ID */
    }

    if (HAL(writeCommand)(pn532_packetbuffer, 10 + _uidLen))
        return 0;

    // Read the response packet
    HAL(readResponse)(pn532_packetbuffer, sizeof(pn532_packetbuffer));

    // Check if the response is valid and we are authenticated???
    // for an auth success it should be bytes 5-7: 0xD5 0x41 0x00
    // Mifare auth error is technically byte 7: 0x14 but anything other and 0x00 is not good
    if (pn532_packetbuffer[0] != 0x00) {
        DMSG("Authentification failed\n");
        return 0;
    }

    return 1;
}
开发者ID:BerndBaumann,项目名称:Arduino,代码行数:35,代码来源:PN532.cpp


示例4: HAL

uint8_t PN532::readGPIO(void)
{
    pn532_packetbuffer[0] = PN532_COMMAND_READGPIO;

    // Send the READGPIO command (0x0C)
    if (HAL(writeCommand)(pn532_packetbuffer, 1))
        return 0x0;

    HAL(readResponse)(pn532_packetbuffer, sizeof(pn532_packetbuffer));

    /* READGPIO response without prefix and suffix should be in the following format:

      byte            Description
      -------------   ------------------------------------------
      b0              P3 GPIO Pins
      b1              P7 GPIO Pins (not used ... taken by I2C)
      b2              Interface Mode Pins (not used ... bus select pins)
    */


    DMSG("P3 GPIO: "); DMSG_HEX(pn532_packetbuffer[7]);
    DMSG("P7 GPIO: "); DMSG_HEX(pn532_packetbuffer[8]);
    DMSG("I0I1 GPIO: "); DMSG_HEX(pn532_packetbuffer[9]);
    DMSG("\n");

    return pn532_packetbuffer[0];
}
开发者ID:BerndBaumann,项目名称:Arduino,代码行数:27,代码来源:PN532.cpp


示例5: DMSG

uint8_t PN532::mifareclassic_ReadDataBlock (uint8_t blockNumber, uint8_t *data)
{
    DMSG("Trying to read 16 bytes from block ");
    DMSG_INT(blockNumber);

    /* Prepare the command */
    pn532_packetbuffer[0] = PN532_COMMAND_INDATAEXCHANGE;
    pn532_packetbuffer[1] = 1;                      /* Card number */
    pn532_packetbuffer[2] = MIFARE_CMD_READ;        /* Mifare Read command = 0x30 */
    pn532_packetbuffer[3] = blockNumber;            /* Block Number (0..63 for 1K, 0..255 for 4K) */

    /* Send the command */
    if (HAL(writeCommand)(pn532_packetbuffer, 4)) {
        return 0;
    }

    /* Read the response packet */
    HAL(readResponse)(pn532_packetbuffer, sizeof(pn532_packetbuffer));

    /* If byte 8 isn't 0x00 we probably have an error */
    if (pn532_packetbuffer[0] != 0x00) {
        return 0;
    }

    /* Copy the 16 data bytes to the output buffer        */
    /* Block content starts at byte 9 of a valid response */
    memcpy (data, pn532_packetbuffer + 1, 16);

    return 1;
}
开发者ID:BerndBaumann,项目名称:Arduino,代码行数:30,代码来源:PN532.cpp


示例6: DMSG_STR

bool KeyDuino::inListPassiveTarget(uint8_t cardbaudrate, uint16_t timeout)
{
    pn532_packetbuffer[0] = PN532_COMMAND_INLISTPASSIVETARGET;
    pn532_packetbuffer[1] = 1;
    pn532_packetbuffer[2] = cardbaudrate;

    DMSG_STR("\ninList passive target");

    if(cardbaudrate == PN532_ISO14443B){
        pn532_packetbuffer[3] = 0x00;
        if (HAL(writeCommand)(pn532_packetbuffer, 4))
            return false;
    } else {
        if (HAL(writeCommand)(pn532_packetbuffer, 3))
            return false;
    }

    int16_t status = HAL(readResponse)(pn532_packetbuffer, sizeof(pn532_packetbuffer), timeout);
    if (status < 0) {
        return false;
    }

    if (pn532_packetbuffer[0] != 1) {
        return false;
    }

    inListedTag = pn532_packetbuffer[1];

    return true;
}
开发者ID:CITCEuraRFID,项目名称:KeyDuino,代码行数:30,代码来源:KeyDuino.cpp


示例7:

bool PN532::tgSetData(const uint8_t *header, uint8_t hlen, const uint8_t *body, uint8_t blen)
{
    if (hlen > (sizeof(pn532_packetbuffer) - 1)) {
        return false;
    }

    for (int8_t i = hlen - 1; i >= 0; i--){
        pn532_packetbuffer[i + 1] = header[i];
    }
    pn532_packetbuffer[0] = PN532_COMMAND_TGSETDATA;

    if (HAL(writeCommand)(pn532_packetbuffer, hlen + 1, body, blen)) {
        return false;
    }

    if (0 > HAL(readResponse)(pn532_packetbuffer, sizeof(pn532_packetbuffer), 3000)) {
        return false;
    }

    if (0 != pn532_packetbuffer[0]) {
        return false;
    }

    return true;
}
开发者ID:BerndBaumann,项目名称:Arduino,代码行数:25,代码来源:PN532.cpp


示例8: DMSG

bool KeyDuino::tgSetData(const uint8_t *header, uint8_t hlen, const uint8_t *body, uint8_t blen)
{
    if (hlen > (sizeof(pn532_packetbuffer) - 1)) {
        if ((body != 0) || (header == pn532_packetbuffer)) {
            DMSG("tgSetData:buffer too small\n");
            return false;
        }

        pn532_packetbuffer[0] = PN532_COMMAND_TGSETDATA;
        if (HAL(writeCommand)(pn532_packetbuffer, 1, header, hlen)) {
            return false;
        }
    } else {
        for (int8_t i = hlen - 1; i >= 0; i--){
            pn532_packetbuffer[i + 1] = header[i];
        }
        pn532_packetbuffer[0] = PN532_COMMAND_TGSETDATA;

        if (HAL(writeCommand)(pn532_packetbuffer, hlen + 1, body, blen)) {
            return false;
        }
    }

    if (0 > HAL(readResponse)(pn532_packetbuffer, sizeof(pn532_packetbuffer), 3000)) {
        return false;
    }

    if (0 != pn532_packetbuffer[0]) {
        return false;
    }

    return true;
}
开发者ID:CITCEuraRFID,项目名称:KeyDuino,代码行数:33,代码来源:KeyDuino.cpp


示例9: HAL

    TdmManager::~TdmManager()
    {
        HAL().UnregisterEventsHandler(this);
        HAL().StopDevices();  // here - ?

        m_conference.reset();
        
        m_streams.Clear();
    }
开发者ID:ixc-software,项目名称:lucksi,代码行数:9,代码来源:TdmManager.cpp


示例10: once

boolean PN532::readPassiveTargetID(uint8_t cardbaudrate, uint8_t * uid, uint8_t * uidLength) {
  pn532_packetbuffer[0] = PN532_COMMAND_INLISTPASSIVETARGET;
  pn532_packetbuffer[1] = 1;  // max 1 cards at once (we can set this to 2 later)
  pn532_packetbuffer[2] = cardbaudrate;
  
  if (HAL(writeCommand)(pn532_packetbuffer, 3))
  {
	DMSG("No card(s) read");
    return 0x0;  // no cards read
  }
  
  // Wait for a card to enter the field
  uint8_t status = PN532_I2C_BUSY;
 
  // read data packet
  HAL(readResponse)(pn532_packetbuffer, sizeof(pn532_packetbuffer));
  
  // check some basic stuff
  /* ISO14443A card response should be in the following format:
  
    byte            Description
    -------------   ------------------------------------------
    b0..6           Frame header and preamble
    b7              Tags Found
    b8              Tag Number (only one used in this example)
    b9..10          SENS_RES
    b11             SEL_RES
    b12             NFCID Length
    b13..NFCIDLen   NFCID                                      */
  
  DMSG("Found "); DMSG(pn532_packetbuffer[0]); DMSG(" tags\n");

  if (pn532_packetbuffer[0] != 1) 
    return 0;
    
  uint16_t sens_res = pn532_packetbuffer[2];
  sens_res <<= 8;
  sens_res |= pn532_packetbuffer[3];

  DMSG("ATQA: 0x");  DMSG_HEX(sens_res); 
  DMSG("SAK: 0x");  DMSG_HEX(pn532_packetbuffer[4]); 
  
  /* Card appears to be Mifare Classic */
  *uidLength = pn532_packetbuffer[5];

  DMSG("UID:"); 
  for (uint8_t i=0; i < pn532_packetbuffer[5]; i++) 
  {
    uid[i] = pn532_packetbuffer[6+i];
    DMSG(uid[i]); 
  }
  DMSG('\n');

  return 1;
}
开发者ID:don,项目名称:PN532,代码行数:55,代码来源:PN532.cpp


示例11: return

boolean PN532::SAMConfig(void) {
  pn532_packetbuffer[0] = PN532_COMMAND_SAMCONFIGURATION;
  pn532_packetbuffer[1] = 0x01; // normal mode;
  pn532_packetbuffer[2] = 0x14; // timeout 50ms * 20 = 1 second
  pn532_packetbuffer[3] = 0x01; // use IRQ pin!
  
  if (HAL(writeCommand)(pn532_packetbuffer, 4))
     return false;

  return (0 < HAL(readResponse)(pn532_packetbuffer, sizeof(pn532_packetbuffer)));
}
开发者ID:don,项目名称:PN532,代码行数:11,代码来源:PN532.cpp


示例12: once

bool KeyDuino::readPassiveTargetID(uint8_t cardbaudrate, uint8_t *uid, uint8_t *uidLength, uint16_t timeout)
{
    pn532_packetbuffer[0] = PN532_COMMAND_INLISTPASSIVETARGET;
    pn532_packetbuffer[1] = 1;  // max 1 cards at once (we can set this to 2 later)
    pn532_packetbuffer[2] = cardbaudrate;

    if (HAL(writeCommand)(pn532_packetbuffer, 3)) {
        DMSG_STR("\nFailed writing");
        return 0x0;  // command failed
    }

    // read data packet
    if (HAL(readResponse)(pn532_packetbuffer, sizeof(pn532_packetbuffer), timeout) < 0) {
        DMSG_STR("\nFailed reading response");
        return 0x0;
    }

    // check some basic stuff
    /* ISO14443A card response should be in the following format:

      byte            Description
      -------------   ------------------------------------------
      b0              Tags Found
      b1              Tag Number (only one used in this example)
      b2..3           SENS_RES
      b4              SEL_RES
      b5              NFCID Length
      b6..NFCIDLen    NFCID
    */

    if (pn532_packetbuffer[0] != 1)
        return 0;

    inListedTag = pn532_packetbuffer[1];

    uint16_t sens_res = pn532_packetbuffer[2];
    sens_res <<= 8;
    sens_res |= pn532_packetbuffer[3];

    DMSG("\nATQA: 0x");  DMSG_HEX(sens_res);
    DMSG("\nSAK: 0x");  DMSG_HEX(pn532_packetbuffer[4]);
    DMSG("\n");

    /* Card appears to be Mifare Classic */
    *uidLength = pn532_packetbuffer[5];
    this->_uidLen = pn532_packetbuffer[5];

    for (uint8_t i = 0; i < pn532_packetbuffer[5]; i++) {
        uid[i] = pn532_packetbuffer[6 + i];
	    this->_uid[i] = pn532_packetbuffer[6 + i];
    }
    return 1;
}
开发者ID:CITCEuraRFID,项目名称:KeyDuino,代码行数:53,代码来源:KeyDuino.cpp


示例13: MxRtyATR

bool PN532::setPassiveActivationRetries(uint8_t maxRetries)
{
    pn532_packetbuffer[0] = PN532_COMMAND_RFCONFIGURATION;
    pn532_packetbuffer[1] = 5;    // Config item 5 (MaxRetries)
    pn532_packetbuffer[2] = 0xFF; // MxRtyATR (default = 0xFF)
    pn532_packetbuffer[3] = 0x01; // MxRtyPSL (default = 0x01)
    pn532_packetbuffer[4] = maxRetries;

    if (HAL(writeCommand)(pn532_packetbuffer, 5))
        return 0x0;  // no ACK

    return (0 < HAL(readResponse)(pn532_packetbuffer, sizeof(pn532_packetbuffer)));
}
开发者ID:BerndBaumann,项目名称:Arduino,代码行数:13,代码来源:PN532.cpp


示例14: MsgObject

    TdmManager::TdmManager( const TdmManagerProfile &profile ) : 
		MsgObject(profile.Thread),
        m_profileVerify(profile),
        m_prof(profile),
        m_log(profile.LogCreator->CreateSession("TdmMng", true)),
		m_tagUserCmd(m_log->RegisterRecordKindStr("UserCmd")),
		m_tagError(m_log->RegisterRecordKindStr("Error")),
        m_buffCreator(profile.BidirBuffSize, profile.BidirBuffCount, profile.BidirBuffOffset),
        m_rtpInfra(profile.Thread, profile.RtpInfraPar, m_buffCreator),
        m_localIp(profile.LocalIp),
        m_eventQueue(iCmp::BfTdmEvent::SrcQueueTdm())
    {
        HAL().RegisterEventsHandler(this);

        // conference
        m_conference.reset( 
            new SndMix::ConferenceMng(*m_log, 
                          m_eventQueue, m_generalRtpParams, m_rtpInfra, *this) 
            );

        // log
		if(m_log->LogActive())
		{
			*m_log << m_tagUserCmd << "TdmManager created. " << profile.getAsString() << EndRecord;
		}
    }
开发者ID:ixc-software,项目名称:lucksi,代码行数:26,代码来源:TdmManager.cpp


示例15: Number

uint8_t KeyDuino::mifareultralight_WritePage (uint8_t page, uint8_t *buffer)
{
    /* Prepare the first command */
    pn532_packetbuffer[0] = PN532_COMMAND_INDATAEXCHANGE;
    pn532_packetbuffer[1] = 1;                           /* Card number */
    pn532_packetbuffer[2] = MIFARE_CMD_WRITE_ULTRALIGHT; /* Mifare UL Write cmd = 0xA2 */
    pn532_packetbuffer[3] = page;                        /* page Number (0..63) */
    memcpy (pn532_packetbuffer + 4, buffer, 4);          /* Data Payload */

    /* Send the command */
    if (HAL(writeCommand)(pn532_packetbuffer, 8)) {
        return 0;
    }

    /* Read the response packet */
    return (0 < HAL(readResponse)(pn532_packetbuffer, sizeof(pn532_packetbuffer)));
}
开发者ID:CITCEuraRFID,项目名称:KeyDuino,代码行数:17,代码来源:KeyDuino.cpp


示例16: Number

uint8_t PN532::mifareclassic_WriteDataBlock (uint8_t blockNumber, uint8_t *data)
{
    /* Prepare the first command */
    pn532_packetbuffer[0] = PN532_COMMAND_INDATAEXCHANGE;
    pn532_packetbuffer[1] = 1;                      /* Card number */
    pn532_packetbuffer[2] = MIFARE_CMD_WRITE;       /* Mifare Write command = 0xA0 */
    pn532_packetbuffer[3] = blockNumber;            /* Block Number (0..63 for 1K, 0..255 for 4K) */
    memcpy (pn532_packetbuffer + 4, data, 16);        /* Data Payload */

    /* Send the command */
    if (HAL(writeCommand)(pn532_packetbuffer, 20)) {
        return 0;
    }

    /* Read the response packet */
    return (0 < HAL(readResponse)(pn532_packetbuffer, sizeof(pn532_packetbuffer)));
}
开发者ID:BerndBaumann,项目名称:Arduino,代码行数:17,代码来源:PN532.cpp


示例17: Pins

bool PN532::writeGPIO(uint8_t pinstate)
{
    // Make sure pinstate does not try to toggle P32 or P34
    pinstate |= (1 << PN532_GPIO_P32) | (1 << PN532_GPIO_P34);

    // Fill command buffer
    pn532_packetbuffer[0] = PN532_COMMAND_WRITEGPIO;
    pn532_packetbuffer[1] = PN532_GPIO_VALIDATIONBIT | pinstate;  // P3 Pins
    pn532_packetbuffer[2] = 0x00;    // P7 GPIO Pins (not used ... taken by I2C)

    DMSG("Writing P3 GPIO: ");
    DMSG_HEX(pn532_packetbuffer[1]);
    DMSG("\n");

    // Send the WRITEGPIO command (0x0E)
    if (HAL(writeCommand)(pn532_packetbuffer, 3))
        return 0;

    return (0 < HAL(readResponse)(pn532_packetbuffer, sizeof(pn532_packetbuffer)));
}
开发者ID:BerndBaumann,项目名称:Arduino,代码行数:20,代码来源:PN532.cpp



注:本文中的HAL函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ HALASSERT函数代码示例发布时间:2022-05-30
下一篇:
C++ HAGGLE_ERR函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap