1

JS API sensor control

Topic: JS API sensor control

hello developers can anybody replay sensor control examples in JS API. for example i need get ignation message. thanks

Великий и ужасный Гиоргий Каладзе
2

JS API sensor control

Re: JS API sensor control

Example of creating engine ignition sensor:
var sensor = {
            id: 0, //id
            n: "sensor1", //name
            t: "engine operation", // type
            d: "engine ignition sensor", // description
            m: "On/Off", // unit of measure
            p: "adc1", // parameter
            f: 0, // flags
            c: "", // config (any object)
            vt: 0, // validation type
            vs: 0, // validation sensor ID
            tbl: // sensor calculation table
                [{x: 0, a: 0, b: 0} {x: 13, a: 0, b: 1}] //if adc1 < 13 V engine is off
        };

unit.updateSensor(sensor, qx.lang.Function.bind(function(code, result) {
    if (code)
        alert("error");
    else
        alert("sensor updated");
}, this));


Getting values of all unit sensors:

    var sensors = unit.getSensors();
   
    for (var i in sensors) { //if(sensors[i].t == "engine operation") - if you want to work only with engine ignition sensors
        if (!sensors[i])
            continue;       
        var value = this.get_sensor_value(unit, sensors[i]);
        alert("name: " + sensors[i].n + " value: " + value);       
    }
   
    get_sensor_value: function(unit, sensor) {
        if (!sensor || !unit)
            return "N/A";
        var msg = unit.getLastMessage();
        var res = unit.calculateSensorValue(sensor, msg);
        if (res != -348201.3876) // constant of invalid value
            return res;
        return "N/A";
    }

Development Department
Gurtam
3

JS API sensor control

Re: JS API sensor control

Thanks, i'll try it... But it was very helpful answer! smile

Великий и ужасный Гиоргий Каладзе
4

JS API sensor control

Re: JS API sensor control

My Code is:

             var ign = unit.getSensors(); ign = ign[1].t;
             var val = unit.calculateSensorValue(ign, msg);
             console.log(val);

output is -348201.3876 how i can know engine is off or on? thanks.

Великий и ужасный Гиоргий Каладзе
5

JS API sensor control

Re: JS API sensor control

This is constant of "out of range value".

Out of range values

If a value received is out of range (the bounds are indicated in sensor properties), then the phrase Out of range is displayed as formatted value. To exclude such rows, flag the option Skip out of range values in the report template.

http://docs.gurtam.com/en/hosting/user/ … nge_values and comment #2 in code

Mobile Development
Gurtam
6

JS API sensor control

Re: JS API sensor control

thanks kopa for answer but can you replay me example how to get engine on or off? i can't understand what is out of range.

Великий и ужасный Гиоргий Каладзе
7

JS API sensor control

(edited by zuve 18/10/2012 17:19:56)

Re: JS API sensor control

get_sensor_value(unit, sensor) {
    if (!sensor || !unit)
        return "N/A";
    var msg = unit.getLastMessage();
    var res = unit.calculateSensorValue(sensor, msg);
    if (res != -348201.3876) // constant of invalid value
        return res;
    return "N/A";
}

var value = get_sensor_value(unit, sensor);
if (parseFloat(value))
    value = "on";
else
    value = "off";

it is not so useful if there isn't needfull parameter in last message. in such way you can request another message

Development Department
Gurtam
8

JS API sensor control

Re: JS API sensor control

i try that code like this:

var ign = unit.getSensors(); ign = ign[1].t;
            
            
            
                    var res = unit.calculateSensorValue(ign, msg);
                        if (parseFloat(res))
                        value = "on";
                        else
                        value = "off";
                        
                        console.log(value);

but it always returns ON.. it always parses float and its answer is on? i dont understand how it must work if all units returns -348201.3876 that value. what i do wrong?

Великий и ужасный Гиоргий Каладзе
9

JS API sensor control

Re: JS API sensor control

You miss one more check:
if (res != -348201.3876 && parseFloat(res))
                        value = "on";
                        else
                        value = "off";
-348201.3876 - is a constant of invalid value

Development Department
Gurtam
10

JS API sensor control

Re: JS API sensor control

its not works now all units shows me OFF smile do you know why?

Великий и ужасный Гиоргий Каладзе
11

JS API sensor control

Re: JS API sensor control

-348201.3876 means that msg not contains param which needs to calculate sensor value. On the monitoring site that value looks as "Unknown".

Mobile Development
Gurtam
12

JS API sensor control

Re: JS API sensor control

итак, значит если посмотреть на хостинге, то у 70 процентов всех подключенных у нас объектов на данный момент включенно зажигание, но приэтом не нашлось не одного устройства, которое через этот код

var ign = unit.getSensors(); ign = ign[1].t;
            
            
            
                    var res = unit.calculateSensorValue(ign, msg);
                        if (res != -348201.3876 && parseFloat(res))
                        value = "on";
                        else
                        value = "off";
                        
                        console.log(value);

показало бы зажигание открытым. В чем проблема?

Великий и ужасный Гиоргий Каладзе
13

JS API sensor control

Re: JS API sensor control

specifically for ignition sensor the values are:
0 - off
-348201.3876 -  no parameter to calculate sensor value
any other float - on

Development Department
Gurtam
14

JS API sensor control

Re: JS API sensor control

это я понимаю, но проблема в том, что этот код возращает -348201.3876 от всех устройств в независимости открыто у него зажигание или нет... При это не думайте что в посленем сообщение не передается параметр зажигания, в каждом сообщении всех типов устройств передается значение или ign = 1/0 или в параметре in1 или in2, но это все не так важно.
По идее указывая на хостинге в настройках сенсора, тип сенсора "датчик зажигания", что датчиком зажигания будет такой-то параметр, должно же быть воможным достать эту информацию обратно через SDK...

Почему запрашивая параметр датчика зажигания этим кодом:

var ign = unit.getSensors(); ign = ign[1].t;
            
            
            
                    var res = unit.calculateSensorValue(ign, msg);
                        if (res != -348201.3876 && parseFloat(res))
                        value = "on";
                        else
                        value = "off";
                        
                        console.log(value);

в ответ мы получаем -348201.3876? Ведь это должно означать, что Wialon не знает открыто ли зажигание у объектов или нет, но как видно на хостинге, у большенства оно сейчас открыто.

Помогите, пожалуйста...

Великий и ужасный Гиоргий Каладзе
15

JS API sensor control

Re: JS API sensor control

Выйдите с сайта мониторинга и войдите заново, все значения датчиков будут отображаться по последнему сообщению, по мере прихода сообщений они будут обновляться и если в каком-то сообщении не удастся рассчитать значение датчика, то будет отображаться последнее известное валидное значение. Воспользуйтесь таблицой "Трассировка датчика" по всем сообщениям в отчетах для внесения ясности в каких сообщениях какие значения датчика имели место. http://docs.gurtam.com/ru/hosting/user/ … es/tracing

Mobile Development
Gurtam
16

JS API sensor control

Re: JS API sensor control

ребята, не издевайтесь, причем тут это?!

Я говорю о том что не могу достать значение датчика зажигания через SDK, что это вообще за ответ?

Великий и ужасный Гиоргий Каладзе
17

JS API sensor control

Re: JS API sensor control

unitedsecurity
у вас в сообщении msg есть параметр, который нужен для расчета значения датчика и функция calculateSensorValue возвращает значение -348201.3876?
Сайт мониторинга работает через тот же SDK что и Вы...

Mobile Development
Gurtam
18

JS API sensor control

Re: JS API sensor control

Oooky guys smile i now look at this screen shot for console log and please replay me why WHY why and again why all units gives me this -348201.3876 number ^^ oky?
http://s018.radikal.ru/i517/1210/f0/bc233f6bd4e9.png

thanks...

Великий и ужасный Гиоргий Каладзе
19

JS API sensor control

Re: JS API sensor control

calculateSensorValue(Object sensor, currMsg?, prevMsg?) http://docs.gurtam.com/api/hosting/#wia … UnitSensor
typeof ign=ign1[1].n  != Object
maybe ign=ign1[1]

Mobile Development
Gurtam
20

JS API sensor control

Re: JS API sensor control

thanks kopa  now it works. smile

Великий и ужасный Гиоргий Каладзе
21

JS API sensor control

Re: JS API sensor control

как ни странно возвращаю тему.
Пытаюсь получить таким образом значение датчика уровня топлива  в литрах
и приходит константное значение о неправильных параметрах

Можно получить рабочий пример ? на текущий день

Wialon development experts, Easy Logic Experts, Заказная разработка
Интегратор  и разработчик систем GPS/ГЛОНАСС мониторинга - watchit.ru
Interra Team, CEO Кравчик Юрий,  тел. +7 863 218-11-74, +7 863 218-11-73, emal wialon@watchit.ru

Принимаем заказы на разработку. Примеры наших коробочных решений и облачных сервисов