c# - Windows 服务是否是 "correct"与必须运行 Windows 的嵌入式系统上的硬件交互的选择?

标签 c# windows service camera embedded

我正在开发一个嵌入式系统,该系统涉及通过 USB 从多个相机模块收集数据。该计划最初是使用小型 Linux 系统,但相机的 Linux 驱动程序不支持使用它的任何功能(硬件触发、拍摄原始数据、某些像素格式等)。制造商提供了一个很好的 C# SDK,一切都可以在 Windows 上运行。我们现在正在研究使用小型 Windows 系统,例如新的英特尔计算棒或 Liva。

我想编写软件来从相机收集数据,因为它们是由系统另一部分触发的硬件,并将数据写入可移动磁盘。它应该可以通过 TCP/IP(硬线)进行远程控制。这听起来像是适合 Windows 服务权限的东西。这是一个好方法吗?

我最担心的是遇到安全/权限问题。我一直在阅读表明服务包含在“非交互式”窗口站中的内容,并且我不确定这对于能够访问设备等意味着什么。运行所有这些的机器将完全被 headless ,所以它必须一直工作。我正在继续自己研究在这里做正确的事情,但如果有相关经验的人可以给我一个"is"或“否”的建议以及一个很好的理由,那将对我有很大帮助。

最佳答案

需要考虑的一些事项:

  • 访问硬件/驱动程序是否有任何限制或所需的权限,以及哪个 Windows 身份允许您的服务进行(提升)访问?
  • 是否需要与用户界面进行任何交互?

对我来说,如果没有其他细节,如果不需要用户界面,Windows 服务似乎就能达到目的。

我还建议使用 Top Shelf用于在 .Net 中开发 Windows 服务,因为它简化并抽象了所有周围的复杂性,让您可以专注于应用程序需要实现的目标。

[注意:我不隶属于 Top Shelf 或其开发人员]

关于c# - Windows 服务是否是 "correct"与必须运行 Windows 的嵌入式系统上的硬件交互的选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27910148/

相关文章:

java - C# 和 Java 中的方法重载

java - 不同windows操作系统的JVM

python - 在后台运行基于 GUI 的应用程序的 .exe

c# - 在C#中合并相同类型的xml节点

C# 给带参数的对象属性赋值

c++ - 为什么构建同一个项目会为每个开发人员生成不同的 EXE 文件

c++ - 与 Windows(和 Windows Embedded CE)中的 CLOCK_MONOTONIC 类似的功能

c# - 设置一个 c# 方法范围的变量如何影响另一个?

java - 将服务绑定(bind)放在 onStart() 处是否不好?

c# - 我网格中的数据没有更新