4个版本 (稳定)
1.0.11 | 2020年3月14日 |
---|---|
1.0.5 | 2019年10月27日 |
0.1.0 | 2019年8月17日 |
#3 in #travel
49KB
918 行
scannit-core
这是一个设计用来读取V2 HSL旅行卡的库。它主要基于HSL提供的Java库,以及我V1版本的C#库HSLTravelSharp的演变。
用法
将以下内容添加到您的Cargo.toml中
[dependencies]
scannit-core = "0.1.0"
获取TravelCard
对象需要通过NFC与您的实体旅行卡进行通信。一个例子包含在这个存储库中的scannit-cli
子项目中。
创建TravelCard
对象看起来可能像这样
use scannit_core::travelcard::create_travel_card;
// function declaration here somewhere...
let app_info: &[u8] = get_app_info_from_nfc_card();
let control_info: &[u8] = get_control_info_from_nfc_card();
let period_pass: &[u8] = get_period_pass_from_nfc_card();
let stored_value: &[u8] = get_stored_value_from_nfc_card();
let e_ticket: &[u8] = get_e_ticket_from_nfc_card();
let all_history : &[u8] = get_history_from_nfc_card();
let travel_card = create_travel_card(
app_info,
control_info,
period_pass,
stored_value,
e_ticket,
all_history,
);
此存储库还通过desfire
模块公开了与NFC卡通信的命令。
FFI
此存储库还包括名为scannit-core-ffi
的子项目,其中包含对主存储库中数据模型的FFI友好投影,以及可以用于创建(和释放)TravelCard
对象的FFI友好函数。有关C#使用FFI存储库的示例,请参阅ScannitSharp库。
构建FFI存储库
> cd scannit-core-ffi
> cargo build
或仅
> cargo build --all
构建
>cargo build
就这样!
交叉编译应该没有太多问题,但需要标准工具进行交叉编译到目标三元组。例如,Android需要NDK和ar
和linker
的~/.cargo/config设置。
依赖项
~1.3–2MB
~25K SLoC