小编Dan*_*Dan的帖子

51
推荐指数
4
解决办法
10万
查看次数

通过USB类列出USB设备

我试图动态列出连接到计算机的USB与某个UsbDeviceClass匹配

有关我尝试在设备管理器中列出的USB类的信息如下

设备管理器信息

理想情况下它应该能够列出Com端口,因为我希望列出的设备特别是Arduinos.

DeviceInformationCollection usbDeviceInfoCollection = await DeviceInformation.FindAllAsync(UsbDevice.GetDeviceClassSelector(new UsbDeviceClass()
{
    ClassCode = 0x02,
    SubclassCode = 0x02,
    ProtocolCode = 0x01
}));
Debug.WriteLineIf(usbDeviceInfoCollection.Count == 1, "1 USB device found");
Debug.WriteLineIf(usbDeviceInfoCollection.Count != 1, usbDeviceInfoCollection.Count + " USB devices found");

for (int i = 0; i < usbDeviceInfoCollection.Count; i++)
{
    Debug.WriteLine("USB Device " + (i + 1));
    Debug.WriteLine("ID: " + usbDeviceInfoCollection[i].Id);
    Debug.WriteLine("Name: " + usbDeviceInfoCollection[i].Name);
    Debug.WriteLine("Properties: " + usbDeviceInfoCollection[i].Properties);
    Debug.WriteLine("");
}
Run Code Online (Sandbox Code Playgroud)

上面的代码显示了我一直在努力实现这一目标,但到目前为止,我没有运气.这是因为当程序运行时,它会在连接了设备时返回0个设备.

我也尝试使用预定义的类UsbDeviceClasses.CdcControl,但是,也没有达到我想要的结果.

我很欣赏任何关于如何正确实现这一目标的指导.


此外,由于这是一个UWP项目,我已经包含了下面的功能,因此它应该能够检测到我想要的设备.

<DeviceCapability Name="serialcommunication">
  <Device …
Run Code Online (Sandbox Code Playgroud)

c# xaml arduino arduino-uno uwp

17
推荐指数
1
解决办法
914
查看次数

使用randoms和super

我怎么会叫一个Randomjava.util.Randomsupertype constructor

例如

Random rand = new Random();
int randomValue = rand.nextInt(10) + 5;

public Something() 
{
    super(randomValue);
    //Other Things
}
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,编译器说我" 在调用randomValue之前无法引用supertype constructor".

java random compilation super

15
推荐指数
2
解决办法
786
查看次数

如何使用操作系统的默认文件选择器?java的

我只是想知道:Gmail如何使用Windows/Mac文件选择器上传文件?有没有办法在Java中这样做?

在此输入图像描述

就个人而言,我不喜欢它的JFileChooser外观,我认为我的用户能够使用他们更习惯的东西会更好.有人提示吗?

java jfilechooser

14
推荐指数
3
解决办法
1万
查看次数

Lodash Flow和TypeScript

我一直在关注有关Lodash的文章,“ 为什么使用_.chain是一个错误”,它着重指出您可以使用来消除对链条的需求Flow

给出的示例是以下使用链

import _ from "lodash";

_.chain([1, 2, 3])
    .map(x => [x, x*2])
    .flatten()
    .sort()
    .value();
Run Code Online (Sandbox Code Playgroud)

可以使用流程转换为以下内容

import map from "lodash/fp/map";
import flatten from "lodash/fp/flatten";
import sortBy from "lodash/fp/sortBy";
import flow from "lodash/fp/flow";

flow(
    map(x => [x, x*2]),
    flatten,
    sortBy(x => x) 
)([1,2,3]);
Run Code Online (Sandbox Code Playgroud)

但是,当我使用TypeScript实现此功能时,出现以下错误

对象的类型为'unknown'.ts(2571)

该错误在地图功能中使用的x上突出显示。

有什么方法可以解决此问题,以便TypeScript知道它正在处理哪种类型?

javascript functional-programming typescript lodash

12
推荐指数
3
解决办法
1937
查看次数

ref foreach 与 List

为什么不能在迭代 a 的循环ref var中使用?foreachList<T>

Random rand = new();

// This is fine
Span<int> numbers = new int[] { 3, 14, 15, 92, 6 };
foreach (ref var number in numbers)
{
    number = rand.Next();
}

// This is not fine
List<int> nums = new() { 3, 14, 15, 92, 6 };
foreach (ref var number in nums)
{
    number = rand.Next();
}
Run Code Online (Sandbox Code Playgroud)

c#

11
推荐指数
1
解决办法
1917
查看次数

团结加速

我试图在Unity中模拟加速和减速.

我已编写代码以在Unity中生成轨道,并根据时间将对象放置在轨道上的特定位置.结果看起来有点像这样.

立方体通过Catmull-Rom Spline中途

我现在有问题的是,花键的各个部分是不同的长度和不同的在每个部分中的立方体的动作,但均匀,速度.这导致在切片之间转换时立方体的速度突然跳跃.

为了尝试解决这个问题,我试图在方法上使用Robert Penner的缓动方程GetTime(Vector3 p0, Vector3 p1, float alpha).然而,虽然这确实有所帮助,但这还不够.在转换之间仍然存在速度跳跃.

有没有人对如何动态地缓解立方体的位置以使其看起来像加速和减速,没有轨道段之间的速度没有大的跳跃有任何想法?


我编写了一个脚本,显示了我的代码的简单实现.它可以附加到任何游戏对象.为了便于查看代码运行时发生的情况,请附加到多维数据集或球体之类的内容.

using System.Collections.Generic;
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif

public class InterpolationExample : MonoBehaviour {
    [Header("Time")]
    [SerializeField]
    private float currentTime;
    private float lastTime = 0;
    [SerializeField]
    private float timeModifier = 1;
    [SerializeField]
    private bool running = true;
    private bool runningBuffer = true;

    [Header("Track Settings")]
    [SerializeField]
    [Range(0, 1)]
    private float catmullRomAlpha = 0.5f;
    [SerializeField]
    private List<SimpleWayPoint> wayPoints = new List<SimpleWayPoint>
    {
        new SimpleWayPoint() {pos = new …
Run Code Online (Sandbox Code Playgroud)

c# interpolation unity-game-engine catmull-rom-curve

10
推荐指数
1
解决办法
2007
查看次数

Set system cursor size

Is it possible to set the system cursor size to over 32px by 32px?

Currently I am using this code to set the cursors.

#define OEMRESOURCE
#include <windows.h>
#include <chrono>
#include <thread>

int main()
{
    //Load cursor
    const HCURSOR customCursor = LoadCursorFromFile(L"Cursor.cur");

    //Replace system cursor with loaded cursor
    SetSystemCursor(customCursor, OCR_NORMAL);

    //Sleep the current thread to allow the user to play with new cursor
    std::this_thread::sleep_for(std::chrono::milliseconds(5000));

    //Restore original system cursors
    SystemParametersInfo(SPI_SETCURSORS, 0, nullptr, 0);
}
Run Code Online (Sandbox Code Playgroud)

However, even though the cursor file is …

c++ windows winapi windows-10

10
推荐指数
1
解决办法
305
查看次数

如何使一个函数去追求一个元素

JavaScript,你会经常看到说document.getElementById("element").someFunction();$("element").someFunction();代替的功能someFunction($("element"));.凡someFunction(element)看起来像下面的代码一点点.

someFunction(element) {
    //element.doSomething();
}
Run Code Online (Sandbox Code Playgroud)

我的问题是你如何创建一个函数来操作它所附加的元素而不是操纵作为参数传递的元素?

javascript jquery

9
推荐指数
1
解决办法
90
查看次数

在WPF中折叠网格行

我创建了一个自定义的WPF元素RowDefinition,当Collapsed元素的属性设置为时,该元素应该折叠网格中的行True.

它通过使用样式中的转换器和数据触发器将行的高度设置为0来实现.它基于此SO答案.

在下面的示例中,当网格分割器超过窗口的一半时,这非常有效.但是,当它不到一半时,行仍然会崩溃,但第一行不会展开.相反,过去的行只有一个白色的间隙.这可以在下图中看到.

图片显示下半部分,底行不会消失,但超过一半

同样,如果在任何折叠的行上设置MinHeight或者MaxHeight设置,则它根本不会折叠该行.我尝试通过在数据触发器中为这些属性添加setter来修复此问题,但它没有修复它.

我的问题是什么可以做不同的,这样也没关系有关行的大小或者MinHeight/ MaxHeight设置,它只是能够折叠行?


MCVE

MainWindow.xaml.cs

using System;
using System.ComponentModel;
using System.Globalization;
using System.Runtime.CompilerServices;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;

namespace RowCollapsibleMCVE
{
    public partial class MainWindow : INotifyPropertyChanged
    {
        public MainWindow()
        {
            InitializeComponent();
            DataContext = this;
        }

        public event PropertyChangedEventHandler PropertyChanged;

        private void OnPropertyChanged([CallerMemberName] string propertyName = null)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }

        private bool isCollapsed;

        public bool IsCollapsed
        {
            get => …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml datatrigger wpf-grid

9
推荐指数
1
解决办法
1319
查看次数