npm 包 @codetector/pcsclite 使用教程

简介

@codetector/pcsclite 是一个 Node.js 的 npm 包,它提供了对 PC/SC (Personal Computer / Smart Card) 设备的访问。它使用 PC/SC 通用接口,支持多种 PC/SC 设备,包括智能卡、磁卡读卡器等等。

它具有以下特点:

  • 可跨平台使用,支持 Windows、Linux 和 macOS 等操作系统。
  • 支持多种 PC/SC 设备。
  • 提供了简单易用的 API。

在这篇文章中,我们将详细介绍如何使用 @codetector/pcsclite 包。

安装

使用 npm 进行安装:

--- ------- --------------------

使用方法

基础使用

以下示例展示了如何使用 @codetector/pcsclite 包:

----- -------- - --------------------------------

----- ---- - -----------

----------------- ---------------- -
  ---------------- ------ ---------- -------------
  ------------------ ------------- -
    --------------------- ---------- ----- -------------
  ---
  ------------------- ---------------- -
    ---------------------- ---------- ----- --------
    -- ----- ---- --- ------- --
    ----- ------- - ---------- - -------------
    -- --------- -
      -- --------- - ----------------------- -- ------------- - ------------------------ -
        ----------------- ---------- -- ---- ------- --
        ------------------------------------------ ------------- -
          -- ----- -
            -----------------
          -
          ---- -
            ----------------------------
          -
        ---
      -
      ---- -- --------- - ------------------------- -- ------------- - -------------------------- -
        ----------------- ----------- -- ---- -------- --
        ---------------- ---------- - ----------------------- -- ------------- --------- -
          -- ----- -
            -----------------
          -
          ---- -
            ------------------------ ------------ ----- ----------
            ----- ------- - --- ------------- ----- ----- ----- -------
            ------------------------ --- --------- ------------- ----- -
              -- ----- -
                -----------------
              -
              ---- -
                ----------------- ---------- ------
              -
            ---
          -
        ---
      -
    -
  ---
  ---------------- ---------- -
    --------------------- ---------- -----------
  ---
---

---------------- ------------- -
  ------------------------------ -------------
---

此示例将监听任何连接到计算机 USB 端口的智能卡并打印出卡片的任何事件,例如插入和拔出。在这个脚本中,您会在命令行终端上看到输出。

API

pcsclite()

静态方法,返回一个 Parser 对象数组。

----- -------- - --------------------------------   
----- ---- - -----------

这将返回一个 Parser 对象数组。

Parser.on('reader', callback(reader))

此事件将在每个新读卡器连接时触发。它将返回一个读卡器对象作为参数,其中包含读卡器的“名称”。

------------------- ---------------- -
  ---------------- ------ ---------- -------------
---

reader.connect(options, callback)

这将建立与所选读卡器的连接。第一个参数是选项,第二个是回调函数。回调函数返回一个“协议”参数,它是使用的重要通讯协议。

---------------- ---------- - ----------------------- -- ------------- --------- -
  -- ----- -
    -----------------
  -
  ---- -
    ------------------------ ------------ ----- ----------
  -
---

reader.transmit(command, length, protocol, callback)

  • command - 发送到智能卡的命令。
  • length - 命令的长度。
  • protocol - 通信协议。
  • callback - 回调函数,返回接收到的数据(如果有的话)。
----- ------- - --- -----------
------------------------ --- --------- ------------- ----- -
  -- ----- -
    --------------------- ------------ ----- -----
  -
  ---- -
    ----------------- ---------- ------
  -
---

reader.disconnect(disposition, callback)

  • disposition - 指定卡片处理完成后对卡片应用的断开行为(如 SCARD_LEAVE_CARD)。
  • callback - 回调函数。
------------------------------------------ ------------- -
  -- ----- -
    -----------------
  -
  ---- -
    ----------------------------
  -
---

示例代码

以下是一个完整的例子:

----- -------- - --------------------------------
----- ---- - -----------

----------------- ---------------- -
  ---------------- ------ ---------- -------------

  ------------------ ------------- -
    --------------------- ---------- ----- -------------
  ---

  ------------------- ---------------- -
    ---------------------- ---------- ----- --------
    -- ----- ---- --- -------
    ----- ------- - ---------- - -------------

    -- --------- -
      -- ---- -------
      -- --------- - ----------------------- -- ------------- - ------------------------ -
        ----------------- ----------

        -- ----- ---------- ---- --- ------
        ------------------------------------------ ------------- -
          -- ----- -
            -----------------
          -
          ---- -
            ----------------------------
          -
        ---
      -
      -- ---- --------
      ---- -- --------- - ------------------------- -- ------------- - -------------------------- -
        ----------------- -----------
        ---------------- ---------- - ----------------------- -- ------------- --------- -
          -- ----- -
            -----------------
          -
          ---- -
            ------------------------ ------------ ----- ----------

            ----- ------- - --- ------------- ----- ----- ----- -------
            ------------------------ --- --------- ------------- ----- -
              -- ----- -
                --------------------- ------------ ----- -----
              -
              ---- -
                ----------------- ---------- ------
              -
            ---
          -
        ---
      -
    -
  ---

  ---------------- ---------- -
    --------------------- ---------- -----------
  ---
---

---------------- ------------- -
  ------------------------------ -------------
---

总结

@codetector/pcsclite 是一个非常有用的 Node.js 包,它提供了对 PC/SC 设备的访问,使用的 API 简单易用。通过本文的学习,你已经掌握了如何安装和使用这个包。

当我们处理 PC/SC 可编程卡时,此包将成为不可或缺的一部分。因此,熟悉此包的使用方式将使我们轻松处理智能卡的读取和写入操作。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60056ede81e8991b448e7830


猜你喜欢

  • npm 包 dfi-asterisk-ami-event-utils 使用教程

    前言 在前端开发中,我们常常需要使用各种第三方库进行开发,npm 包是其中不可或缺的一部分。在这篇文章中,我们将介绍 npm 包 dfi-asterisk-ami-event-utils 的使用教程,...

    3 年前
  • npm 包 `gitlab-bot-poll-plugin` 使用教程

    前言 现如今,在软件开发过程中,使用 GitLab 进行项目管理与版本控制已经成为了大部分开发者的选择。而 GitLab 可以通过 GitLab Runner 与 GitLab CI/CD 功能进行持...

    3 年前
  • npm 包 @hosseiniahmad/angular2-multiselect-dropdown 使用教程

    前端开发中使用多选下拉框是很常见的需求,但是手写可以非常麻烦。npm 包 @hosseiniahmad/angular2-multiselect-dropdown 库能够有效地解决这个问题。

    3 年前
  • npm包react-native-smart-barcode-cy使用教程

    react-native-smart-barcode-cy是一个针对React Native的条形码扫描器组件。它是一个易于使用、功能丰富且可定制的组件,可以用于扫描各种不同类型的二维码和条形码。

    3 年前
  • npm 包 html-manifest-plugin 使用教程

    什么是 html-manifest-plugin html-manifest-plugin 是一个基于 webpack 的插件,用于生成并添加应用程序的 Web App Manifest 到 HTML...

    3 年前
  • npm 包 dfi-asterisk-ami-connector 使用教程

    前言 在开发前端应用时,我们时常需要使用一些第三方库以及插件进行开发,npm 是一个非常好的包管理工具,使我们能够方便地引入这些库并应用到项目当中。在本文中,我们将介绍一个可以与 Asterisk 服...

    3 年前
  • npm 包 dfi-asterisk-ami-client 使用教程

    dfi-asterisk-ami-client 是一个基于 Node.js 的 npm 包,它提供了连接和操作 Asterisk Manager Interface (AMI) 的功能。

    3 年前
  • npm 包 react-multi-column 使用教程

    介绍 react-multi-column 是一个基于 React 的多列布局组件,方便用户实现多列布局效果,适用于实现类似于报纸、杂志等多列文章的展示。 安装 通过 npm 安装: --- ----...

    3 年前
  • npm 包 react-native-template-everywhere-test 使用教程

    在前端开发中,React Native 是一种广泛使用的技术栈。它允许开发者用 JavaScript 搭建原生应用,而不必为不同平台单独编写代码。npm 包 react-native-template...

    3 年前
  • npm 包 @francisbrito/create-package 使用教程

    简介 在前端开发中,我们会用到很多不同的 npm 包来辅助我们完成开发工作。但有时候,我们需要自己创建一个 npm 包来封装我们的代码,方便在其他项目中复用。这时候,就需要用到 @francisbri...

    3 年前
  • npm 包 @savvy-css/ember-savvy-css 使用教程

    前言 在前端开发中,对于样式的处理一直是一个非常重要的问题,而 Sass、Less、 Stylus 等样式预处理器相对于传统 CSS,可以更加简单、方便地帮助我们进行样式的维护和复用。

    3 年前
  • npm 包 @sill/router 使用教程

    介绍 在前端开发中,路由是一个很重要的概念。它可以实现页面的切换,实现单页面应用(SPA)等。而在开源社区中,有许多优秀的路由库可以使用。 今天我们要介绍的是一个优秀的 npm 包 @sill/rou...

    3 年前
  • npm 包 homebridge-rfoutlets-protocol 使用教程

    介绍 homebridge-rfoutlets-protocol 是基于 Node.js 平台的一个让你能够通过 HomeKit 操作 RF 智能插座的 npm 包。

    3 年前
  • 使用 nodebb-plugin-stripe-subscriptions 进行付费会员功能设置

    前言 随着互联网的发展,很多网站或者应用程序都提供了付费会员服务,以便用户获取更好的服务或者更好的使用体验。而 NodeBB 是一款基于 Node.js 的论坛系统,采用了现代化的技术框架,使得开发人...

    3 年前
  • npm 包 @sparkpost/redis-timeseries 使用教程

    介绍 redis-timeseries 是一个使用 Redis 数据库来存储时序数据的 npm 包。使用该包可以方便地处理大量的时序数据,比如处理 IoT 数据、日志数据等。

    3 年前
  • npm 包: strap-forms 使用教程

    简介 strap-forms 是一个基于 Bootstrap 的开源 npm 包,它提供了一系列的表单组件,可帮助开发者轻松构建漂亮的表单,并完成表单验证、数据处理等操作。

    3 年前
  • npm 包 @loll/state 使用教程

    在前端开发过程中,状态管理是一个核心的问题。@loll/state 是一个基于 RxJS 实现的状态管理库,可以帮助我们更好地管理应用的状态。在本文中,我们将介绍如何使用 @loll/state,包括...

    3 年前
  • npm包cancel-circle-workflows使用教程

    随着前端开发的快速发展,越来越多的工具和框架被开发出来,npm作为社区上最大的javascript包管理工具之一,在前端开发中扮演了极其重要的角色。在 npm 包中,cancel-circle-wor...

    3 年前
  • npm 包 @loll/h 使用教程

    前言 随着前端技术的不断发展,我们越来越依赖 npm 包来进行开发。@loll/h 是一个非常实用的 npm 包,它可以帮助我们简化开发过程中需要处理数组、对象等数据结构的相关操作,提高我们的开发效率...

    3 年前
  • npm 包 @sill/state 使用教程

    介绍 随着技术的不断发展,前端框架的数量也越来越多。前端开发人员需要熟悉不同的框架及技术,以便在不同的项目中进行开发。 @Sill/State 是一个轻量级状态管理库,它可以帮助你在 React 和 ...

    3 年前

相关推荐

    暂无文章