1

Обозначение государственного номера транспортного средства

Topic: Обозначение государственного номера транспортного средства

Как обозначается государственный номер тс (имеется ввиду название переменной)?Не unit_id? (искал название переменной в Javascript API документации.)

2

Обозначение государственного номера транспортного средства

Re: Обозначение государственного номера транспортного средства

У объекта отдельного свойства как "государственный номер" в системе нет. Обычно гос номер для объекта указывают в произвольных полях ( http://sdk.wialon.com/wiki/ru/sidebar/r … lnye_polja ), либо в самом имени (как часть имени)

Diana Cheley
Wialon Hosting Expert
Gurtam
3

Обозначение государственного номера транспортного средства

Re: Обозначение государственного номера транспортного средства

Aidaronly77, регистрационный номер ТС, который указан в характеристиках объекта, можно получить вместе с остальными характеристиками вызвав unit.getProfileFields(). В полученном списке испрользуйте registration_plate.

Solutions Department
Gurtam
4

Обозначение государственного номера транспортного средства

Re: Обозначение государственного номера транспортного средства

Как получить значение поля имя(где указан номер В577ВУ) на данном скриншоте? (Wialon Hosting, Javascript)

5

Обозначение государственного номера транспортного средства

Re: Обозначение государственного номера транспортного средства

Aidaronly77, получите все произвольные при помощи функции unit.getCustomFields(). В результате получите объект, содержащий произвольные поля: {id: 3, n: "cccc", v: "kkkkkkkkkkkk"}, где id - идентификатор произвольного поля, n - имя или ключ произвольного поля, v - значение поля.

Solutions Department
Gurtam
6

Обозначение государственного номера транспортного средства

Re: Обозначение государственного номера транспортного средства

Благодарю!

7

Обозначение государственного номера транспортного средства

Re: Обозначение государственного номера транспортного средства

Все было бы хорошо, если бы не выводило null. Поля заполнены.

8

Обозначение государственного номера транспортного средства

Re: Обозначение государственного номера транспортного средства

var flags = wialon.item.Item.dataFlag.base | wialon.item.Unit.dataFlag.lastMessage | wialon.item.Unit.dataFlag.customFields;
var ses = wialon.core.Session;

ses.updateDataFlags ( [{id: 3, n: "cccc", v: "kkkkkkkkkkkk"}]);

Понятия не имею, что писать в фигурных скобках. Подскажите, пожалуйста.

9

Обозначение государственного номера транспортного средства

(edited by deal 11/05/2016 13:53:02)

Re: Обозначение государственного номера транспортного средства

Aidaronly77, посмотрите формат здесь http://sdk.wialon.com/wiki/ru/sidebar/r … ata_flags.
Чтобы получить все объекты с их произвольными полями, выполните такие действия:

var s = wialon.core.Session.getInstance();
var flags = wialon.item.Item.dataFlag.base | wialon.item.Unit.dataFlag.lastMessage | wialon.item.Unit.dataFlag.customFields;
var spec = [{
"type": "type",
"data": "avl_unit",
"flags": flags,
"mode": 1
}];
s.updateDataFlags(flags, function() {console.log(arguments);});
s.getItems("avl_unit");
Solutions Department
Gurtam
10

Обозначение государственного номера транспортного средства

Re: Обозначение государственного номера транспортного средства

Ясно, спасибо!
Еще вопрос, не до конца понял как реализовать следующую задачу:
Вводится гос. номер в поле: например, В557ВУ.
Далее определяется что это за машина.
Реализация в http://sdk.wialon.com/playground  язык JavaScript.

HTML:
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Система контроля за подвижными элементами</title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script type="text/javascript" src="https://hst-api.wialon.com/wsdk/script/wialon.js"></script>
    <script language="Javascript" type="text/javascript" src="jquery.js"></script>
    <link type="text/css" href="/calendar/latest.css" rel="Stylesheet" />
    <script type="text/javascript" src="/calendar/latest.js"></script>
</head>
<body>   
<td>Гос № ТС: </td>
<td><input type = "text" id="units"><option></option></select></td>
<br>
Ресурс:<select id="res"><option></option></select>
Геозона:<select id="zones"></select>
<br>
<tr>
<td>От: (дата)</td>
    <td><input type="date" id = "from"/></td>
    <td>(время)</td> 
<td><input type="time" id = "fromT"/></td>
<br>
</tr>
<td>До: (дата)</td> 
    <td><input type="date" id = "to"/></td>
<td>(время)</td> 
<td><input type="time" id = "toT"/></td>
<br>
<tr>
<form>
<td><input type="button" value="Выполнить отчет" id=exec_btn></td>
    </form>
    <br>
    </tr><tr> 
    <td> <div id="log"></div></td>

</body>
</html>

</body>
</html>



JavaScript:

// Print message to log
function msg(text) { $("#log").prepend(text + "<br/>"); }

function init() { // Execute after login succeed
    var sess = wialon.core.Session.getInstance(); // get instance of current Session
    // flags to specify what kind of data should be returned
    var flags = wialon.item.Item.dataFlag.base | wialon.item.Unit.dataFlag.lastMessage | wialon.item.Unit.dataFlag.customFields;

    var spec = [{
                  "type": "type",
                  "data": "avl_unit",
                  "flags": flags,
                  "mode": 1
               }];
    
    sess.updateDataFlags(flags, function() {console.log(arguments);});
    sess.getItems("avl_unit");
    
    sess.loadLibrary("itemIcon"); // load Icon Library    
    sess.updateDataFlags( // load items to current session
    [{type: "type", data: "avl_unit", flags: flags, mode: 0}], // Items specification
        function (code) { // updateDataFlags callback
            if (code) { msg(wialon.core.Errors.getErrorText(code)); return; } // exit if error code

            // get loaded 'avl_unit's items  
            var units = sess.getItems("avl_unit");
            if (!units || !units.length){ msg("Units not found"); return; } // check if units found

            for (var i = 0; i< units.length; i++){ // construct Select object using found units
                var u = units[i]; // current unit in cycle
                // append option to select
                $("#units").append("<option value='"+ u.getId() +"'>"+ u.getName()+ "</option>");
            }
            // bind action to select change event
            $("#units").change( getSelectedUnitInfo );
        }
    );
}

function getSelectedUnitInfo(){ // print information about selected Unit

    var val = $("#units").val(); // get selected unit id
    if(!val) return; // exit if no unit selected
    
    var unit = wialon.core.Session.getInstance().getItem(val); // get unit by id
    if(!unit){ msg("Unit not found");return; } // exit if unit not found
    
    // construct message with unit information
    var text = "<div>'"+unit.getName()+"' selected. "; // get unit name
    var icon = unit.getIconUrl(32); // get unit Icon url
    if(icon) text = "<img class='icon' src='"+ icon +"' alt='icon'/>"+ text; // add icon to message
    var pos = unit.getPosition(); // get unit position
    if(pos){ // check if position data exists
        var time = wialon.util.DateTime.formatTime(pos.t);
        text += "<b>Last message</b> "+ time +"<br/>"+ // add last message time
            "<b>Position</b> "+ pos.x+", "+pos.y +"<br/>"+ // add info about unit position
            "<b>Speed</b> "+ pos.s; // add info about unit speed
        // try to find unit location using coordinates 
        wialon.util.Gis.getLocations([{lon:pos.x, lat:pos.y}], function(code, address){ 
            if (code) { msg(wialon.core.Errors.getErrorText(code)); return; } // exit if error code
            msg(text + "<br/><b>Location of unit</b>: "+ address+"</div>"); // print message to log
        });
    } else // position data not exists, print message
        msg(text + "<br/><b>Location of unit</b>: Unknown</div>");
}

// execute when DOM ready
$(document).ready(function () {
    wialon.core.Session.getInstance().initSession("https://hst-api.wialon.com"); // init session
    // For more info about how to generate token check
    // [url]http://sdk.wialon.com/playground/demo/app_auth_token[/url]
    wialon.core.Session.getInstance().loginToken("5dce19710a5e26ab8b7b8986cb3c49e58C291791B7F0A7AEB8AFBFCEED7DC03BC48FF5F8", "", // try to login
        function (code) { // login callback
            // if error code - print error message
            if (code){ msg(wialon.core.Errors.getErrorText(code)); return; }
            msg("Logged successfully"); init(); // when login suceed then run init() function
    });
});


Чувствую, что в функции Init() что-то напутал с произвольными полями.
Подскажите, пожалуйста, в чем ошибка?!

11

Обозначение государственного номера транспортного средства

Re: Обозначение государственного номера транспортного средства

Осознав ошибки в коде предыдущего сообщения, я высылаю новый код, правда вопрос остается прежним, необходимо чтобы в log выводилась информация о машине (название, id) по введенному в форме номеру

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Система контроля за подвижными элементами</title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script type="text/javascript" src="https://hst-api.wialon.com/wsdk/script/wialon.js"></script>
    <script language="Javascript" type="text/javascript" src="jquery.js"></script>
</head>
<body>   
<td>Гос № ТС: </td>
<td><input type = "text" id="units"><option></option></td>
<tr>
<td>От: (дата, время)</td>
    <td><input type="datetime-local" id = "from"/></td><br>
<td>До: (дата, время)</td>
    <td><input type="datetime-local" id = "to"/></td>
<br>
<br>
<tr>
<form>
<td><input type="button" value="Выполнить отчет" id=exec_btn></td>
    </form>
    <br>
    </tr><tr> 
    <div id="log"></div>

</body>
</html>

// Print message to log
function msg(text) { $("#log").prepend(text + "<br/>"); }
                     
function init() { // Execute after login succeed
    var sess = wialon.core.Session.getInstance(); // get instance of current Session
    // flags to specify what kind of data should be returned
    var flags = wialon.item.Item.dataFlag.base | wialon.item.Unit.dataFlag.lastMessage | wialon.item.Unit.dataFlag.customFields;

    var spec = [{
                  "type": "type",
                  "data": "avl_unit",
                  "flags": flags,
                  "mode": 1
               }];
    
    sess.updateDataFlags(flags, function() {console.log(arguments);});
    sess.getItems("avl_unit");
}

// выполняется, когда DOM готов
$(document).ready(function () {
//    $("#exec_btn").click( executeReport ); // привязать действие к кнопке

    wialon.core.Session.getInstance().initSession("https://hst-api.wialon.com"); // сессия инициализации
    // Больше информации об авторизации
    // http://sdk.wialon.com/playground/demo/app_auth_token
    wialon.core.Session.getInstance().loginToken("5dce19710a5e26ab8b7b8986cb3c49e58C291791B7F0A7AEB8AFBFCEED7DC03BC48FF5F8", "", // try to login
        function (code) { // ответный вызов логина
            // если ошибка - выводится сообщение об ошибке
            if (code){ msg(wialon.core.Errors.getErrorText(code)); return; }
            msg("Успешная авторизация"); init(); // после успешной авторизации выполняется функция init()
    });
});
12

Обозначение государственного номера транспортного средства

Re: Обозначение государственного номера транспортного средства

Aidaronly77, посмотрите скоррективанный код http://sdk.wialon.com/playground/eWlc32LM.
В селекте объектов к имени добавил имя и значение первого произвольного поля объекта, если задано.

Solutions Department
Gurtam
13

Обозначение государственного номера транспортного средства

Re: Обозначение государственного номера транспортного средства

Спасибо, выручили!

14

Обозначение государственного номера транспортного средства

Re: Обозначение государственного номера транспортного средства

Извините, конечно, но так и не могу понять действия с произвольными полями:
Во-первых, в SDK не нашел как таковой функции getCustomFields,
во-вторых, в функции getNameByVIN ошибка с произвольными полями, вроде делаю все верно.

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Система контроля за подвижными элементами</title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script type="text/javascript" src="https://hst-api.wialon.com/wsdk/script/wialon.js"></script>
    <script language="Javascript" type="text/javascript" src="jquery.js"></script>
</head>
<body>   
<td>Гос № ТС: </td>
<td><input type = "text" id="unit"><option></option></td>
<tr>
<td>От: (дата, время)</td>
    <td><input type="datetime-local" id = "from"/></td><br>
<td>До: (дата, время)</td>
    <td><input type="datetime-local" id = "to"/></td>
<br>
<br>
<tr>
<form>
<td><input type="button" value="Выполнить отчет" id=exec_btn></td>
    </form>
    <br>
    </tr><tr> 
    <div id="log"></div>

</body>
</html>
// Print message to log
function msg(text) { $("#log").prepend(text + "<br/>"); }

function init()
{
    var val = $("#unit").val();
    var sess = wialon.core.Session.getInstance(); // get instance of current Session
    // flags to specify what kind of data should be returned
    var flags = wialon.item.Item.dataFlag.base | wialon.item.Unit.dataFlag.lastMessage | wialon.item.Unit.dataFlag.customFields; 
    sess.updateDataFlags( // load items to current session
    [{type: "type", data: "avl_unit", flags: flags, mode: 0}])// Items specification
            // get loaded 'avl_unit's items  
 }


function getUnitByVIN()

{
             var val = $("#unit").val();
             var sess = wialon.core.Session.getInstance();
             wialon.core.Session.getInstance().loadLibrary("itemCustomFields");
             var units = sess.getItems("avl_unit");
    var flags = wialon.item.Item.dataFlag.base | wialon.item.Unit.dataFlag.lastMessage | wialon.item.Item.dataFlag.customFields;
             if (!units || !units.length){ msg("Units not found");} // check if units found
             for (var i = 0; i < units.length; i++){ // construct Select object using found units  
                    var u = units[i]; // current unit in cycle*/
                    var customFields = u.getCustomFields();
                    var firstCustomField = "";
            for (var id in customFields) {
                    var name2 = customFields[id].n;
                    var valu = customFields[id].v;
                    if (val==name2)
                    msg(u.getName());

                }
                
        }
}
// выполняется, когда DOM готов
$(document).ready(function () {
    $("#exec_btn").click( getUnitByVIN ); // привязать действие к кнопке
    
    wialon.core.Session.getInstance().loadLibrary("itemCustomFields");
    wialon.core.Session.getInstance().initSession("https://hst-api.wialon.com"); // сессия инициализации
    // Больше информации об авторизации
    // http://sdk.wialon.com/playground/demo/app_auth_token
    wialon.core.Session.getInstance().loginToken("961137eb767b676a914b282570413b74885086A2569CF5E1F7B8EA4B0735E1B58F3663F3", "", // try to login
        function (code) { // ответный вызов логина
            // если ошибка - выводится сообщение об ошибке
            if (code){ msg(wialon.core.Errors.getErrorText(code)); return; }
            msg("Успешная авторизация"); init(); // после успешной авторизации выполняется функция init()
    });
});
15

Обозначение государственного номера транспортного средства

Re: Обозначение государственного номера транспортного средства

Благодарю, разобрался! Ура deal!

16

Обозначение государственного номера транспортного средства

Re: Обозначение государственного номера транспортного средства

Aidaronly77, функции getCustomFields, как и getAdminFields, как и getProfileFields, как и ряд остальных - это геттеры определённых свойств айтемов (т.н. пропайтемы). У ресурсов например есть zones, jobs, notifications, drivers и т.д.
У юнитов есть commadDefinitions, sensors и др. Для всех них автоматически создаются геттеры: getZones и остальные.

Обращайтесь)

Solutions Department
Gurtam