bluetooth в linux

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

Модератор: immortal

Killer_Angel
Сообщения: 38
Зарегистрирован: Сб дек 01, 2012 9:05 am
Благодарил (а): 0
Поблагодарили: 1 раз

Re: bluetooth в linux

Сообщение Killer_Angel » Сб дек 08, 2012 3:25 pm

продолжаем :
устройства исправно находять/теряються, но метод не отрабатывает (
скрины с скриптом :
Изображение
Изображение

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

$tm=registeredEventTime('bluetooth_found_'.$params['mac']); 
if ($params['user']!='') {
  registerEvent('bluetooth_found_'.$params['mac']); 
  $tm2=registeredEventTime('bluetooth_lost_'.$params['mac']); 
  if (((time()-$tm)>1*60*60  || $tm<0) &&
      ((time()-$tm2)>1*60*60  || $tm2<0)
      ) {
   say($params['user'].' уже дома');
//здесь можно проверку
if ($params['mac']=='11:4b:4b:6c:bb:ff') {
 say("появилось устройство такое-то");
}
if ($params['mac']=='11:4B:4B:6C:BB:FF') {
 say("появилось устройство иное");
}

if ($params['user']=='какой-то пользователь') {
 say("появился пользователь такой-то");
}
  }
}

 if ($params['new']) {
  say('Обнаружено новое блютуз устройство');
 }

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

// device lost
say('устройство потеряно');
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: bluetooth в linux

Сообщение sergejey » Сб дек 08, 2012 3:51 pm

Попробуй этот код упростить

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

$tm=registeredEventTime('bluetooth_found_'.$params['mac']);
if ($params['user']!='') {
  registerEvent('bluetooth_found_'.$params['mac']);
  $tm2=registeredEventTime('bluetooth_lost_'.$params['mac']);
  if (((time()-$tm)>1*60*60  || $tm<0) &&
      ((time()-$tm2)>1*60*60  || $tm2<0)
      ) {
   say($params['user'].' уже дома');
//здесь можно проверку
if ($params['mac']=='11:4b:4b:6c:bb:ff') {
 say("появилось устройство такое-то");
}
if ($params['mac']=='11:4B:4B:6C:BB:FF') {
 say("появилось устройство иное");
}

if ($params['user']=='какой-то пользователь') {
 say("появился пользователь такой-то");
}
  }
}

 if ($params['new']) {
  say('Обнаружено новое блютуз устройство');
 }
до вот такого

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

$tm=registeredEventTime('bluetooth_found_'.$params['mac']);
if ($params['mac']=='11:4b:4b:6c:bb:ff') {
 say("появилось устройство такое-то");
}
if ($params['mac']=='11:4B:4B:6C:BB:FF') {
 say("появилось устройство иное");
}
if ($params['new']) {
 say('Обнаружено новое блютуз устройство');
}
заморочки с event-ами были добавлены для того, чтобы исключить временные пропадания пользователя из видимости

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Killer_Angel
Сообщения: 38
Зарегистрирован: Сб дек 01, 2012 9:05 am
Благодарил (а): 0
Поблагодарили: 1 раз

Re: bluetooth в linux

Сообщение Killer_Angel » Сб дек 08, 2012 4:18 pm

не работает, т.е. : прописал, сохранил, проверил что сохранилось
выключил бт на телефоне, посмотрел чтобы в базе он упал вниз по сравнению с теми которые прописаны и видит, включил бт на телефоне, опять в табличке посмотрел что mac телефона он поднялся на верх, но реакции нет :/
что/где посмотреть ?
Killer_Angel
Сообщения: 38
Зарегистрирован: Сб дек 01, 2012 9:05 am
Благодарил (а): 0
Поблагодарили: 1 раз

Re: bluetooth в linux

Сообщение Killer_Angel » Вс дек 09, 2012 2:25 am

заставил вызывать объект только грязным хаком (
после не работающего

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

getObject('BlueDev')->raiseEvent("Found", array('mac'=>$mac, 'user'=>$user['NAME'],'new'=>$new));
вставил костыль

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

system('php /var/www/vhost/ihome.home/objects/index.php BlueDev.Found mac:"'.$mac.'" user:"'.$user['NAME'].'"');
PS: и еще почему-то при подобном вызове с lost, выставляется не тот mac, хотя пользователь тот

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

getObject('BlueDev')->raiseEvent("Lost", array('mac'=>$k, 'user'=>$user['NAME']));
system('php /var/www/vhost/ihome.home/objects/index.php BlueDev.Lost mac:"'.$mac.'" user:"'.$user['NAME'].'"');
Ответить