我有四个web power switches,每个有八个可远程控制的电源插座,共有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小时。我觉得必须有一个更好的方法,但我一直无法想出任何东西。
答案 0 :(得分: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。
答案 1 :(得分: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分钟内结束。