我从很多方面阅读了很多从html5页面获取图像的方法.我仍然不确定什么是最符合我需求的:
至少有三种解决方案:
<input type="file" accept="image/*;capture=camera">Navigator.getUserMedia() (似乎已弃用)MediaDevices.getUserMedia() (似乎是实验性的)无论如何,我看到很多例子将相机嵌入到页面中,(w/ getUserMedia)所以我不知道我是否只能依赖第一种方法.
我不明白官方文档中有关依赖注入的段落。
他们说我可以使用控制器(但从这里我知道我不需要它,因为我正在使用 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 的构造函数。另一方面,如果我添加参数,当我调用构造函数时,我必须传递正确的值,如上面的示例所示 - 这是最初的问题。
c# dependency-injection entity-framework-core asp.net-core-mvc asp.net-core
我正在使用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) 正如有人在评论中指出的那样,Razor页面不像你以前在MVC那样需要控制器.我现在也是Razor没有按钮点击事件的原生处理.要在用户单击按钮时执行某些操作(在"代码隐藏"中),我们至少有两个选项:
我找到了很多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) 我需要在具有相当大延迟的系统中调整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设置为一个巨大的值,则噪声太大).
任何的想法?
我正在尝试使用Connman来管理我的嵌入式系统的WiFi连接,因为它可以自动处理任何类型的保护.
在交互模式下,它非常简单:
在我的系统上,用户使用远程(Web)应用程序输入WiFi凭证(SSID,密码).然后我将使用此信息使用脚本设置connman.
目标是避免用户选择要设置的保护类型.我的意思是,大多数用户只输入SSID /密码,但他们不知道它是WPA-PSK还是WEP连接.
我正在阅读文档,但我不确定哪种方法是正确的:
但据我了解,我需要指定安全类型:
安全性:网络的安全类型.可能的值是'psk'(WPA/WPA2 PSK),'ieee8021x'(WPA EAP),'none'和'wep'.未设置时,如果配置了EAP类型,则默认值为"ieee8021x";如果存在密码短语,则为"psk",否则为"none".
如果省略该字段,似乎不处理'wep'.
在这里,我理解它需要一个"代理"来提供密码,因此我担心我无法以编程方式发送它.
你有什么建议吗?
现在我可以通过这种方式成功配对并将手机连接到我的机器,而无需任何用户交互:
$bluetoothctl
#power on
#discoverable on
#pairable on
#agent NoInputNoOutput
#default-agent
Run Code Online (Sandbox Code Playgroud)
我从我的手机中搜索 BT 设备,它会自动配对和连接。现在我有两个问题:
它仍然要求授权服务:
授权服务
[代理] 授权服务 0000110e-0000-1000-8000-00805f9b34fb(是/否):
但这不好,因为我已经指定了NoInputNoOutput!
trust但出于同样的原因,我需要自动执行此操作。一般来说,是否有任何可靠的 C++ 库来处理蓝牙连接和 A2DP 和 HFP 等常见配置文件?
当我需要从源代码编译应用程序时(我在 Linux 环境中谈论),基本上过程如下:
通常我会传递-j4tomake以便使用所有 CPU 资源并加快(很多!)编译过程。
我想知道是否有类似的东西configure通常需要花费大量时间来执行。当然,我已经尝试过传递相同的选项,但它失败了,并且我在configure --help.
我下载了:
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但他们在提示时不可用。
我确定我错过了一些步骤!
我需要在.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) asp.net-core ×3
c# ×3
agent ×2
javascript ×2
a2dp ×1
android ×1
bluetooth ×1
camera ×1
compilation ×1
configure ×1
connection ×1
connman ×1
delay ×1
getusermedia ×1
hfp ×1
html5 ×1
linux ×1
makefile ×1
mingw ×1
msys2 ×1
quaggajs ×1
razor-pages ×1
signalr ×1
temperature ×1
wifi ×1
windows ×1