小编Mar*_*ark的帖子

从html5拍照

我从很多方面阅读了很多从html5页面获取图像的方法.我仍然不确定什么是最符合我需求的:

  • 对浏览器和操作系统的广泛支持:至少:chrome,firefox,android默认,safari
  • 我不需要实时采集.用户必须按下按钮才能拍照,请求系统相机应用程序

至少有三种解决方案:

  • <input type="file" accept="image/*;capture=camera">
  • Navigator.getUserMedia() (似乎已弃用)
  • MediaDevices.getUserMedia() (似乎是实验性的)

无论如何,我看到很多例子将相机嵌入到页面中,(w/ getUserMedia)所以我不知道我是否只能依赖第一种方法.

javascript html5 camera android getusermedia

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

通过依赖注入访问 DbContext

我不明白官方文档中有关依赖注入的段落。

他们说我可以使用控制器(但从这里我知道我不需要它,因为我正在使用 Razor 页面)或者我可以直接访问 ServiceProvider:

using (var context = serviceProvider.GetService<BloggingContext>())
{
  // do stuff
}
Run Code Online (Sandbox Code Playgroud)

但如何在我的项目的通用 C# 类中检索对 ServiceProvider 的引用?

我在startup.cs中设置服务:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<MyDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("MyDbContext")));
    services.AddHangfire(options => options.UseSqlServerStorage(Configuration.GetConnectionString("MyDbContext")));
    services.AddOptions();
    services.Configure<MySettings>(options => Configuration.GetSection("MySettings").Bind(options));
    services.AddMvc().AddDataAnnotationsLocalization();
}
Run Code Online (Sandbox Code Playgroud)

编辑

为了进一步澄清我的困惑,我想做的是从 Worker 类添加/获取数据。在这里我找到了一个如何做到这一点的示例:

using (var context = new BloggingContext())
{
    var blog = new Blog { Url = "http://sample.com" };
    context.Blogs.Add(blog);
    context.SaveChanges();

    Console.WriteLine(blog.BlogId + ": " +  blog.Url);
}
Run Code Online (Sandbox Code Playgroud)

但如果我要使用依赖注入,我就不能使用没有参数 DbContext 的构造函数。另一方面,如果我添加参数,当我调用构造函数时,我必须传递正确的值,如上面的示例所示 - 这是最初的问题。

编辑2 …

c# dependency-injection entity-framework-core asp.net-core-mvc asp.net-core

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

quaggaJS:如何“暂停”解码器

我正在使用quaggaJS( https://github.com/serratus/quaggaJS ) 在 Web 应用程序中读取条形码。它工作得很好,这是我的初始化代码:

Quagga.init({
    inputStream: {
        name: "Live",
        type: "LiveStream",
        constraints: {
            width: 1280,
            height: 720,
            facingMode: "environment"
        }
    },
    decoder: {
        readers: ["code_39_reader"],
        debug: {
            drawBoundingBox: true,
            showFrequency: false,
            drawScanline: true,
            showPattern: true
        },
        multiple: false
    },
    locator: {
        halfSample: true,
        patchSize: "medium"
    }
}, function (err) {
    if (err) {
        alert(err);
        return;
    }
    Quagga.registerResultCollector(resultCollector);
    Quagga.start();
});
Run Code Online (Sandbox Code Playgroud)

这里是onDetected事件的处理:

Quagga.onDetected(function (data) {
    Quagga.stop();  // <-- I want to "pause"
    // dialog to ask …
Run Code Online (Sandbox Code Playgroud)

javascript quaggajs

8
推荐指数
1
解决办法
2208
查看次数

ASP.NET Core 2,使用没有MVC的Razor页面单击按钮

正如有人在评论中指出的那样,Razor页面不像你以前在MVC那样需要控制器.我现在也是Razor没有按钮点击事件的原生处理.要在用户单击按钮时执行某些操作(在"代码隐藏"中),我们至少有两个选项:

  • 使用提交按钮
  • 使用ajax调用

我找到了很多MVC的例子,展示了如何定义Controller函数.但如上所述,我没有.

因此,我试图了解两种方式.在这里我的测试cshtml:

<form method="post">
    <input type="submit" class="btn btn-primary" value="way1">Way 1/>
</form>

<button id="btn" type="button" class="btn btn-primary" value="way2">Way 2</button>

<script>
$(document).ready(function() {
    $("#btn").click(function (e) {
        e.preventDefault();
        $.ajax({
            url: "@Url.Action("Way2")",
            type: "POST",
            data: "foo",
            datatype: "text",
            success: function (data) {
                alert(data);
            }
        });
        return false;
    });
});
</script>
Run Code Online (Sandbox Code Playgroud)

这里是cshtml.cs:

public class TestModel:PageModel {private readonly MyContext _context;

public TestModel(MyContext context)
{
    _context = context;
}

public IActionResult OnPost()
{
    // here I can put something to execute 
    // when the …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core asp.net-core-2.0 razor-pages

8
推荐指数
1
解决办法
2万
查看次数

在具有延迟的系统中调整pid

我需要在具有相当大延迟的系统中调整PI(D)增益.这是一种常见的温度控制器,但温度探头远离加热器.更多信息:

  • 从加热器的任何变化开始,探头的响应延迟大约10秒

  • 温度采样@ 1 Hz,分辨率为0.01°C

  • 加热器是PWM控制器,周期为1 Hz,带有10位PWM

  • 目标是将振荡保持在±0.05°C以下

目前我正在使用控制器作为PI.我无法避免振荡.增益越高,振荡越小且越快.仍然太高(约±0.15°C).降低P和I增益会导致非常长且深的振荡.

我认为这是由于延误.结算时间不是问题,可能需要它所需的所有时间.

我很困惑如何使系统工作.让我们考虑只使用I.当探头达到目标值并且I输出开始减小时,温度将上升一段时间.我不能使用导数项,因为变化太慢而且dError非常接近于零(如果我将dGain设置为一个巨大的值,则噪声太大).

任何的想法?

temperature delay pid-controller

7
推荐指数
2
解决办法
8672
查看次数

康纳曼没有任何用户互动

我正在尝试使用Connman来管理我的嵌入式系统的WiFi连接,因为它可以自动处理任何类型的保护.

在交互模式下,它非常简单:

  1. connmanctl
  2. 代理人
  3. 扫描wifi
  4. 服务
  5. 请求输入密码

在我的系统上,用户使用远程(Web)应用程序输入WiFi凭证(SSID,密码).然后我将使用此信息使用脚本设置co​​nnman.

目标是避免用户选择要设置的保护类型.我的意思是,大多数用户只输入SSID /密码,但他们不知道它是WPA-PSK还是WEP连接.

我正在阅读文档,但我不确定哪种方法是正确的:

但据我了解,我需要指定安全类型:

安全性:网络的安全类型.可能的值是'psk'(WPA/WPA2 PSK),'ieee8021x'(WPA EAP),'none'和'wep'.未设置时,如果配置了EAP类型,则默认值为"ieee8021x";如果存在密码短语,则为"psk",否则为"none".

如果省略该字段,似乎不处理'wep'.

在这里,我理解它需要一个"代理"来提供密码,因此我担心我无法以编程方式发送它.

你有什么建议吗?

connection agent wifi connman

7
推荐指数
0
解决办法
927
查看次数

Bluetoothctl 无需任何用户交互

现在我可以通过这种方式成功配对并将手机连接到我的机器,而无需任何用户交互:

$bluetoothctl
#power on
#discoverable on
#pairable on
#agent NoInputNoOutput
#default-agent
Run Code Online (Sandbox Code Playgroud)

我从我的手机中搜索 BT 设备,它会自动配对和连接。现在我有两个问题:

  1. 它仍然要求授权服务:

    授权服务

    [代理] 授权服务 0000110e-0000-1000-8000-00805f9b34fb(是/否):

但这不好,因为我已经指定了NoInputNoOutput

  1. 如何信任一个设备?打字就足够了,trust但出于同样的原因,我需要自动执行此操作。

一般来说,是否有任何可靠的 C++ 库来处理蓝牙连接和 A2DP 和 HFP 等常见配置文件?

linux bluetooth agent a2dp hfp

7
推荐指数
1
解决办法
3202
查看次数

配置和多线程

当我需要从源代码编译应用程序时(我在 Linux 环境中谈论),基本上过程如下:

  • 下载并提取源代码
  • ./configure [可选参数]
  • 制作
  • 进行安装

通常我会传递-j4tomake以便使用所有 CPU 资源并加快(很多!)编译过程。

我想知道是否有类似的东西configure通常需要花费大量时间来执行。当然,我已经尝试过传递相同的选项,但它失败了,并且我在configure --help.

multithreading makefile compilation configure

5
推荐指数
1
解决办法
2819
查看次数

msys2 找不到 mingw64

我下载了:

https://mingw-w64.org/doku.php/download/mingw-builds

https://mingw-w64.org/doku.php/download/msys2

并将它们安装在C:/development/msys64. 在此文件夹下,我找到了 msys2.exe 和 mingw64 文件夹,该文件夹又包含 bin 和所有 mingw 可执行文件。

我将C:/development/msys64/mingw64/bin文件夹添加到 PATH env var。事实上,我可以从 Windows 提示中调用 gcc - 例如。相反,在 msys2 shell 中,我找不到它们。我的意思是,他们在,/mingw64/bin但他们在提示时不可用。

我确定我错过了一些步骤!

windows mingw msys2

5
推荐指数
2
解决办法
8034
查看次数

.NET控制台SignalR客户端与.NET核心SignalR服务器

我需要在.NET控制台和ASP.NET Core 2.0应用程序之间交换数据.第二个已经托管了SignalR服务器:

public class MyHub : Hub
{
    public override async Task OnConnectedAsync()
    {
        await Clients.All.InvokeAsync("Send", $"{Context.ConnectionId} connected");
    }

    public Task Send(string message)
    {
        return Clients.All.InvokeAsync("Send", $"{Context.ConnectionId}: {message}");
    }
}

app.UseSignalR(routes =>
{
     routes.MapHub<MyHub>("hubs");
});
Run Code Online (Sandbox Code Playgroud)

从html页面我可以调用这些函数.因此它正在发挥作用.现在我在解决方案中添加了一个.NET 4.6控制台应用程序:

public static HubConnection _connection;

static void Main(string[] args)
{
    _connection = new HubConnection("http://localhost:51278/hubs");
    var myHub = _connection.CreateHubProxy("MyHub");

    _connection.Closed += OnDisconnected;
    OnDisconnected();

    myHub.Invoke<string>("Send", "Hello World ").ContinueWith(task => {
        if (task.IsFaulted)
        {
            Console.WriteLine("There was an error calling send: {0}", task.Exception.GetBaseException());
        }
        else
        {
            Console.WriteLine(task.Result); …
Run Code Online (Sandbox Code Playgroud)

c# signalr asp.net-core

4
推荐指数
1
解决办法
2596
查看次数