有没有可靠的方法来确定RFID卡是Mifare Ultralight还是Mifare Ultralight C?
到目前为止,我发现的唯一方法是利用这两张卡的大小差异,发出读取命令超出较小的一个的边界.但它确实看起来像黑客,我认为如果卡使用Ultralight C身份验证机制,读取命令可能会失败.
const char* mifare_ultralight_identification(const nfc_target_info_t nti)
{
byte_t abtCmd[2];
byte_t abtRx[265];
size_t szRxLen;
abtCmd[0] = 0x30; // MIFARE Ultralight READ command
abtCmd[1] = 0x10; // block address (1K=0x00..0x39, 4K=0x00..0xff)
if (!nfc_initiator_transceive_dep_bytes(pnd,abtCmd,2,abtRx,&szRxLen)) {
// READ command of 0x10 failed, we consider that Ultralight does have 0x10 address, so it's a "simple" Ultralight (i.e. not a Ultralight C)
// When a READ failed, the tag returns in HALT state, so we need to reselect tag
nfc_initiator_select_passive_target(pnd, NM_ISO14443A_106, …Run Code Online (Sandbox Code Playgroud) 这个问题可以分解成多个较小的问题.最终结果是能够使用调试器(如gdb)在Galaxy Nexus(Android 4.1)设备的C/C++ NFC实现中设置断点,以检查其内部状态.
更新: 根据设备生根并编译Jellybean总体上有一些小错误.事实上,libnfc makefile中有一些非常好的标志,可以在通信时实现大量输出.
但是仍然存在调试问题.要调试libnfc(external/libnfc-nxp),我必须使用最可能是Nfc Manager(packages/apps/Nfc)的库将自己附加到进程.要调试应用程序,我必须设置debuggable标志.如果我重建Nfc Manager,则签名与设备上已安装的签名不匹配,这意味着adb install -r <file>无法使用.adb uninstall com.android.nfc也不起作用.当我尝试安装新的时,使用简单地删除apk的困难方法/system/app会产生错误INSTALL_FAILED_SHARED_USER_INCOMPATIBLE.此时Nfc根本不再工作,我不得不重新刷新股票图像.
任何其他想法如何调试libnfc库?
为了保护我们的API,我正在尝试使用RateBasedRule部署WAFRegional。API网关位于SAM模板中,其中我还有一个嵌套堆栈,用于存放WAFRegional配置的子模板。下面提供了WAFRegional配置的子模板。在ExecuteChangeSet阶段将发生以下情况:
CamerasIpSet已创建
创建了CamerasRateRule
WAFCamerasWebACL CREATE_FAILED:引用的项目不存在。(服务:AWSWAFRegional;状态代码:400;错误代码:WAFNonexistentItemException
我发现大约2个月前的以下帖子,其中有人在使用Serverless时遇到相同的问题:https : //forum.serverless.com/t/dependon-api-gateway-deployment/7792
我在这里错过了什么?
AWSTemplateFormatVersion: '2010-09-09'
Description: 'Template for WAF Configuration'
Parameters:
CamerasApi:
Description: "Arn of the Cameras Api"
Type: String
Default: cameras-api-dev
StageName:
Description: "Stage name of the Cameras Api"
Type: String
Default: v
Blocking:
Description: "Number of calls per 5 minutes for WAF IP blocking."
Type: Number
Default: 2000
EnvironmentType:
Type: String
Default: "dev"
Description: "Type of environment: dev, staging or prod."
Resources:
WAFCamerasWebACL:
Type: AWS::WAFRegional::WebACL
DependsOn: CamerasRateRule
Properties:
DefaultAction:
Type: ALLOW …Run Code Online (Sandbox Code Playgroud) 我正在使用ORMLite访问Java中的h2数据库.要执行事务,我使用的是静态方法TransactionManager.callInTransaction.
在单个独立交易的情况下,这工作正常.但是,如果事务彼此嵌套,则即使外部事务失败,内部事务也会被提交.
就像在这段伪代码中一样:
OuterDatabaseTransaction
{
Loop
{
InnerDatabaseTransaction
{
//Multiple update or create statements
//One of the InnerDatabaseTransactions throws a random exception
}
//Alternatively the OuterDatabaseTransaction throws a random
//exception but all commited InnerDatabaseTransactions should rollback still
}
}
Run Code Online (Sandbox Code Playgroud)
所以我期望的是,如果任何内部事务失败,外部事务也会失败.如果外部事务失败,则没有任何内部事务被提交.目前似乎每个内部事务都是单独提交的,并且例如不与外部事务共享相同的Savepoint.
更新(谢谢)
查看跟踪显示以下内容
[TRACE] JdbcDatabaseConnection connection is closed returned false
[TRACE] JdbcDatabaseConnection connection autoCommit is true
[TRACE] JdbcDatabaseConnection connection set autoCommit to false
[DEBUG] TransactionManager had to set auto-commit to false
[TRACE] JdbcDatabaseConnection save-point sp14: id=0 …Run Code Online (Sandbox Code Playgroud)