0
Answered

Смена настроек подключения 3G / Local

dmitrymalov 2 years ago in Applications / i3 Pro updated by Dmitry - support (expert) 2 years ago 7

Друзья, всем доброго дня ! Подскажите пожалуйста , возможно ли организовать смену подключения сети в автоматическом режиме?

В данный момент в моем проекте есть две кнопки "wi-fi" и "inthernet" . Кнопка "wi-fi" отвечает за настройки работы в локальной сети.  Кнопка "internet" отвечает за работу из 3G (внешней сети) все работает так как указано на сайте при использование данного скрипта:

function Internal_1() 

{ IR.GetDevice("iRidium Server").SetParameters({Host: "192.168.0.100", Port: 30464, LogLevel: 0, BackgroundMode: 0}); }

function External_1() 

{ IR.GetDevice("iRidium Server").SetParameters({Host: "215.110.10.10", Port: 30464, LogLevel: 0, BackgroundMode: 0}); }

Все просто жуть(  всегда нужно переключать сеть (

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


помогите пожалуйста может кто сталкивался и имеет опыт?

заранее спасибо.

Waiting for user's reply

Здравствуйте.

Можете попробовать скрипт подобного вида:

var MyWiFi = "Home" //имя вашего wi-fi
IR.AddListener(IR.EVENT_START,0,function()
    {
        SetIneterval(time, function() // time - периодичность проверки подключения
            {
                if (IR.GetVariable("System.Net.SSID") == MyWiFi
                    {
                        //Один набор параметров подключения
                    }
                else
                    {
                        //другой набор параметров
                    }    
     
            }
    })
});
IR.AddListener(IR.EVENT_EXIT,0,function()
    {
    });

Добрый день,

Скрипт работает, только есть одно большое НО!!!!

Тестировал на Android устройствах! При естественном входе и выходе устройства из зоны покрытия wi-fi автопереключение не происходит ( если смотреть логи, то программа пытается получить данные по старому ip адресу ), но если влючать и отключать wi-fi на устройстве руками то все прекрасно работает.

Как выйти из положения? Может проводить еще дополнительную проверку, например по статусу подключения к серверу или обнулять как то принудительно обнулять счетчик?

Помогите пожалуйста с кодом! Версии ПО 1.2.5


код:


var MyWiFi = "ASUS" //имя вашего wi-fi
IR.AddListener(IR.EVENT_START,0,function()
    {
        var timer = IR.SetInterval(3000,function() // time - периодичность проверки подключения
            {
                if (IR.GetVariable("System.Net.SSID") == MyWiFi)
                    {
                     IR.GetDevice("iRidium Server").SetParameters({Host: "192.168.1.30", Port: 30464, LogLevel: 0, BackgroundMode: 0});   
                     }
                else 
                     {
                     IR.GetDevice("iRidium Server").SetParameters({Host: "9.9.9.9", Port: 30464, LogLevel: 0, BackgroundMode: 0});
                     }
                     
                if (IR.GetVariable("Drivers.iRidium Server.Online") == false)
                     {
                     IR.Log("Нет соединения с сервером")
                     } 
                IR.Log(IR.GetVariable("Drivers.iRidium Server.Host"));
                      
            }); 
                     
    });


Здравствуйте!


Спасибо за обращение! Проблема с получением данных о WiFi сети подтвердилась. Постараемся исправить в ближайшее время. 

Что же касается скрипта, то я рекомендовал бы вместо таймера использовать глобальный слушатель, т.к. он будет реагировать только на изменение токена или тэга, в отличие от таймера, который срабатывает всегда в указанные промежутки времени. 

Например:


IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function(name, value)
{
          
                    
     
     
});
// Subscribe 
IR.SubscribeTagChange("System.Net.SSID");

Здравствуйте!


Мы исправили проблему с токеном SSID. Теперь, при выходе из зоны покрытия WiFi или при переключении на другой WiFi, этот токен будет менять свое состояние. Попробуйте скачать новую версию 1.2.5:13944

Добрый день!!! Спасибо за оперативность.... Сейчас протестирую!!!

Здравствуйте!


Отпишитесь, пожалуйста, о результатах.