1

Получить разницу данных

(11/06/2015 11:39:38 отредактировано arivano)

Тема: Получить разницу данных

Имеется следующая модель: бензовозы и заправки оборудованы трекерами, счетчиками УСС, считывателями RFID. На каждое ТС заведены в водителях карточка, которая используется при заправке. Требуется зарегистрировать событие заправки на самом ТС. Для этого была подсказана идея отсылки запроса в момент снятия водителя (забрали карточку со считывателя) на промежуточный сервер, который уже сам будет регистрировать событие на объекте на основании данных из принятого POST-запроса.
Вопрос в следующем: как получить разницу показаний некоторого датчика объекта (счетчик УСС) от момента назначения водителя до момента снятия.
Либо придется выполнять 2 запроса (в момент назначения и снятия водителя). а уже на вспомогательном сервере проводить расчеты и последующую обработку, чего хотелось бы избежать.

2

Получить разницу данных

Re: Получить разницу данных

Добрый день

Значение из прошлого (момент назначения водителя) просто так получить не получиться, потребуется дополнительная логика.
Возможный вариант решения вы уже озвучили - слать 2 запроса и обрабатывать на промежуточном сервере.
Другой вариант - при получении запроса на промежуточном сервере "покопаться" в истории и получить значение датчика в момент назначения водителя с помощью Remote API.

Сходу тяжело сказать, что реализовать проще. Я бы рекомендовал первый вариант.

3

Получить разницу данных

Re: Получить разницу данных

Спасибо! Пока что сделаю 2 запроса, каждый со своими признаками в параметрах. Первый - назначение водителя, второй снятие. И буду вычислять разницу между значениями датчиков.

4

Получить разницу данных

Re: Получить разницу данных

Там, где два запроса, там и третий - на отчет с одной таблицей - статистика и одним полем - Показания датчиков счетчиков, а интервал перед этим вы уже получили.

5

Получить разницу данных

Re: Получить разницу данных

Кривенько, конечно, но начало только:

<?php
include ('srv.php');
    $MySQLSelectedDB = mysql_select_db('dbr', $srv);
    mysql_query('SET NAMES utf8');
$datch1 = str_getcsv($_POST['param6'],",",":");
$datch = str_getcsv($datch1[0],":");
$p0 = $_POST['param0'];
$query = "INSERT INTO zapr_ (prizn, bzv, unit, polozen, zone, timen, datchic) VALUES (".$p0.",'".$_POST['param1']."', '".$_POST['param2']."', '".$_POST['param3']."', '".$_POST['param4']."', FROM_UNIXTIME(".$_POST['param5']."), '".$datch[1]."')";
//file_put_contents('query.txt', $query);
$result = mysql_query($query) or die('Запрос не удался: ' . mysql_error());
// Освобождаем память от результата
mysql_free_result($result);
IF ($p0==1)
{//Вычисление значение и вносим во вторую таблицу
$query = "SELECT MAX(timen), bzv, unit, polozen, zone, datchic from zapr_ where bzv='".$_POST['param1']."' and timen<FROM_UNIXTIME(".$_POST['param5'].")";
//file_put_contents('query0.txt', $query);
$result = mysql_query($query) or die('Запрос не удался: ' . mysql_error());
$row = mysql_fetch_row($result);
mysql_free_result($result);
$datch = $_POST['param6']-$row[5];
$query = "INSERT INTO zapr_1 (prizn, bzv, unit, polozen, zone, timen, datchic) VALUES (1,'".$_POST['param1']."', '".$row[2]."', '".$_POST['param3']."', '".$_POST['param4']."', FROM_UNIXTIME(".$_POST['param5']."), '".$datch."')";
//file_put_contents('query1.txt', $query);
$result = mysql_query($query) or die('Запрос не удался: ' . mysql_error());
// Освобождаем память от результата
mysql_free_result($result);
} 
mysql_close($srv);
//    include('wialon.php'); //В процессе
//    $wialon_api = new Wialon();
//    $result = $wialon_api->login('login','password');
//    $json = json_decode($result, true);
//    if(!isset($json['error'])){
//        //echo $wialon_api->core_search_item('{"id":717359,"flags":0x1}');
//        echo $json['eid'];
//    echo '<br>';
//    echo $json['user']['nm'];
//    $wialon_api->logout();
//    } else {
//        echo WialonError::error($json['error']);
//    }
?>
6

Получить разницу данных

Re: Получить разницу данных

)))Отчет по заправкам*? ... а его нет....ну нужно реализовать...)))

S&M Groups