1

unit_group w JavaScriptAPI

Topic: unit_group w JavaScriptAPI

Добрый день!
Я толка начал изучать JS API и у меня возникла проблема в коде и я не знаю в чем дело не могу найти ничего подобного в документацые
Проблема в том что не могу вывести на монитор объектов групп

function msg(text){
                $("#log").prepend(text+"<br>");
            }
            
            /////////////////////////////////////////////////////////////////////////////////////////
            function init() { 
                var sess = wialon.core.Session.getInstance(); 

                var flags = wialon.item.Item.dataFlag.base | wialon.item.Unit.dataFlag.lastMessage | wialon.item.UnitGroup;
                
                sess.loadLibrary("itemIcon");
                sess.updateDataFlags( 
                [{type: "type", data: "avl_unit_group", flags: flags, mode: 0}],
                    function (code) {
                        if (code) { msg(wialon.core.Errors.getErrorText(code)); return; }


                        var units = sess.getItems("avl_unit_group");
                        if (!units || !units.length){ msg("Units not found"); return; } 

                        for (var i = 0; i< units.length; i++){ 
                            var u = units[i]; 

                            $("#group").append("<option value='"+ u.getId() +"'>" + u.getName()+ "</option>");
                        }
                        $("#group").change( function(){ group(this.value); } );
                        
                    }
                );
            } 
            
            function group( val ){ 
               $("#units").html("<option></option>");
                if(val){
                    
                    var unit = wialon.core.Session.getInstance().getItem(val); 
                    if(!unit){ msg("Unknown resource id: "+val); return; } 
                    var pois = unit.getUnits(); 
                    
                    var icon = unit.getIconUrl(32); // get unit Icon url
                   if(icon) var text = "<img class='icon' src='"+ icon +"' alt='icon'/>";
                    
                    var i = 0; 
                    for (i in pois){ 
                        $("#units").append("<option value='" + pois[i].id + "'>"+ pois[i].u + "</option>");
                    }
                    
                    if(!i) 
                        msg(text +"Не має об'єктів в групі: "+ unit.getName() +"'. Створіть об'єкт ");
                    else 
                        msg(text +i + " Об'єктів в групі: '"+ unit.getName() +"'.");
                }
            }
2

unit_group w JavaScriptAPI

Re: unit_group w JavaScriptAPI

Discovery, проверьте скорректированный код и обратите внимание на ошибки.

            function msg(text){
                $("#log").prepend(text + "<br>");
            }
            
            /////////////////////////////////////////////////////////////////////////////////////////
            function init() {
                $("#group").html("");
                $("#log").html("");
                var sess = wialon.core.Session.getInstance(); 

                var unitFlags = wialon.item.Item.dataFlag.base | wialon.item.Unit.dataFlag.lastMessage | wialon.item.Item.image;
                var groupFlags = wialon.item.Item.dataFlag.base;
                
                sess.loadLibrary("itemIcon");
                sess.updateDataFlags( 
                [{type: "type", data: "avl_unit", flags: unitFlags, mode: 0},
                {type: "type", data: "avl_unit_group", flags: groupFlags, mode: 0}],
                    function (code) {
                        if (code) {
                            msg(wialon.core.Errors.getErrorText(code));
                            return;
                        }

                        var groups = sess.getItems("avl_unit_group");
                        if (!groups || !groups.length) {
                            msg("Unit groups not found");
                            return;
                        } 

                        for (var i = 0; i < groups.length; i++){ 
                            var gr = groups[i];
                            $("#group").append("<option value='"+ gr.getId() +"'>" + gr.getName()+ "</option>");
                        }
                        $("#group").unbind("change").change(function() {
                            fillGroup(this.value);
                        }).trigger("change");
                    }
                );
            }
            
            function fillGroup( val ){ 
                $("#units").html("");
                if (val) {
                    var group = wialon.core.Session.getInstance().getItem(val); 
                    if (!group) {
                        msg("Unknown group id: " + val);
                        return;
                    } 
                    var units = group.getUnits(); 
                    
                    var icon = group.getIconUrl(32); // get unit Icon url
                    var text = "";
                    if (icon)
                        text = "<img class='icon' src='"+ icon +"' alt='icon' />";
                    
                    var i = 0;
                    for (i = 0; i < units.length; i++) {
                        var unit = wialon.core.Session.getInstance().getItem(units[i]);
                        if (!unit)
                            continue;
                        $("#units").append("<option value='" + unit.getId() + "'>"+ unit.getName() + "</option>");
                    }
                    
                    if (!i) 
                        msg(text + "Не має об'єктів в групі: " + group.getName() + "'. Створіть об'єкт ");
                    else 
                        msg(text + i + " Об'єктів в групі: '" + group.getName() + "'.");
                }
            }
Head of Wialon Local Department
Gurtam
3

unit_group w JavaScriptAPI

Re: unit_group w JavaScriptAPI

Хорошо
Большое спасибо!