指示 [英] directive

查看:63
本文介绍了指示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用System;

使用System.Collections.Generic;

使用System.Linq;

使用System.Text;

使用System.Threading.Tasks;

使用System.Windows;

使用System.Windows.Controls;

使用System.Windows.Data;

使用System.Windows.Documents;

使用System.Windows.Input;

使用System.Windows .Media;

使用System.Windows.Media.Imaging;

使用System.Windows.Navigation;

使用System.Windows.Shapes;

使用LibUsbDotNet;

使用LibUsbDotNet.Main;

使用System;

使用System.Collections.Generic;

使用System.Linq;

使用System.Text;

使用System.Threading.Tasks;

< br $>


命名空间WpfApplication1 {



$
  &NBSP; ///< summary>

  &NBSP; /// MainWindow.xaml的交互逻辑

  &NBSP; ///< / summary>

  &NBSP; public partial class MainWindow:Window

  &NBSP; {

  &NBSP; &NBSP; &NBSP; public int ReadPolling()

  &NBSP; &NBSP; &NBSP; {}

  &NBSP; &NBSP; &NBSP; public static UsbDevice MyUsbDevice;



  &NBSP; &NBSP; &NBSP; #region设置您的USB供应商和产品ID!
$


  &NBSP; &NBSP; &NBSP; public static UsbDeviceFinder MyUsbFinder = new UsbDeviceFinder(0x0781,0x5597);



$
  &NBSP; &NBSP; &NBSP; #endregion



  &NBSP; &NBSP; &NBSP; public static void Main(string [] args)

  &NBSP; &NBSP; &NBSP; {

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; ErrorCode ec = ErrorCode.None;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; //查找并打开USB设备。

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; MyUsbDevice = UsbDevice.OpenUsbDevice(MyUsbFinder);



  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; //如果设备已打开并准备就绪,请按
  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; if(MyUsbDevice == null)抛出新的异常("未找到设备。");
$


  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; //如果这是一个"整体" usb设备(libusb-win32,linux libusb-1.0)

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; //它公开了一个IUsbDevice接口。如果没有(WinUSB) 

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; //'wholeUsbDevice'变量将为null,表示这是 

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; //设备的接口;它不需要或支持 

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; //配置和界面选择。

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; IUsbDevice wholeUsbDevice = MyUsbDevice as IUsbDevice;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; if(!ReferenceEquals(wholeUsbDevice,null))

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; {

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; //这是一个"整体" USB设备。在使用之前, 

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; //必须选择所需的配置和界面。



  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; //选择配置#1

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; wholeUsbDevice.SetConfiguration(1);



  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; //声明界面#0。

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; wholeUsbDevice.ClaimInterface(0);

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; return bytesRead;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; }




 



  ; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; //打开读取端点1.

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; var reader = MyUsbDevice.OpenEndpointReader(ReadEndpointID.Ep01);



$
  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; byte [] readBuffer = new byte [1024];

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; while(ec == ErrorCode.Success)

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; {

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; int bytesRead;



  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; //如果设备在过去5秒内未发送数据,则为
  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; //将发生超时错误(ec = IoTimedOut)。 

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; ec = reader.Read(readBuffer,5000,out bytesRead);



  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; if(bytesRead == 0)抛出新的异常(string.Format(" {0}:没有更多字节!",ec));

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; Console.WriteLine(" {{0} bytes read",bytesRead);



  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; //将该输出写入控制台。

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; Console.Write(Encoding.Default.GetString(readBuffer,0,bytesRead));

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; return bytesRead;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; }


  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; Console.WriteLine(" \\\\\\\\\\\\\\\\\\\\\\\\\\ &NBSP; &NBSP; &NBSP; return bytesRead;

  &NBSP; }




  &NBSP; }


}




我调试代码顶部并收到以下错误


严重性 代码
描述 项目
文件
抑制状态

错误 CS0246
无法找到类型或命名空间名称"LibUsbDotNet"(您是否缺少using指令或程序集引用?)
WpfApplication1 D:\ WpfApplication1 \ WpfApplication1 \ MainWindow .xaml.cs
15


    

解决方案

试试这个:



  • 在解决方案资源管理器中右键单击项目,然后选择"管理NuGet包"。
  • 转到"浏览"选项卡,查找并安装缺少的包。

  < /跨度>


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using LibUsbDotNet;
using LibUsbDotNet.Main;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace WpfApplication1 {


    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public int ReadPolling()
        { }
        public static UsbDevice MyUsbDevice;

        #region SET YOUR USB Vendor and Product ID!

        public static UsbDeviceFinder MyUsbFinder = new UsbDeviceFinder(0x0781, 0x5597);


        #endregion

        public static void Main(string[] args)
        {
            ErrorCode ec = ErrorCode.None;
            // Find and open the usb device.
            MyUsbDevice = UsbDevice.OpenUsbDevice(MyUsbFinder);

            // If the device is open and ready
            if (MyUsbDevice == null) throw new Exception("Device Not Found.");

            // If this is a "whole" usb device (libusb-win32, linux libusb-1.0)
            // it exposes an IUsbDevice interface. If not (WinUSB) the 
            // 'wholeUsbDevice' variable will be null indicating this is 
            // an interface of a device; it does not require or support 
            // configuration and interface selection.
            IUsbDevice wholeUsbDevice = MyUsbDevice as IUsbDevice;
            if (!ReferenceEquals(wholeUsbDevice, null))
            {
                // This is a "whole" USB device. Before it can be used, 
                // the desired configuration and interface must be selected.

                // Select config #1
                wholeUsbDevice.SetConfiguration(1);

                // Claim interface #0.
                wholeUsbDevice.ClaimInterface(0);
            return bytesRead;
            }


 

            // open read endpoint 1.
            var reader = MyUsbDevice.OpenEndpointReader(ReadEndpointID.Ep01);


            byte[] readBuffer = new byte[1024];
            while (ec == ErrorCode.Success)
            {
                int bytesRead;

                // If the device hasn't sent data in the last 5 seconds,
                // a timeout error (ec = IoTimedOut) will occur. 
                ec = reader.Read(readBuffer, 5000, out bytesRead);

                if (bytesRead == 0) throw new Exception(string.Format("{0}:No more bytes!", ec));
                Console.WriteLine("{0} bytes read", bytesRead);

                // Write that output to the console.
                Console.Write(Encoding.Default.GetString(readBuffer, 0, bytesRead));
            return bytesRead;
            }

            Console.WriteLine("\r\nDone!\r\n");
        return bytesRead;
    }


    }

}

I debug the code on the top and received the following error

Severity Code Description Project File Line Suppression State
Error CS0246 The type or namespace name 'LibUsbDotNet' could not be found (are you missing a using directive or an assembly reference?) WpfApplication1 D:\WpfApplication1\WpfApplication1\MainWindow.xaml.cs 15

    

解决方案

Try this:

  • Right-click the project in Solution Explorer and select "Manage NuGet Packages".
  • Go to Browse tab, find and install the missing package.

 


这篇关于指示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆