当前位置: 首页 > news >正文

阿里云备案网站名称建站公司分析

阿里云备案网站名称,建站公司分析,网站优化推广排名,dedecms网站搬家后登陆后台跳转后一片空白是怎么回事rust及其高效和安全著称,而且支持跨平台,所以就想使用这个rust开发一个桌面端程序,来读取nfc设备的nfc卡片的id信息,下面就做一个最简单的入门教程吧,也是我写的第三个rust应用。 当你电脑上安装好了rust环境之后&…

rust及其高效和安全著称,而且支持跨平台,所以就想使用这个rust开发一个桌面端程序,来读取nfc设备的nfc卡片的id信息,下面就做一个最简单的入门教程吧,也是我写的第三个rust应用。

当你电脑上安装好了rust环境之后,先创建一个简单的项目,然后安装依赖,然后写一个简单的代码,然后执行即可。

创建项目

使用rust的包管理创建一个项目:cargo new hello-word

创建之后的目录结构如下

.git:这是一个隐藏文件夹,用于git软件实现版本管理,学习rust期间一般用不着,不用管
src:这是存放代码的地方,以后我们写的rust代码就放在这个文件夹里面
.gitignore:这同样是git使用的,用于忽略哪些类型文件,不进行版本管理,一般同样不用管
注意:git并不是rust的一部分,而是一个所有语言通用的版本控制工具,比如知名的github,便是用的git进行版本管理

Cargo.toml :这个文件就很重要了,cargo作为rust的包管理程序,就是通过这个文件知道你这个项目中需要哪些依赖库的。

使用vs code 打开这个项目,然后看一下内容:

对于你想要用到的库,直接写在[dependencies]项的下面即可,后面我会再对其进行详细介绍

然后来到src这个存放rust代码的目录里面:

安装依赖并写代码

[dependencies]
pcsc = "2.8.1"

然后运行命令:  cargo build

将main.rs代码改为下面的代码:

use pcsc::*;fn main() -> Result<(), Error> {// 创建一个新的上下文let ctx = Context::establish(Scope::User)?;// 列出可用的读卡器let mut readers_buf = [0; 2048];let mut readers = ctx.list_readers(&mut readers_buf)?;// 打开第一个读卡器let reader = readers.next().ok_or(Error::NoReadersAvailable)?;println!("Card reader:");let card = ctx.connect(reader, ShareMode::Shared, Protocols::ANY)?;// 发送 APDU 命令,获取卡片 UIDlet apdu_command = [0xFF, 0xCA, 0x00, 0x00, 0x00];let mut apdu_response = [0; 256];let response_len = card.transmit(&apdu_command.to_vec(), &mut apdu_response)?;// 提取卡片 UID// let card_uid = &apdu_response[..response_len - 2];// 输出卡片 UIDprintln!("Card UID: {:02X?}", response_len);Ok(())
}

此时,将ACR122U连上电脑,并放上nfc卡:

运行并编译

然后运行命令:cargo run

就可以看到UID已经打印出来了

然后运行编译命令:cargo build --release

就会编译为可执行文件:

然后运行这个exe也可以读取到卡片信息:

进阶:循环监听

使用循环和异常捕获,实现实时监听功能,代码如下:

use pcsc::*;fn main() {println!("Starting...");loop {// thread::sleep(Duration::from_secs(1));// println!("Done!");match divide() {Ok(_) => (),Err(_) => (),}}
}fn divide() -> Result<(), Error> {// 创建一个新的上下文let ctx = Context::establish(Scope::User)?;// 列出可用的读卡器let mut readers_buf = [0; 2048];let mut readers = ctx.list_readers(&mut readers_buf)?;// 打开第一个读卡器let reader = readers.next().ok_or(Error::NoReadersAvailable)?;// println!("Card reader:");let card = ctx.connect(reader, ShareMode::Shared, Protocols::ANY)?;// 发送 APDU 命令,获取卡片 UIDlet apdu_command = [0xFF, 0xCA, 0x00, 0x00, 0x00];let mut apdu_response = [0; 256];let response_len = card.transmit(&apdu_command.to_vec(), &mut apdu_response)?;// 提取卡片 UID// let card_uid = &apdu_response[..response_len - 2];// 输出卡片 UIDprintln!("Card UID: {:02X?}", response_len);Ok(())
}

 

http://www.yayakq.cn/news/570657/

相关文章:

  • 网站升级维护要多久苏州公司网页制作
  • 好用的网站wordpress 目录样式
  • 网站空间提供商专业做pc 手机网站
  • 有没有做门店设计的网站深圳有哪些网站是做餐饮沙龙的
  • 阿克苏网站设计成品app直播源码下载
  • 外面网站怎么做的做自媒体的网站有哪些
  • 学校网站建设培训心得体会.net网站程序
  • 购物网站建设的意义与目的湘西州住房和城乡建设局网站
  • 国外的网站需要备案吗襄阳网站建设制作费用
  • 上海微网站建设做炫舞情侣头像动态图网站
  • 为什么做的网站预览出来什么都没有网页游戏开服表时间
  • 奥林匹克做校服的网站网站站长在哪登陆后台
  • 如何上传自己的视频做网站wordpress响应式博客主题
  • 做车贷的网站百度推广价格表
  • 平台搭建不太原seo软件
  • 建设校园网站的背景及意义企业登记信息查询
  • 做经营性的网站备案条件管理系统网站模板下载
  • 温州产品推广网站ps怎么制作网页页面
  • wordpress不小心改了网站地址新装本地wordpress超慢
  • 好的品牌设计网站微博官网入口
  • 找个免费网站这么难吗wordpress首页左图右文
  • 企业模式网站列表管理器网络营销seo招聘
  • 学了dw 就可以做网站了吗论坛网站推广
  • 买汽车最好的网站建设网站开发人员是什么
  • 广州建站服务写作网站起点
  • 免费网站建设合同范本网站上线推广
  • 网站开发实现电脑版和手机版的切换顺义区做网站的公司
  • 做商城网站的公司网站建设鼎网络
  • 个体工商户可以申请网站建设吗制作免费企业宣传视频
  • 中电云主机怎样登入创建的网站简单html网页代码完整示范