1

我有四个网络电源开关,每个开关有八个遥控电源插座,总共有 32 个电源插座。我有一个连接到每个插座的被测设备。这些被测设备已联网并具有 SSH。它们被设计为在两分钟内启动,但由于是开发中的原型,它们有时需要十分钟才能启动。它们还容易随机崩溃、冻结或以其他方式变得无响应。

我正在寻找一种将设备映射到电源插座的可靠、高效、自动化的方法。我目前的方法可靠且自动化,但速度很慢:

turn off all outlets
for each outlet:
    turn outlet on
    wait ten minutes
    try to connect to all devices
    store all responsive devices in a list
    turn the outlet off
    try to connect to the devices in the responsive list
    if any are no longer responsive, map them to this outlet
turn on all outlets

正如您可以计算的那样,每个插座大约需要 10 分钟,而 10 分钟 x 32 是 320 分钟,或超过 5 小时。我觉得必须有更好的方法,但我一直想不出任何办法。

4

2 回答 2

2

让我们假设网点的编号从 0 到 31。

第一次尝试:打开所有奇数插座并注意哪些设备有响应

第二次尝试:打开所有在其编号的二进制表示中第二位为 1 的插座(即 2、3、6、7、10、11,...)

第三次尝试:打开所有在其编号的二进制表示中第三位为 1 的插座(即 4、5、6、7、12、13、14、15,...)

...

第五次尝试:打开所有数字> = 16的插座

现在,在某些尝试中,每台设备都有响应。如果您再次将结果写为二进制数,您将获得插座的编号。

例如,如果一个设备在尝试 5、3、2 中处于活动状态,而在 4 和 1 中处于非活动状态,我们得到 10110,即 22。所以这个设备必须连接到插座 22。

于 2013-02-06T17:18:48.113 回答
1

笔记:

  • 这是一种乐观的方法,您的设备工作得越好,它工作得越快越好
  • 它使用的事实(如您I have a device under test connected to each outlet.所说)存在插座与设备的 1:1 映射

这个顺序基本上颠倒了你的顺序,因为这样你只需要等待 10 分钟(最多)一次 - 每个周期,见下文。

turn on all outlets
wait for all devices to become active for up to ten minutes
   (but interrupt waiting once you see a number of devices corresponding 
    to the number of outlets turned on)
store responsive devices
for each outlet:
    turn outlet off
    try to connect to all devices remaining on the responsive list
    if any are no longer responsive, map them to this outlet

很可能您最终会得到一个尚未映射的设备和插座列表,因此您可以只使用未映射的插座重复此循环,直到没有插座或直到您用完时间。

因此,在最好的情况下(所有设备都在正常时间内正确启动),您的测试将在 2 分钟多一点的时间内结束。

于 2013-02-06T17:57:43.857 回答