Страница 1 из 2

Нужна помощь

Добавлено: Вс апр 12, 2015 9:57 pm
kostya77
Товарищи программы помогите соединить эти три куска в один

1

$UPS_state=exec("upsc APC@localhost input.voltage");
{
setGlobal("input_voltage", $UPS_state);
break;
};



2

$vol=exec("upsc APC@localhost battery.charge");
{
setGlobal("battery_charge",$vol);
break;
};


3

$UPS_state3=exec("upsc APC@localhost battery.voltage");

{
setGlobal("battery_voltage", $UPS_state3);
break;
};

Re: Нужна помощь

Добавлено: Вс апр 12, 2015 11:32 pm
LutsenkoDenis
что в приведенном куске кода делает break?

Из примера не ясно зачем это объединять.

Re: Нужна помощь

Добавлено: Пн апр 13, 2015 5:44 pm
kostya77
LutsenkoDenis писал(а):что в приведенном куске кода делает break?

Из примера не ясно зачем это объединять.
Есть три скрипта для получения данных с упса .
Хотелось в один скрипт что бы было , если в одном скрипте запускаю то получаю только первое значение ,а остальные уже не получаю .
У конекте в примерах нашел пример ,если что то не так помогите плыз исправить .

Re: Нужна помощь

Добавлено: Пн апр 13, 2015 5:49 pm
LutsenkoDenis
не пойму...
то, что нужен один скрипт понятно.
не понятно вот что:
При выполнении скрипта нужно получить одно значение или все?
Если одно, то какое-то определённое или первое попавшееся?

Про break спрашивал как раз по тому, что его используют при работе с каким-либо условием.
типа так

Код: Выделить всё

switch(выражение) {
case значение1: команда1; [break;]
case значение2: команда2; [break;]
. . .
case значениеN: командаN; [break;]
[default: команда_по_умолчанию; [break]]
}
, а в твоем примере это условие отсутствует и из примера не понятно чего ты хотел.

Re: Нужна помощь

Добавлено: Пн апр 13, 2015 6:33 pm
kostya77
upsc APC@localhost input.voltage
upsc APC@localhost battery.charge
upsc APC@localhost battery.voltage


Нужно получить три значения .
Если по отдельности у меня получается ,а как сразу нет.

Re: Нужна помощь

Добавлено: Пн апр 13, 2015 7:18 pm
LutsenkoDenis
Это не то?

Код: Выделить всё

$upsInputVoltage   = exec("upsc APC@localhost input.voltage");
$upsBatteryCharge = exec("upsc APC@localhost battery.charge");
$upsBatteryVoltage = exec("upsc APC@localhost battery.voltage");
Или ты хочешь значения как-то по другому получить?

Re: Нужна помощь

Добавлено: Пн апр 13, 2015 9:32 pm
kostya77
LutsenkoDenis писал(а):Это не то?

Код: Выделить всё

$upsInputVoltage   = exec("upsc APC@localhost input.voltage");
$upsBatteryCharge = exec("upsc APC@localhost battery.charge");
$upsBatteryVoltage = exec("upsc APC@localhost battery.voltage"); 
Или ты хочешь значения как-то по другому получить?

Исправил по твоему замечанию .
$UPS_state=exec("upsc APC@localhost input.voltage");
{
setGlobal("input_voltage", $UPS_state);
};

$vol=exec("upsc APC@localhost battery.charge");
{
setGlobal("battery_charge",$vol);
};

$UPS_state3=exec("upsc APC@localhost battery.voltage");
{
setGlobal("battery_voltage", $UPS_state3);
};


и все заработало .
Спасибо!

Re: Нужна помощь

Добавлено: Пн апр 13, 2015 10:00 pm
LutsenkoDenis
Смотрю тебе фигурные скобки понравились :)
Тут можно без них обойтись

Код: Выделить всё

$upsInputVoltage   = exec("upsc APC@localhost input.voltage");
$upsBatteryCharge = exec("upsc APC@localhost battery.charge");
$upsBatteryVoltage = exec("upsc APC@localhost battery.voltage");

setGlobal("input_voltage", $upsInputVoltage);
setGlobal("battery_charge", $upsBatteryCharge);
setGlobal("battery_voltage", $upsBatteryVoltage);
p.s. и немного занудства....
Функции и переменные желательно называть так, чтобы при просмотре написанного тобой месяц назад кода, ты мог быстро понять по названию функции что эта функция делает и что сохраняется в переменную.

Re: Нужна помощь

Добавлено: Пн апр 13, 2015 10:38 pm
kostya77
Я только учусь )
Спасибо .

Re: Нужна помощь

Добавлено: Ср апр 15, 2015 2:01 pm
zelevova
и еще немного занудства....
Перед занесением полученных данных в свойства, лучше делать проверку адекватности полученных значений. А то вдруг там ошибка и мы запишем "0" потому что упс недоступен.