Я подключаюсь через последовательный порт с PowerShell к устройству, и я пытаюсь изменить одно значение, пока другое значение не станет равным 0. Я использую До-До, но он просто бесконечно работает с изменением первого значения снова и снова.
Что мне нужно сделать , это, сначала я проверяю Value2
ака $line1
если это не 0, мне нужно проверить Value1
ака V45
добавить 10 к ней, послать команду , чтобы изменить его и перезагрузить устройство, а затем снова проверьте Value2
и если это не 0 повтор.
Я попробовал Do-While($line -ne 0)
, Do-Until($line -le 0)
с тем же результатом.
Когда я попробовал Do-Until($line -ne 0)
он остановился после первого запуска с изменением Value1 (выше) и Value2 (ниже). Я запускал скрипт 3-4 раза и в итоге Value2 добрался до 0.
Я предполагаю, что у меня что-то не так в заявлении «До» (пока), и я этого не вижу.
$port.WriteLine("R?`r")
$string1 = $port.ReadLine()
$line1 = [int]($string1 -split ",")[11]
if($line1 -ne 0){
do{
$port.WriteLine("V45?`r")
$v45 = [int]$port.ReadLine()+10
$port.WriteLine("V45,${v45}`r")
$port.ReadLine()
$port.WriteLine("RST`r")
$port.ReadLine()
$port.ReadLine()
$port.WriteLine("R?`r")
$string = $port.ReadLine()
$line = [int]($string1 -split ",")[11]
}until($line -eq 0)
}