- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 LineaPro 5 peripheral 开发 Xamarin.iOS 应用程序,能够扫描条形码、RFID卡和刷磁卡。我有基本的 RFID 功能,我关心的来自 Linea 的数据是卡的 UID(一个字节数组)。
在我们与网络服务器交互的应用程序中,我们用来识别这些卡的格式是十进制的,因此我有这段代码将 UID 字节数组转换为我们需要的十进制字符串:
// Handler attached to the RFID Scan event invoked by the LineaPro
void HandleRFIDScanned (DTDeviceDelegate Dispatcher, RFIDScannedEventArgs Arguments)
{
if ( Arguments == null || Arguments.Data == null || Arguments.Data.UID == null )
InvalidRFIDScanned ();
else
{
byte[] SerialArray = new byte[Arguments.Data.UID.Length];
System.Runtime.InteropServices.Marshal.Copy(Arguments.Data.UID.Bytes, SerialArray, 0, SerialArray.Length);
string Hex = Util.ByteArrayToHexString (SerialArray);
if ( string.IsNullOrWhiteSpace (Hex) )
InvalidRFIDScanned ();
else
{
string DecimalSerial = ulong.Parse (Hex, System.Globalization.NumberStyles.HexNumber).ToString ();
ValidRFIDScanned (DecimalSerial);
}
}
//Disconnecting card so another can be scanned
NSError RFDisconnectError;
LineaPRO.Shared.Device.RfRemoveCard (Arguments.CardIndex, out RFDisconnectError);
}
//Byte array to hexadecimal string conversion
public static string ByteArrayToHexString (byte[] Bytes)
{
StringBuilder hex = new StringBuilder();
foreach (byte b in Bytes)
hex.AppendFormat("{0:x2}", b);
return hex.ToString();
}
但是,我发现我们发放的一些 RFID 卡存在一个非常令人担忧的问题。我们有各种不同风格和 ISO 标准的卡片,移动应用程序需要扫描这些卡片。其中之一(我相信 Mifare Classic 标准,虽然我目前无法确认)始终是来自该特定 RFID 卡提供商的十位数字,尽管其中一些以数字 0 开头,如下图所示:
这导致我的字节数组转换出现巨大问题,因为十六进制字符串被解析为无符号长类型,并且前导零被删除。我们在单独的应用程序中使用另一组 USB RFID 读取器,以便将这些 RFID 卡 ID 存储到数据库中,尽管这些 USB 读取器能够以某种方式获取前导零。
因此,在使用移动应用程序时会发生冲突,其中 UID 的前导零被删除,因为传递给 API 的数据会根据数据库进行检查,然后由于缺少零而被视为不匹配。
我在我的事件处理程序中查看了 LineaPro 接收到的所有数据,字节数组是唯一保存卡的 UID 的东西,所以只要我们使用 UID 的十进制表示,就有移动应用程序无法确定是否应该有一个零,除非:
也许某些 RFID 标准对 UID 的十进制表示中的位数有特定限制?例如,如果这种类型的卡片总是有偶数或特定数量的小数位,我可以在必要时用额外的零填充字符串。
LineaPro 根本没有提供足够的数据,在这种情况下我可能完蛋了。
最佳答案
您没有足够的信息来解决您的问题。如果 ID 号应始终为 10 位数字,则可以根据需要使用格式字符串添加前导零。
我会说总是尝试用前导零将 UID 填充到 10 位数字,然后通过它运行大量测试值。
如您所说,如果您的设备从 ID 开头丢弃有效数据,那么您就完蛋了。
关于c# - RFID - 领先的零问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19470045/
示例 df: library(tidyverse) iris % mutate_at("testlag", ~ lag(.) + Petal.Length) 但这删除了第一个值,并且只为第二行提供了有
用简单的语言(希望有一个简单的例子)来说,Github 存储库分支上的领先/落后指标意味着什么? 该分支的影响及其受到的关注是什么?对于分支机构来说,“落后”是一个坏兆头吗? 最佳答案 Ahead 是
有时,我正在使用的某个软件的原始 GitHub 存储库,例如 linkchecker , 很少或根本没有发展,同时已经创建了很多 fork (在这种情况下:142,在撰写本文时)。 对于每个 fork
我在尝试延迟按团队分组的日期时遇到问题。 数据: df % group_by(Date) %>% mutate(Date_lagged = lag(Date)) 知道如何修复它吗? 最佳答案 la
当 git status 报告“你的分支比‘origin/foobranch’提前了 N 次提交。”我想确切地知道哪个提交。如给我一份 list 。它们不在日志的顶部,我不想手动比较日志。是否有 gi
我在使用 git pull 时遇到问题。我已经在本地仓库中提交了我的更改。当我执行 git status 时,我确实收到一条消息,说“你的分支在 1 次提交之前领先于‘origin/cherryPic
我确实看到其他类似的问题,但我真的不明白为什么会这样。现在,我正在使用 git reset --hard HEAD 然后手动添加我的更改。建议的解决方案似乎是 git pull origin mast
这个问题在这里已经有了答案: Viewing unpushed Git commits (27 个答案) 关闭 8 年前。 我正在使用以下命令检查 X 提交: git log --author= -
我是一名优秀的程序员,十分优秀!