- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试将功能SetKeys添加到我的MFRC522库。
我无法理解MIFARE_Read
函数不起作用...
我的标签是Mifare Classic 1k
bool MFRC522::MIFARE_SetKeys(byte *oldKeyA, byte *oldKeyB, byte *newKeyA, byte *newKeyB, byte sector){
byte block_bufferRead[18];
byte block_bufferWrite[16];
byte sizeRead = sizeof(block_bufferRead);
byte sizeWrite = sizeof(block_bufferWrite);
byte block = (sector * 4) + 3;
MFRC522::StatusCode status;
MFRC522::MIFARE_Key key;
for(int i=0; i<6; i++) key.keyByte[i] = oldKeyA[i];
if(!MFRC522::PCD_Authenticate(PICC_CMD_MF_AUTH_KEY_A, block, &key, &uid)){
Serial.println("PCD_Authenticate() failed - Block " + String(block));
return false;
}
else{
status = MIFARE_Read(block, block_bufferRead, &sizeRead);
if(status != MFRC522::STATUS_OK){
Serial.println("MIFARE_Read() failed. Block " + String(block));
Serial.println(GetStatusCodeName(status));
return false;
}
else{
for(int i=0; i<6; i++) key.keyByte[i] = oldKeyB[i];
if(!MFRC522::PCD_Authenticate(PICC_CMD_MF_AUTH_KEY_B, block, &key, &uid)){
Serial.println("PCD_Authenticate() failed - Block " + String(block));
return false;
}
else{
for(byte i=0; i<16; i++) block_bufferWrite[i] = block_bufferRead[i];
for(byte i=0; i<6; i++){
block_bufferWrite[i] = newKeyA[i];
block_bufferWrite[i+10] = newKeyB[i];
}
for(int i=0; i<6; i++) key.keyByte[i] = oldKeyB[i];
status = MIFARE_Write(block, block_bufferWrite, &sizeWrite);
if(status != MFRC522::STATUS_OK){
Serial.println("MIFARE_Write() failed.");
Serial.println(GetStatusCodeName(status));
return false;
}
else return true;
}
}
}
}
最佳答案
好像您缺少该库的include标记。你需要类似的东西#include "MFRC522.h"
。
关于c++ - 向MFRC522库添加功能SetKeys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55477360/
拿 DT <- CJ(1:2, 2:3) key.the.DT <- function(data.table, primary.key) setkey(d
我想将列名传递给 setkey() 除了一两个。我可以像下面这样轻松地做到这一点: setkey(df, column1, column2, column3, column6, ..., column
我想将列名传递给 setkey() 除了一两个。我可以像下面这样轻松地做到这一点: setkey(df, column1, column2, column3, column6, ..., column
setkey data.table 的记录顺序颠倒的最佳方法是什么?到目前为止,我使用了 setkey() 和 setorder() 的组合: setkeyrev <- function(inputD
'sorted' 属性是官方 data.table API 的一部分吗? 我经常做一些事情,比如从日期变量派生出周/月/季度/年变量,这当然是一个单调变换。然后我通过使用这些单调派生变量之一来做事情。
这个(非常基本的)问题是交换的结果here . setkey() 的文档状态: setkey() sorts a data.table and marks it as sorted. The sort
使用 data.table 时包,我有点不确定何时需要 setkey() .例如,当使用 :=带有 by 的运算符选项,即使我没有设置 key ,事情似乎仍然非常快。有人可以解释一下setkey()是
如果我有一个需要反引号的列名,因为它包含逗号,setkey 会抛出一个错误,指出不要使用逗号。该错误将我引向 ?setkey 但我在示例中没有看到任何提到这一点的内容。我能找到的唯一解决方法是重命名该
我想将 data.table setkey 与预定义列表 id 和 categories 一起使用,但收到一条错误消息: > setkey(tr_id_cat_dt, id, categories)
假设我有一个数据表 DT,我用 set 键更改了顺序 setkey(DT,mykey) 然后,也许我会从另一张 table 上加入一些东西。 DT=DT2[DT] 有没有办法恢复我原来的行排序?我知道
我有两个数据表。我想用一个中的键来计算另一个中的出现次数。 DT1 <- data.table(A = c("v1","v2","v1","v2","v3","v4","v5","v6","v1","
我有一个关于索引 data.table 对象的问题。 setkey(data, A, B) data[, C:=length(unique(B, na.rm=T)), by=A] 我想知道我是否应该将
我们的应用程序中使用了 setKey(char) 方法(使用 GWT 2.3.0),以便在按键时将文本框中的用户输入更改为大写字符。自 GWT 1.6 起,setKey 已被弃用,因为它仅在 IE 中
我试图找到通过几个数字列对大型数据集进行子集化的最快方法。正如 data.table 所 promise 的那样,进行二分查找所花费的时间比向量扫描要快得多。但是,二分查找需要预先执行 setkey。
本文整理了Java中pl.edu.icm.model.bwmeta.y.YAttribute.setKey()方法的一些代码示例,展示了YAttribute.setKey()的具体用法。这些代码示例主
这似乎是一个在 1.8.10 之后引入的与包含列表的带有 DT 的 setkey 相关的错误。 运行以下两个代码以查看问题: library(data.table) dtl <- list() dtl
我正在使用一个相对较大的 data.table数据集并尝试分析/优化代码。我正在使用 Rprof ,但我注意到在 setkey 操作中花费的大部分时间未包含在 Rprof 摘要中。有没有办法包括这个花
data.table 在更新(=rbind)新行时比 xts 慢近 6 倍的原因是什么? library(quantmod); library(xts); library(data.table) XT
我是一名优秀的程序员,十分优秀!