Android Wizualizacja I Sterowanie Graficzne Inteligentnym Domem eHouse

Programowanie paneli Android – użycie wizualizacji eHouse

Inteligentny Dom eHouse – Implementacja kompletnej Wizualizacji i sterowania graficznego zgodnego z eHouse dla systemu operacyjnego Android.

Wizualizacja i sterowanie graficzne działa praktycznie na dowolnym sprzęcie z zainstalowanym oprogramowaniem Android:

  • Smartfony
  • Tablety
  • Panele graficzne
  • Telewizory – Smart TV
  • Tunery TV Sat
  • Sprzęt Audio-Video


Wizualizacja graficzna eHouse na platformę Android jest rozszerzeniem środowiska programistycznego dla systemu eHouse (bibliotek i funkcji API) umożliwiających samodzielne tworzenie oprogramowania dla użytkowników eHouse, firm współpracujących oraz firm zamierzających indywidualnie rozwijać system eHouse, tworząc własne oprogramowanie dla Paneli Mobilnych, Tabletów, komputerów PC, SmartPhonów itd.

Podstawowe funkcje wizualizacji eHouse dla platformy android:

  • Sterowanie Graficzne systemem eHouse – naciśnięcie obiektu graficznego na ekranie powoduje wysłanie komendy sterującej dla systemu eHouse powiązanej z danym obiektem graficznym
  • Wizualizacja Graficzna systemu eHouse – rysowanie indywidualnie stworzonych obiektów graficznych powiązanych ze stanami wyjść, wejść, pomiarami wartości z czujników analogowych, wszystkich sterowników eHouse itd.
  • Obrazy wizualizacji mogą być skalowane przy pomocy “gestów” pomniejszenia i powiększenia w urządzeniach posiadające wyświetlacze typu “multitouch”
  • Obrazy mogą być przesuwane przy pomocy gestów lewo,prawo, góra, dół, oraz po przekątnej
  • Wyświetlenie obrazów odbywa się na zasadzie skalowanej grafiki wektorowej (SVG) aby zapewnić brak utraty jakości przy powiększaniu i pomniejszaniu obiektów
  • Wizualizacja obsługuje format plików eHouse dla wizualizacji i sterowania graficznego do importu danych (wygenerowanych z aplikacji CorelDraw)
  • Bezpośrednie połączenie z Serwerem TCP/IP (komputer PC lub CommManager) lokalnie po WiFi lub przez internet na dowolny sposób (Wymaga usługi DDNS w przypadku braku stałego adresu IP oraz brak blokad i firewall’a dla portu TCP/IP)
  • Wizualizacja pracuje na zasadzie cienkiego klienta aby ograniczyć liczbę danych przesyłanych między sterownikami i panelami co jest szczególnie ważne przy łączu internetowym pracującym po sieci GSM
  • Wizualizacja na bieżąco aktualizuje dane i stany wyjść, wejść, wyniki pomiarów oraz wyświetla obrazy z nimi powiązane i indywidualnie zaprojektowane przy pomocy oprogramowania CorelDraw

Przykład zastosowania Wizualizacji dla systemu eHouse (SCREEN SHOOT’Y) oparte na przykładowym indywidualnym projekcie domu mieszkalnego:
eHouse4Android - Inteligentny dom ehouse sterowanie z androida - wizualizacja i sterowanie graficzne

Aktualizacja danych sterowników oraz zmiana obrazów powiązanych z wyjściami, wejściami i liniami pomiarowymi, w czasie rzeczywistym (online) przez WiFi, internet lub inne łącze typu TCP/IP.

eHouse4Android - Inteligentny dom ehouse sterowanie z androida - wizualizacja aktualizacja stanu sterowników w czasie rzeczywistym (online)

Bezstratne skalowanie obrazu (dzięki zastosowaniu skalowalnej grafiki wektorowej SVG) i przesunięcie gestami palca na wyświetlaczu dotykowym SmartPhone’u.
eHouse4Android - Inteligentny dom eHouse Wizualizacja bezstratne skalowanie obrazu opartego na Skalowanej Grafice Wektorowej SVG

eHouse4Android - Inteligentny dom eHouse sterowanie z androida Wizualizacja przesuwanie i skalowanie obrazu

Automatyczne – Graficzne wyświetlanie statusu urządzeń oraz uruchamianie podstawowych zdarzeń:
zmiana stanu wyjść sterowników oraz zmiany programów.

Wizualizacja ta jest tworzona automatycznie dla każdego sterownika bez konieczności tworzenia indywidualnego projektu wizualizacji. Zawiera wszystkie stany sterowników (wyjść, wejść, wejść pomiarowych, ściemniaczy, itd.)

eHouse4Android - Inteligentny dom eHouse sterowanie z androida Wizualizacja Automatyczna i sterowanie graficzne dla sterownika

eHouse4Android - Inteligentny dom eHouse sterowanie z androida Wizualizacja Automatyczna i sterowanie graficzne dla sterownika przesunięty ekran

eHouse4Android - Inteligentny dom eHouse sterowanie z androida Wizualizacja Automatyczna i sterowanie graficzne dla sterownika po przesunięciu ekranu

Kod Źródłowy programu

/* eHouse For ANDROID panels, tablets, PDAs, Smartphones template API for communication to the eHouse system
* ONLY FOR REGISTERED USERS, VENDORS, COOPERATIVES Copyright iSys.Pl All Rights Reserved
*
* Requires classes:
* !!!!!!     ehousecommunication.class :
*                          Sending Events to eHouse system via:
*                          SMS, eMail, WIFI, INTERNET, ETHERNET, TCPIP

* !!!!!!     EhouseTCP.class       :
*                          initiate TCP Communication for updating current status of devices
*                          Performing Query status from eHouse microcontrollers
*                          Assuring challange-response authorisation to the system and communication
*

* !!!!!!     StatusEhouse.class    :
*                            Organize classes of devices (names, actual status values etc)
*                            Fill up with actual values and data of eHouse1 controllers
*                             (RS485)

* !!!!!!     StatusCommManager.class :
*                            Organize classes of devices (names, actual status values etc)
*                            Fill up with actual values and data of Ethernet eHouse controllers
*                              (Ethernet)
*
*
* Szablon Aplikacji Sterującej (API) dla platformy ANDROID do komunikacji z systemem eHouse oraz Wizualizacji stanu systemu
* TYLKO Dla zarejestrowanych użytkowników systemu eHouse, Firm Współpracujących All Rights Reserved
*
* Wymaga class:
*
* !!!!!     ehousecommunication.class :
*                          Wysyła zdarzenia systemowe (komendy) do sterowników systemu eHouse przez:
*                          SMS, eMail, WIFI, INTERNET, ETHERNET, TCPIP
*
* !!!!!     EhouseTCP.class       :
*                          Inicjuje i utrzymuje komunikację TCP/IP ze sterownikami do aktualizacji stanu
*                          sterowników eHouse – wyjść, wejść pomiarowych eHouse
*                          Zapewnia autoryzację metodą challange-response do podłączenia się do systemu
*
* !!!!!     StatusEhouse.class    :
*                            Klasa zawiera wszystkie ustawienia oraz aktualne dane dla każdego sterownika eHouse
*                            do dalszego przetwarzania (nazwy, wartości, status) aktualizowane na bieżąco przez komunikację TCP/IP
*                            dla sterowników eHouse1 (RS485)

* !!!!!     StatusCommManager.class :
*                            Klasa zawiera wszystkie ustawienia oraz aktualne dane dla każdego sterownika eHouse
*                            do dalszego przetwarzania (nazwy, wartości, status) aktualizowane na bieżąco przez komunikację TCP/IP
*                            dla sterowników eHouse2 (Ethernet)
*
* !!!!!    visulization.class : klasa implementuje kompletną wizualizację graficzną w standardzie eHouse oraz sterowanie graficzne zgodne z formatem plików wejściowych ehouse
*      dla wizualizacji.
* Rysuje podstawowe krzywe (prostokąt, prostokąt zaokrąglony, elipsę, linię, text
* Uruchamia zdarzenia powiązane z obiektami graficznymi po ich naciśnięciu (przesyłanie po WiFi lub Internet dostępne łącze GSM lub inne).
* Wizualizacja jest automatycznie uaktualniany po każdorazowym odebraniu statusu sterowników.
* Moduł obsługuje gesty przesunięcie palcem – powoduje przesunięcie obrazu w określonych kierunkach gestem
* Przy ekranach multitouch obsługuje także skalowanie (powiększenie i pomniejszenie)
*
*/
package ehouse.android;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;
import java.util.Date;
import android.content.Context;
public class ehouseandroid extends Activity
{
public visualization vs;
static boolean firsttime=true;
boolean TerminatedUpdates=false;
Date date;
Context context;
////////////////////////////////////////////////////////////////////////////////
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
/* Initate and setup Android Application from config files generated from eHouse.exe appliaction
*  ONLY ONCE – TYLKO 1 RAZ
* Inicjuje ustawienia aplikacji na platformę Android wygenerowane z aplikacji eHouse.exe
*/

if (firsttime==true) ehousecommunication.init();

vs=new visualization(this,100,100,1); //stworzenie obiektu wizualizacji graficznej eHouse
//create visualisation object
if (firsttime==true)        //first time only  for initialisation functions
{

/* ONLY ONCE ON APPLICATION START
* Setup and Init List of Devices class containing:
* Names and Values digital input , adc inputs, outputs,
* {StatusEhouse for eHouse 1 devices, StatusCommManager for eHouse 2}
*
*  TYLKO RAZ PO URUCHOMIENIU APLIKACJI
* Iniciuje urządzenia (Class) sterowników {Class StatusEhouse dla sterowników eHouse1, Class StatusCommManager dla sterowników eHouseTCPIP}
* Ustawia nazwy wyjść cyfrowych, wejść cyfrowych, wejść pomiarowych dla sterowników oraz zmienne statusu odbierane ze sterowników przez panele
*/

EhouseTCP.AllDevsStatus();
EhouseTCP.AllDevsTCPStatus();
/*
*
*
Assign eHOUSE Visualization file to visualisation class
* Ustawia wizualizację
*
*
*
*/
/*
Wizualizacja domyślne inicjalizacyjne ustawienia konfiguracyjne mogą być zmienione przy

*/

// nazwa pliku wizualizacji wyeksporowanego z CorelDraw dla wizualizacji
/*public static String*/ currentview=”parter2″; //name of view file exported from CorelDraw application

// efektywna szerokość ekranu paneli
/* public static int*/ ScreenWidth=800; //declared width of screen affect shifting display
// efektywna wysokość ekranu paneli
/* public static int*/ ScreenHeight=300; //declared height of screen affect shifting display
// współczynnik alfa dla wszystkich obiektów
/* public static int*/ transparency_level=255; //alfa factor objects 0-255 (0-100%) – for outline
//współczynnik alfa dla obiektów wypełnienia
/* public static int*/ fill_transparency_level=200; //alfa factor for internal objects 0-255 (0-100%) – (fill)
// Wypełnienie figur (podwójne rysowanie figur na zewnątrz (linia) i wypełnienie wewnątrz ze względu na brak obsługi
// (innego koloru obrysu i wypełnienia w androidzie)
/* public static boolean*/ OtherFill=true; //enable other outline color then fill
// Ilość pikseli o którą przesuwany jest obraz w osi Y
/* public static int*/ YShiftResize=-ScreenHeight/2 +40; // Y axis shift value

/* public static double*/ NegZoom=1;
// przesunięcie ekranu w osi X w pixelach
/* public static int*/ OffsetX = 0; //Shift of screen
// przesunięcie ekranu w osi Y w pixelach
/* public static int*/ OffsetY = 0; //shift of screen
// Powiększenie – skala osi X
/* public static double*/ ScaleX = 0.20; //Zoom in X axis
// Powiększenie – skala osi Y
/* public static double*/ ScaleY = 0.20; //Zoom in Y axis
/* public static double*/ ZoomScaleMul = 1.5;
//
// minimal gesture movement zoom value in pixels – minimalny ruch na ekranie dla powiększenia w pixelach
/* public static int*/ MIN_ZOOM=20; //minimal zoom movement
// minimalna odległość ruchu przesunięcia w pikselach dla przesunięcia
/* public static int*/ MIN_MOVEMENT=100; //minimal gesture movement in pixels for movement init
// maksymalne przesunięcie w pixelach traktowane jako naciśnięcie ekranu bez ruchu
/* public static int*/ MIN_MOVEMENT_NO=4; //maximal pixels movement for press without movement

ehousecommunication.currentview=”parter2″; // Assign Visualization File –  Plik wizualizacji eHouse
EhouseTCP.ReadViewFile(ehousecommunication.currentview); // Wczytanie pliku i przyporządkowanie obiektów graficznych dla sterowników (wyjść, wejść….) po nazwach

EhouseTCP.Query.start();    ///Start Query Status of Devices over TCPIP
// Inicjuje wątek odbioru danych statusu ze sterowników w trybie ciągłym

}

else //not FIRST TIME Update Visualization and views appears when mobile is rotated etc
// pozostałe przypadki pojawia się gdy zostanie obrócony telefon komórkowy itd.
{

EhouseTCP.UpdateVisualization(); //Uaktualnia wizualizację i widoki
EhouseTCP.UpdateViews();
vs.inav();                      //refresh – odświeżenie – przerysowanie zawartości ekranu
}
setTitle(“eHouse 4 Android: “+ehousecommunication.currentview);        //set title as viewname
try
{
setContentView(vs);     //pokazuje na ekranie wizualizację graficzną eHouse
//shows eHouse Visualization on main screen
}
catch (Exception e)
{
ehousecommunication.log+=e.getMessage();
}

firsttime=false;
}

/////////////////////////////////////////////////////////////////////////////////////////
}