GVKun编程网logo

如何使用libusb将数据发送到node.js中的USB设备

7

本文将带您了解关于如何使用libusb将数据发送到node.js中的USB设备的新内容,另外,我们还将为您提供关于c–如何最有效地使用libusb与连接的USB设备进行通话?、C#如何使用LibUsb

本文将带您了解关于如何使用libusb将数据发送到node.js中的USB设备的新内容,另外,我们还将为您提供关于c – 如何最有效地使用libusb与连接的USB设备进行通话?、C#如何使用LibUsbDotNet实现USB通信的示例详解、cocoa – libusb是Mac OS X上访问USB设备的首选方法吗?、Gatsby.js 我无法使用 gatsby-node.js 将数据发送到页面的实用信息。

本文目录一览:

如何使用libusb将数据发送到node.js中的USB设备

如何使用libusb将数据发送到node.js中的USB设备

我已经尝试按照以下文档https://www.npmjs.org/package/usb从设备(USB温度计)中获取数据,但没有任何结果。

为了从设备获取性能数据,我应该发送类似“ d \ n”的数据。

这是我的代码:

var usb = require(''usb''),    term = usb.findByIds(65535, 2);term.open();var endpoints = term.interfaces[0].endpoints,    inEndpoint = endpoints[0],    outEndpoint = endpoints[1];inEndpoint.transferType = 2;inEndpoint.startStream(1, 64);inEndpoint.transfer(64, function (error, data) {    if (!error) {        console.log(data);    } else {        console.log(error);    }});inEndpoint.on(''data'', function (data) {    console.log(data);});inEndpoint.on(''error'', function (error) {    console.log(error);});outEndpoint.transferType = 2;outEndpoint.startStream(1, 64);outEndpoint.transfer(new Buffer(''d\n''), function (err) {    console.log(err);});

运行后,我得到了这个:

D:\Dev\USBTest\node_modules\usb\usb.js:261    t.submit(new Buffer(self.streamTransferSize), transferDone)      ^Error: LIBUSB_ERROR_NOT_FOUND    at startTransfer (D:\Dev\USBTest\node_modules\usb\usb.js:261:5)    at Array.forEach (native)    at InEndpoint.startStream (D:\Dev\USBTest\node_modules\usb\usb.js:264:23)    at D:\Dev\USBTest\app.js:15:16    at Object.<anonymous> (D:\Dev\USBTest\app.js:35:2)    at Module._compile (module.js:456:26)    at Object.Module._extensions..js (module.js:474:10)    at Module.load (module.js:356:32)    at Function.Module._load (module.js:312:12)    at Function.Module.runMain (module.js:497:10)

答案1

小编典典

您忘记了调用interface.claim()。

https://github.com/nonolith/node-usb#claim

c – 如何最有效地使用libusb与连接的USB设备进行通话?

c – 如何最有效地使用libusb与连接的USB设备进行通话?

如何最好地使用 libusb与连接的USB设备通话?

具体来说,如何将数据传输到USB设备,从设备接收信息,查找连接的设备的名称(如果有存储设备)等.

更具体地说,我将在Mac OS X机器上运行,所以我知道我不能只使用Windows头文件.

如果对libusb和USB设备有很好的解释,那将是有帮助的.

解决方法

我在这里找到一个关于使用libusb-1.0: http://www.dreamincode.net/forums/topic/148707-introduction-to-using-libusb-10/的文本

C#如何使用LibUsbDotNet实现USB通信的示例详解

C#如何使用LibUsbDotNet实现USB通信的示例详解

 网上c#usb通信的资料比较少, 基本上都是基于libusbdotnet 和 cyusb, 关于打印机设备的还有一个opos。

本篇文章基于LibUsbDotNet。

  1. 下载并安装 LibUsbDotNet 安装文件。

  2. 运行Filter Wizard, Install a device filter。 安装需要通信的usb设备。

  

  3. 建一个简单的控制台项目,进行测试, 下图为打印需要通信设备的信息。

  

相关代码:  

引用  


using LibUsbDotNet;
using LibUsbDotNet.Main;
using LibUsbDotNet.Info;
登录后复制

PrintUsbInfo


 public static void PrintUsbInfo()
        {
            UsbDevice usbDevice = null;
            UsbRegDeviceList allDevices = UsbDevice.AllDevices;

            Console.WriteLine("Found {0} devices", allDevices.Count);

            foreach (UsbRegistry usbRegistry in allDevices)
            {
                Console.WriteLine("Got device: {0}\r\n", usbRegistry.FullName);

                if (usbRegistry.Open(out usbDevice))
                {
                    Console.WriteLine("Device Information\r\n------------------");

                    Console.WriteLine("{0}", usbDevice.Info.ToString());

                    Console.WriteLine("VID & PID: {0} {1}", usbDevice.Info.Descriptor.VendorID, usbDevice.Info.Descriptor.ProductID);

                    Console.WriteLine("\r\nDevice configuration\r\n--------------------");
                    foreach (UsbConfigInfo usbConfigInfo in usbDevice.Configs)
                    {
                        Console.WriteLine("{0}", usbConfigInfo.ToString());

                        Console.WriteLine("\r\nDevice interface list\r\n---------------------");
                        ReadOnlyCollection<UsbInterfaceInfo> interfaceList = usbConfigInfo.InterfaceInfoList;
                        foreach (UsbInterfaceInfo usbInterfaceInfo in interfaceList)
                        {
                            Console.WriteLine("{0}", usbInterfaceInfo.ToString());

                            Console.WriteLine("\r\nDevice endpoint list\r\n--------------------");
                            ReadOnlyCollection<UsbEndpointInfo> endpointList = usbInterfaceInfo.EndpointInfoList;
                            foreach (UsbEndpointInfo usbEndpointInfo in endpointList)
                            {
                                Console.WriteLine("{0}", usbEndpointInfo.ToString());
                            }
                        }
                    }
                    usbDevice.Close();
                }
                Console.WriteLine("\r\n----- Device information finished -----\r\n");
            }
        }
登录后复制

调用


public static void Main(string[] args)
        {
            PrintUsbInfo();

            // Wait for user input..
            Console.ReadKey();
        }
登录后复制

 

以上就是C#如何使用LibUsbDotNet实现USB通信的示例详解的详细内容,更多请关注php中文网其它相关文章!

cocoa – libusb是Mac OS X上访问USB设备的首选方法吗?

cocoa – libusb是Mac OS X上访问USB设备的首选方法吗?

libusb是目前在OS X上通过USB(使用AT命令)与设备通信的首选方法吗?

可可有高水平的等价物吗?

解决方法

在OS X上,使用IOKit和C的子集编写驱动程序.更具体地说,对于USB设备,您可能希望从Apple的 USB Device Interface Guide开始,并浏览XCode中Mac OS X Core Library文档集的硬件和驱动程序部分的USB部分. (编辑:后者资源也是 available online.)

Gatsby.js 我无法使用 gatsby-node.js 将数据发送到页面

Gatsby.js 我无法使用 gatsby-node.js 将数据发送到页面

如何解决Gatsby.js 我无法使用 gatsby-node.js 将数据发送到页面?

我正在使用 axios 从 REST API 检索数据,我需要将数据发送到页面,以便将其写入 html。

在 gatsby-node.js 中我有:

const axios = require(''axios'')

const get = axios.get(''https://cv-page.prismic.io/api/v1/documents/search?ref=YDNpXBUAAMmV9aOD#format=json'');

async function getPrismicData(){
  const data = await get;
  return getExperiences(data.data)
}
    

function getExperiences(data) {
    var object = [{
      experienceTitle: data.results[0].data.cv.experiences.value[0]["experience-title"].value[0].text,dateEnd: data.results[0].data.cv.experiences.value[0]["date-end"].value,dateStart: data.results[0].data.cv.experiences.value[0]["date-start"].value
    },{
      experienceTitle: data.results[0].data.cv.experiences.value[1]["experience-title"].value[0].text,dateEnd: data.results[0].data.cv.experiences.value[1]["date-end"].value,dateStart: data.results[0].data.cv.experiences.value[1]["date-start"].value
    }
  ]
  return object;
}

exports.createPages = async ({actions: {createPage}}) => {
  const prismicData = await getPrismicData();
  console.log(prismicData)

  createPage({
      path: `/`,component: require.resolve("./src/pages/index.js"),context: {prismicData}
  });

}

与此同时,在 index.js 中我有:

import React from "react"

import LeftColumn from "../components/left_column"
import RightColumn from "../components/right_column"
import "./index.css"

export default ({ pageContext: { prismicData } }) => {
  console.log(prismicData)
  return(
    <div className="two-columns">
    <LeftColumn></LeftColumn>
    <RightColumn></RightColumn>
    </div>
  )
}

我在 console.logs 中看到的是,在 gatsby-node 中我已经正确检索了数据,而在 index.js 中它是未定义的。

我做错了什么?我无法理解这个问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

我们今天的关于如何使用libusb将数据发送到node.js中的USB设备的分享已经告一段落,感谢您的关注,如果您想了解更多关于c – 如何最有效地使用libusb与连接的USB设备进行通话?、C#如何使用LibUsbDotNet实现USB通信的示例详解、cocoa – libusb是Mac OS X上访问USB设备的首选方法吗?、Gatsby.js 我无法使用 gatsby-node.js 将数据发送到页面的相关信息,请在本站查询。

本文标签: