我有一定数量的外部设备,我们称之为东西.每个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插槽.我只是无法将它们映射到一起,这就是我需要的.我必须忽略一些事情或者不提出正确的问题,因为这对我来说是一件非常普遍的事情.
谢谢您的帮助.
我正在尝试将Sphinx doc输出构建为PDF而不是HTML.我只能使用Sphinx附带的工具,即我无法下载rst2pdf等附加工具.我已经尝试使用'make latexpdf',根据Sphinx文档,它说明除了.tex文件之外它还会生成pdf.但是我只得到.tex.我错过了什么?Sphinx文档声明将生成PDF文件.
我在 Windows HPC 集群上运行 Python 脚本。脚本中的函数使用starmap
来自multiprocessing
包的函数来并行化某个计算密集型过程。
当我在一台非集群机器上运行脚本时,我获得了预期的速度提升。当我登录到一个节点并在本地运行脚本时,我获得了预期的速度提升。但是,当作业管理器运行脚本时,速度提升multiprocessing
要么完全缓解,要么有时甚至慢 2倍。我们注意到在starmap
调用函数时会发生内存分页。我们认为这与 Python 的 性质有关multiprocessing
,即为每个内核启动一个单独的 Python 解释器这一事实。
由于我们从单个节点的控制台成功运行,我们尝试使用 运行脚本HPC_CREATECONSOLE=True
,但无济于事。
在运行使用 的 Python 脚本时,我们应该使用作业管理器中的某种设置multiprocessing
吗?难道multiprocessing
只是不适合HPC集群?
在Python 3.x中,我正在使用大型numpy数组.我想确认(无需实际进行某种实验)我编写的方法要么使用数组的副本,要么正在使用对数组的直接引用.
我想确认有问题的数组已经或未被修改过.
在C++中,如果我想确保一个对象没有被修改,我可以将它作为一个const ...在Python中传递,我似乎没有这样的保证,必须要格外小心.
总而言之:我需要一种方法来判断是否有一个numpy数组的副本.我需要一种方法来判断数组(或任何对象)是否已被修改.我更喜欢快速,自动的方式,而不是必须做一个实验.
我想创建一个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) 我想创建一个__str__
方法,根据用户的选择创建各种格式的字符串.
我提出的最好的__str__(**kwargs)
方法是制作一个方法,这似乎工作正常,但它与str(obj)
或不兼容print(obj)
.换句话说,我必须使用print(obj.__str__(style='pretty'))
而不是print(obj, style='pretty')
.