Udostępnianie danych po REST

Główna strona  Wstecz  Dalej

System WinCN umożliwia dostęp do danych dla systemów zewnętrznych za pomocą REST. Z tej komunikacji korzysta także aplikacja WinCN Mobile.

 

Do dyspozycji jest zarówno pobieranie danych jak i wykonywanie zdalnego sterowania.

Za obsługę tej funkcji odpowiada moduł WinCNExchangeApi. Posiada on dwa interfejsy REST API. Adresy nasłuchu dla tych interfejsów definiuje się w oknie Słowniki na zakładce Definicje OMK.

Pierwszy pozwala na zdalną zmianę haseł użytkowników. Służy do integracji WinCN z systemami IAM.

Drugi interfejs służy do udostępniania danych dotyczących monitorowanych obiektów. Ten interfejs jest głównym interfejsem systemu i jego dotyczy poniższy opis.

 

Moduł obsługuje cztery wersje interfejsu (V1-V4), kolejna wersja zastępuje wcześniejszą. System zewnętrzny obsługujący najnowszą wersję nie musi znać wersji poprzednich. Wszystkie wersje opisane są w dokumencie ‘WinCN5 - Versioned API.pdf’.

 

Po nawiązaniu połączenia z API wymagane jest logowanie. W komendzie logowania należy wpisać login i hasło użytkownika WinCN. Są to te same dane, które są używane podczas logowania do aplikacji desktop i www. Użytkownik, który chce się logować przez REST musi mieć włączony typ logowania Mobile/Rest. Można to sprawdzić w oknie Użytkownicy.

Podczas udostępniania danych sprawdzane są dostępy użytkownika. Jeżeli użytkownik nie ma dostępu do obiektu, sterowania dane nie zostaną przesłane, a polecenie nie zostanie wykonane,

 

W najnowszej wersji API dostępne są następujące polecenia:

1.Get Controllers – pobranie listy sterowników
2.Set Control – wysłanie komendy sterowania
3.Get Control History – pobranie historii sterowania
4.Get list of objects – pobranie listy obiektów
5.Get object state – pobranie stanu obiektu
6.Get Measurements History – pobranie historii pomiarów
7.Get Controller History – pobranie historii sterownika
8.Get Location – pobranie lokalizacji obiektu
9.Get Mobile Actions – pobranie listy sterowań dla aplikacji mobilnej
10.Run Mobile Action – wykonanie sterowania przez aplikację mobilną
11.Get Mobile Notifications – pobranie powiadomień mobilnych
12.Change Password – zmiana hasła użytkownika

 

1.Lista sterowników

Polecenie Controllers pozwala na pobranie listy sterowników znajdujących się w konfiguracji WinCN. Przesłane zostaną sterowniki, które zalogowany użytkownik ma przypisane w grupach dostępów. Na podstawie pól Name, ObjectCode, Address możliwa jest identyfikacja sterownika.

Pole Id jest to unikalny identyfikator sterownika w bazie danych WinCN. Identyfikator jest niezmienny od chwili utworzenie sterownika w WinCN do jego usunięcia (nieodwracalnego). Wartość tego pola jest używana jako parametr w innych poleceniach (jako ControllerId).

 

2.Sterowanie

Polecenie Control służy do wysłania do sterownika rozkazu sterującego. Zalogowany użytkownik musi mieć w uprawnieniach włączoną funkcję Sterowanie.

W parametrach wpisuje się identyfikator sterownika, funkcję sterującą, wartości parametrów.

 

3.Sterowanie

Polecenie Control/History służy do pobrania historii przebiegu sterowania. Historia pobrana tym poleceniem dotyczy tylko sterowania wygenerowanego przez zalogowanego użytkownika.

Jako parametry polecenia w controllerId trzeba wprowadzić identyfikator sterownika, a w orderid trzeba wprowadzić identyfikator rozkazu sterującego.

W pole histId można wpisać wartość 0. Wtedy zostanie przesłany najnowszy rekord historii spełniający pozostałe parametry. W polu Id przesyłany jest identyfikator rekordu historii. Wstawiając tą wartość do histid można odebrać rekord historii spełniający parametry controllerId i orderId, ale o histid niższym niż podanych jako parametr (czyli wcześniejszy rekord). Powtarzając ten krok można pobrać całą historię sterowania (przesłana zostanie pusta odpowiedź, gdy nie ma już wcześniejszych rekordów).

 

W tablicy Messages przesyłane są komunikaty sterowania opisujące jego przebieg. Znaczenie komunikatów:

MessageId

Opis komunikatu

1

Zarejestrowanie polecenia w systemie

2

Niezarejestrowanie polecenia w systemie

3

Wysłano polecenie do sterownika

4

Nie wysłano polecenia do sterownika

5

Polecenie zmiany konfiguracji / sterowania przyjęte przez sterownik

6

Polecenie zmiany konfiguracji / sterowania odrzucone przez sterownik

7

Brak konfiguracji sterownika w module komunikacyjnym

8

Rozkaz anulowany przez użytkownika / Rozkaz zastąpiony nowszym

9

Nieznany błąd

10

Brak uprawnień do zapisu parametrów

 

4.Pobranie listy obiektów

Przesyłane są dane wszystkich obiektów, do których użytkownik ma dostęp. Dane obejmują:

Id obiektu
Nazwa
Opis
Stan obiektu
Stan komunikacji
Czas ostatniego odczytu
Czas ostatniej komunikacji
Lokalizacja

 

5.Pobranie stanu obiektu

Przy wywołaniu polecenia trzeba podać id obiektu. W odpowiedzi przesłany zostanie stan obiektu w postaci listy elementów (płaska lista bez zagłębiana nadrzędny/podrzędny). Jeżeli użytkownik nie ma uprawnień do tego obiektu lub obiekt o takim Id nie istnieje to zwracane jest kod błędu.

Dla każdego elementu przesyłane są pola:

Id elementu
Nazwa
Opis
Element nadrzędny
Stan
Obiekt
Lista własności elementu przypisanych do tego elementu

Dla każdej własności elementu przesyłane będą pola:

ID (id)
Nazwa
Opis
Rozdzielczość
Ukrywanie
Priorytet
Nazwa
Typ danych użytkownika
Stan
Data pomiaru
Wartosc_Int
Wartosc_Real
Wartosc_String
Wartosc_Date

 

6.Pobranie historii pomiarów

Polecenie MeasurementsHistory zwraca listę rekordów z tabeli Pomiary. W parametrach polecenie przekazać trzeba ID sterownika (controllerId), czas od (timeFrom), czas do (timeTo), ID własności sterownika (controllerPropertyId). Parametr z ID własności sterownika jest opcjonalny.

W odpowiedzi przesłane zostaną rekordy z pomiarami własności sterownika przypisanych do sterownika controllerId, spełniające warunek zakresu czasowego (timeFrom; timeTo). Jeżeli ID własności sterownika zostanie przesłane w parametrach to pomiary dotyczyć będą tylko tej jednej własności.

Każdy rekord będzie zawierał pola:

Id
Własność sterownika
Data pomiaru
Stan
Wartosc_Int
Wartosc_Real
Wartosc_String
Wartosc_Date

 

7.Pobranie historii sterownika

Polecenie ControllerHistory zwraca rekordy z tabeli Historia_sterownika. W parametrach polecenie przekazać trzeba ID sterownika (controllerId), czas sterownika od (timeFrom), czas sterownika do (timeTo), Typ_Historii (TypeHistory). Parametr Typ_Historii jest opcjonalny.

 

W odpowiedzi przesłane zostaną rekordy z rekordami historii sterownika przypisanych do sterownika controllerId, spełniające warunek zakresu czasowego (timeFrom; timeTo). Jeżeli TypeHistory zostanie przesłany to w odpowiedzi będą rekordy mające podany typ historii, jeżeli nie zostanie przesłany to w odpowiedzi będą rekordy z dowolną wartością typu historii.

 

Każdy rekord będzie zawierał pola:

Id
Własność sterownika
Data sterownika
Data odebrania
Wartosc_Int
Wartosc_Real
Wartosc_String
Wartosc_Date
Mnemonik podstawowy
Typ historii

 

8.Pobranie lokalizacji obiektu

Polecenie Locations będzie zwraca rekordy z tabeli Lokalizacje. W parametrach polecenie przekazać trzeba ID lokalizacji, nazwę obszaru lub nazwę miasta.

 

W odpowiedzi przesłane zostaną rekordy spełniające zadane parametry. W tabeli Lokalizacje obszar i miasto przechowywane są w postaci ID. W parametrach polecenia są przekazywane nazwy obszaru lub miasta.

 

Każdy przesłany rekord będzie zawierał pola:

ID
Nazwa obszar
Nazwa miasta
Nazwa ulicy
Kod pocztowy
Nr domu
Nr lokalu
Szerokość geograficzna
Długość geograficzna
Opis

 

9.Pobranie listy sterowań dla aplikacji mobilnej

Polecenie GetMobileActions zwraca listę akcji, do których przypisane są źródła akcji spełniające następujące warunki:

Jest typu MobilneSterowanie
Przypisany jest do niej zalogowany użytkownika
Aktualny czas mieści się w zakresie czasowym

 

W odpowiedzi zostaje przesłana lista działań przypisanych do powyższych akcji, które są typu Sterowanie. Dla każdego z działań przesłane zostaną następujące dane:

Id działania
Etykieta
Typ sterowania
Nazwa sterownika
Nazwa obiektu
Parametry
Czy wymagana lokalizacja
Długość geograficzna
Szerokość geograficzna

 

10.Wykonanie sterowania przez aplikację mobilną

Jako parametr polecenia trzeba przesłać Id działania akcji. Po odebraniu Id wszystkie dane akcji są na nowo odczytywane z bazy danych.

Usługa sprawdza warunki wykonania akcji:

Czy zalogowany użytkownik jest przypisany do źródła akcji
Czy źródło akcji jest typu MobilneSterowanie
Czy aktualny czas mieści się w zakresie czasowym źródła akcji

 

Jeżeli, któryś z warunków nie jest spełniony to zwracany jest komunikat błędu.

Jeżeli warunki są spełnione to do serwera WinCN wysyłane jest polecenie sterowania z parametrami zawartymi w konfiguracji akcji. Zwrotnie przesyłane jest potwierdzenie przesłania sterowania.

 

11.Pobranie powiadomień mobilnych

Polecenie GetNotifications pozwala na pobranie powiadomień mobilnych. Po jego wywołaniu zwrotnie przesyłane są wszystkie oczekujące powiadomienia przypisane do zalogowanego użytkownika.

Każde powiadomienie zawiera: treść, wagę.

 

ExchangeApi przechowuje wygenerowane powiadomienia do czasu jaki jest w polu Czas ważności. Wiadomość jest usuwana jeżeli w tym czasie powiadomienie nie zostanie pobrane przez API.

Jeżeli wiadomość zostanie pobrana to jest ona usuwana z ExchangeApi. Nie można jej ponownie pobrać.

 

12.Zmiana hasła użytkownika

Wraz z komendą trzeba przesłać stare i nowe hasło użytkownika. Po zweryfikowaniu starego hasła sprawdzane jest nowe hasło. Jeżeli spełnia wymagania jakości hasła jest zapisywane do bazy danych a zwrotnie przesyłane jest potwierdzenie zmiany. Jeżeli nie spełnia wymagań zwrotnie przesyłane są przyczyny odrzucenia nowego hasła.