Я подключаюсь через последовательный порт с 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)
}
