Помогите понять ,что с кодом не так

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

ahelper
Сообщения: 106
Зарегистрирован: Ср фев 08, 2017 5:04 pm
Благодарил (а): 34 раза
Поблагодарили: 67 раз

Помогите понять ,что с кодом не так

Сообщение ahelper » Чт мар 09, 2017 9:01 pm

Пытаюсь разобраться с отображением статуса питания системы от блока питания или АКБ на нетбуке с Ubuntu. В свойствах объекта ThisComputer.AC_adapter выводятся два состояния 'on-line' и 'off-line'. Но код не работает, говорит "Пункт третий".

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

//$i='on-line';
$i=getGlobal("ThisComputer.AC_adapter");

switch ($i) {
    case 'on-line':
        say("Пункт первый",5);
        break;
    case 'off-line':
        say("Пункт второй",5);
        break;
 default:
  say("Пункт третий",5);
} 
Если первую строку поменять со второй то работает, говорит "Пункт первый". Получается код не видит состояние объекта, почему?
anapogo
Сообщения: 36
Зарегистрирован: Сб дек 31, 2016 5:28 pm
Благодарил (а): 8 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Помогите понять ,что с кодом не так

Сообщение anapogo » Чт мар 09, 2017 11:58 pm

Значит getGlobal("ThisComputer.AC_adapter") выдает что-то третье. А что именно? Посмотрите, хотя-бы через DebMes($i); и тогда уже делайте выводы.
За это сообщение автора anapogo поблагодарил:
ahelper (Пт мар 10, 2017 8:03 pm)
Рейтинг: 1.16%
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Помогите понять ,что с кодом не так

Сообщение Bagir » Пт мар 10, 2017 8:27 am

А лучше даже так

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

DebMes('<'.$i.'>');
Это позволит отловить паразитные пробелы.
За это сообщение автора Bagir поблагодарил:
ahelper (Пт мар 10, 2017 8:03 pm)
Рейтинг: 1.16%
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
anapogo
Сообщения: 36
Зарегистрирован: Сб дек 31, 2016 5:28 pm
Благодарил (а): 8 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Помогите понять ,что с кодом не так

Сообщение anapogo » Пт мар 10, 2017 9:48 am

Bagir, а подскажите, что нужно подключить в моем php-скрипте в корне сервера, чтобы работал "DebMes"?
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Помогите понять ,что с кодом не так

Сообщение Bagir » Пт мар 10, 2017 10:33 am

На сколько я знаю, DebMes должен работать из любых методов и сценариев. А если речь идет об отдельном php файле, то можно посмотреть такой php файлик, например в теме для контроллера MegaD
За это сообщение автора Bagir поблагодарил:
anapogo (Пт мар 10, 2017 11:37 pm)
Рейтинг: 1.16%
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: Помогите понять ,что с кодом не так

Сообщение dmw » Пт мар 10, 2017 11:57 am

anapogo писал(а):Bagir, а подскажите, что нужно подключить в моем php-скрипте в корне сервера, чтобы работал "DebMes"?
у Вас есть пустой шаблон для своих php-скриптов: /scripts/sample.php, берите его и добавляйте все что нужно.
Вот он на гитхабе: https://github.com/sergejey/majordomo/b ... sample.php
За это сообщение автора dmw поблагодарил:
anapogo (Пт мар 10, 2017 11:38 pm)
Рейтинг: 1.16%
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Помогите понять ,что с кодом не так

Сообщение Bagir » Пт мар 10, 2017 1:49 pm

Да я на базе него и писал megad.php :) Просто подл рукой ссылки на пустой шаблон не было.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
ahelper
Сообщения: 106
Зарегистрирован: Ср фев 08, 2017 5:04 pm
Благодарил (а): 34 раза
Поблагодарили: 67 раз

Re: Помогите понять ,что с кодом не так

Сообщение ahelper » Пт мар 10, 2017 3:52 pm

Вот что в логе: 15:26:27 0.96352300 <on-line
>
Вроде бы нет пробелов? Или перенос строки есть, то как его прописать?
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Помогите понять ,что с кодом не так

Сообщение olehs » Пт мар 10, 2017 3:56 pm

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

...
  switch (trim($i)) {
...
За это сообщение автора olehs поблагодарил:
ahelper (Пт мар 10, 2017 8:02 pm)
Рейтинг: 1.16%
ahelper
Сообщения: 106
Зарегистрирован: Ср фев 08, 2017 5:04 pm
Благодарил (а): 34 раза
Поблагодарили: 67 раз

Re: Помогите понять ,что с кодом не так

Сообщение ahelper » Вт мар 21, 2017 5:34 pm

Подскажите как правильно записать строку возврата громкости?

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

// Запоминаем состояние громкости
  $cur_vol=gg('ThisComputer.volumeLevel');
  
// Меняем громкость
  $vol=gg("AlarmOne.AlarmVol");
  callMethod('ThisComputer.VolumeLevelChanged', array('VALUE'=>$vol));
  sleep(5);

// Возвращаем громкость
  SetTimeOut("AlarmOne_Volume",'callMethod("ThisComputer.VolumeLevelChanged", (array('VALUE'=>$cur_vol)));', 60*30);
Возврат громкости пишет ошибку "Parse error: syntax error, unexpected 'VALUE' (T_STRING)". Или как можно по другому задержку сделать.
Ответить