dgtchess:用于电子 DGT 棋盘的事件驱动 JavaScript 连接器

  • l7_609358
    了解作者
  • 447KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-23 01:41
    上传日期
国际象棋 用于电子国际象棋棋盘的 JavaScript 连接器,可在浏览器和 node.js 中运行。 浏览器使用情况 客户端版本依赖于浏览器的 ,目前只有 Google Chrome 80 及更高版本支持,需要通过chrome://flags的#enable-experimental-web-platform-features标志#enable-experimental-web-platform-features 。 由于 Web Serial API 仅在现代浏览器上可用,因此您很可能只需将提供的Board.js作为 JavaScript 模块导入即可。 Board构造函数将 Web Serial API 返回的开放端口作为其第一个参数。 <button onclick="loadBoard()">Load position from DGT board</button> <sc
dgtchess-master.zip
内容介绍
# dgtchess A JavaScript connector for the electronic [DGT](http://dgtprojects.com) chess board, working both in the browser and node.js. ## Browser Usage The client version relies on the browser's [Web Serial API](https://wicg.github.io/serial/), which is currently supported only by Google Chrome 80 and later and needs to be enabled via the `#enable-experimental-web-platform-features` flag in `chrome://flags`. Because the Web Serial API is available only on modern browsers, it is very likely that you can simply import the provided `Board.js` as a JavaScript module. The `Board` constructor expects an open port as returned by the Web Serial API as its first argument. ``` <button onclick="loadBoard()">Load position from DGT board</button> <script type="module" src="main.js"> import Board from 'chessground/Board.js' async function loadBoard () { const port = await navigator.serial.requestPort({}) const board = new Board(port) const { serialNr, version, position } = await board.reset() console.log(serialNr, version) console.log(position.ascii) } </script> ``` In `example/index.html`, we provide a standalone example web page that loads the DGT chess board's information and dynamically displays the current position: ![Screencast](example/screencast.gif) ## Usage with node.js Using npm, you can install dgtchess by calling this: ```sh npm install dgtchess ``` The node.js version relies on [Node Serialport](https://serialport.io/) to connect to the DGT chess board. Its path is expected as the first argument of the `Board` constructor, e.g. `/dev/ttyUSB0` on Linux machines. For the node.js version, dgtchess internally maps to `Board.node.js` which replaces some of the Web Serial APIs by the ones provided by Node Serialport. ```js import Board from 'dgtchess' const board = new Board('/dev/ttyUSB0') const { serialNr, version, position } = await board.reset() console.log(serialNr, version) console.log(position.ascii) ``` This might result in the following output: ``` 13116 1.8 +------------------------+ 8 | . . . . . . . . | 7 | . . Q . . . . . | 6 | . . . . . . . . | 5 | . . . . . . k . | 4 | . . R . . . . . | 3 | . . . . . . . . | 2 | . . . K . . . . | 1 | . . . . . . . . | +------------------------+ a b c d e f g h ``` ## Status The current version of this module uses only the `UPDATE BOARD` modus and instead of moves, only changes are triggered through the 'data' event. ## Background The protocol for communicating with the electronic chess boards is well documented by DGT in [their developer section](http://www.dgtprojects.com/site/index.php/dgtsupport/developer-info). There you can find the [DGT Electronic Board Protocol Description (version 20120309)](http://www.dgtprojects.com/site/index.php/dgtsupport/developer-info/downloads/doc_download/85-dgt-electronic-board-protocol-description-version-20120309) which is the base for this JavaScript implementation.
评论
    相关推荐
    • puppeteer:无头的Chrome Node.js API
      Puppeteer是一个Node库,它提供了高级API来通过控制Chrome或Chromium。 Puppeteer默认情况下运行,但可以配置为运行完整(无头)的Chrome或Chromium。 我能做什么? 您可以在浏览器中手动执行的大多数操作都可以...
    • 木偶:无头的Chrome Node.js API
      Puppeteer是一个Node库,它提供了高级API来通过控制Chrome或Chromium。 Puppeteer默认情况下运行,但可以配置为运行完整(无头)的Chrome或Chromium。 我能做些什么? 您可以在浏览器中手动执行的大多数操作都可以...
    • Puppeteer:无头的Chrome Node.js API-开源
      Puppeteer是一个无头节点库,提供了用于通过DevTools协议控制Chromium或Chrome的高级API。 它需要零设置,并与最适合它的Chromium版本捆绑在一起。 默认情况下,Puppeteer是无头的,因此运行起来很快。 但是,也可以...
    • Puppeteer:无头的Chrome Node.js API-开源
      Puppeteer是一个无头节点库,提供了用于通过DevTools协议控制Chromium或Chrome的高级API。 它需要零设置,并与最适合它的Chromium版本捆绑在一起。 默认情况下,Puppeteer是无头的,因此运行起来很快。 但是,也可以...
    • Node.js-Tutorial:Node.js
      Node.js:教程 ... - Runs on top of the V8 JavaScript Runtime (same that is running on the Chrome browser) What can you build? - Web socket Server - File Upload client - Ad Server - Real
    • Puppeteer Headless Chrome Node.js API-Node.js开发
      Puppeteer是一个Node库,它提供了高级API来通过DevTools协议控制Chrome或Chromium。 Puppeteer默认情况下无头运行,但可以配置为运行完整(无头)的Chrome或Chromium。 Puppeteer是一个Node库,它提供了高级API来...
    • sinon-chrome, 使用 node.js 测试 Chrome 扩展.zip
      sinon-chrome, 使用 node.js 测试 Chrome 扩展 sinonsinon chrome是 单元测试 Chromium 和 Firefox 扩展和应用的helper 工具。 它使用sinon存根模拟所有扩展 api,允许你在 node.js 中运行测试而无需实际浏览器。...
    • Node.js-inspect-process使用chrome-devtools用于Node.js简单调试的工具
      inspect-process:使用chrome-devtools用于Node.js简单调试的工具
    • node.js:node.js连接
      node.js 来自Monggodb mongojs的node.js连接
    • Node.js-用于Node.jsChrome调试协议接口
      用于Node.jsChrome调试协议接口