小编Tre*_*kie的帖子

将N插播设备映射到PCI插槽ID,C#

我有一定数量的外部设备,我们称之为东西.每个Thing通过插入PCI插槽的PnP卡与计算机连接.每张卡都有4个端口.我需要获得每个Thing的UID,并且在重新启动之间保持一致.请注意,Things没有我可以访问的内置UID.

我解决这个问题的想法是为卡上的每个端口获取一个UID.在我看来,我只需要弄清楚每个插卡插入哪个PCI插槽.这不会在重启时发生变化,当然端口也会按照相同的顺序...所以我基本上可以用UID标记每个端口,并知道每个与之关联的UID.

我已经做了一些搜索,以找出最常用的C#对象.我找到的最接近的是图书馆的ManagementObjectSearcher对象System.Management.这是我编写的一些简单代码,看看这是否能让我得到我想要的东西:

static void Main(string[] args)
{
    IDsearch();
    Console.ReadLine();
}

static void IDsearch()
{
    ManagementObjectSearcher searcher =
        new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_PnPEntity");

    foreach (ManagementObject queryObj in searcher.Get())
    {
        Console.WriteLine("DeviceID: {0}", queryObj["DeviceID"]);
        Console.WriteLine("Description: {0}", queryObj["Description"]);
    }
}
Run Code Online (Sandbox Code Playgroud)

这会为我的计算机上的每个PnP设备生成如下输出:

DeviceID: ACPI\GENUINEINTEL_-_INTEL64_FAMILY_6_MODEL_60_-_INTEL(R)_CORE(TM)_I7-4790_CPU_@_3.60GHZ\_1
Description: Intel Processor

DeviceID: USB\VID_0CF3&PID_3004\ALASKA_DAY_2006
Description: Dell Wireless 1535C Bluetooth Device
Run Code Online (Sandbox Code Playgroud)

如果我还可以获得PCI插槽号,这符合我的要求.

我也遇到过这个Win32_SystemSlot课程,但这似乎并没有让我对插入插槽的内容进行描述!所以在这一点上,我可以获得没有PCI插槽的描述......以及没有描述的PCI插槽.我只是无法将它们映射到一起,这就是我需要的.我必须忽略一些事情或者不提出正确的问题,因为这对我来说是一件非常普遍的事情.

谢谢您的帮助.

c# hardware

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

使用latexpdf的Sphinx PDF输出

我正在尝试将Sphinx doc输出构建为PDF而不是HTML.我只能使用Sphinx附带的工具,即我无法下载rst2pdf等附加工具.我已经尝试使用'make latexpdf',根据Sphinx文档,它说明除了.tex文件之外它还会生成pdf.但是我只得到.tex.我错过了什么?Sphinx文档声明将生成PDF文件.

pdf latex python-3.x python-sphinx

6
推荐指数
1
解决办法
5236
查看次数

在 HPC 集群上使用 Python 多处理

我在 Windows HPC 集群上运行 Python 脚本。脚本中的函数使用starmap来自multiprocessing包的函数来并行化某个计算密集型过程。

当我在一台非集群机器上运行脚本时,我获得了预期的速度提升。当我登录到一个节点并在本地运行脚本时,我获得了预期的速度提升。但是,当作业管理器运行脚本时,速度提升multiprocessing要么完全缓解,要么有时甚至慢 2倍。我们注意到在starmap调用函数时会发生内存分页。我们认为这与 Python 的 性质有关multiprocessing,即为每个内核启动一个单独的 Python 解释器这一事实。

由于我们从单个节点的控制台成功运行,我们尝试使用 运行脚本HPC_CREATECONSOLE=True,但无济于事。

在运行使用 的 Python 脚本时,我们应该使用作业管理器中的某种设置multiprocessing吗?难道multiprocessing只是不适合HPC集群?

hpc distributed-computing multiprocessing python-3.x

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

如何验证何时在Python中创建副本?

在Python 3.x中,我正在使用大型numpy数组.我想确认(无需实际进行某种实验)我编写的方法要么使用数组的副本,要么正在使用对数组的直接引用.

我想确认有问题的数组已经或未被修改过.

在C++中,如果我想确保一个对象没有被修改,我可以将它作为一个const ...在Python中传递,我似乎没有这样的保证,必须要格外小心.

总而言之:我需要一种方法来判断是否有一个numpy数组的副本.我需要一种方法来判断数组(或任何对象)是否已被修改.我更喜欢快速,自动的方式,而不是必须做一个实验.

python arrays numpy python-3.x

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

我需要一个简单的例子,将2D数组传递给C中的函数

我想创建一个C函数,它将一个二维2D数组作为参数,并通过索引操作该数组,例如printf("%f ", array[i][j]).

我从各种例子和SO问题拼凑起来的是这样的:

void printArray(double **array, int m, int n)
{
    int i, j;
    for (i = 0; i < m; i++) 
    {
        for (j = 0; j < n; j++) 
        {
             printf("%f ", array[i][j]);
        }
    printf("\n");
    }
}
Run Code Online (Sandbox Code Playgroud)

main,我能够像这样成功打印数组:

int i, j, k = 0, m = 5, n = 6;
double **a = malloc(m * sizeof(*a));

//Initialize the arrays
for (i = 0; i < m; i++) 
{
    a[i] = malloc(n * sizeof(*(a[i]))); …
Run Code Online (Sandbox Code Playgroud)

c arrays function-parameter multidimensional-array

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

什么是使用不同格式选项实现__str__方法的Pythonic方法?

我想创建一个__str__方法,根据用户的选择创建各种格式的字符串.

我提出的最好的__str__(**kwargs)方法是制作一个方法,这似乎工作正常,但它与str(obj)或不兼容print(obj).换句话说,我必须使用print(obj.__str__(style='pretty'))而不是print(obj, style='pretty').

python string-formatting python-3.x

0
推荐指数
1
解决办法
492
查看次数