eHouse 4 Android – Aktualizacja stanu sterowników przez TCP/IP

eHouse Inteligentny Dom – Synchronizacja stanu sterowników, wejść, wyjść, wartości pomiarowych dla urządzeń i paneli na systemie Android.

Klasa EhouseTCP

Klasa służy do utrzymania połączenia TCP/IP z systemem inteligentnego domu eHouse (online) oraz aktualizowania danych przychodzących ze sterowników mikroprocesorowych eHouse.
Wymaga także zastosowania klas:
* ehousecommunication.class
* StatusEhouse.class
* StatusCommManager.class

Po nawiązaniu połączenia „query”, do odbierania bieżącego statusu sterowników (online), dane są uaktualniane w instancjach (1 sterownik => jedna instancja klasy statusu) klas:

  • StatusEhouse (dla sterowników eHouse1)
  • StatusCommManager (dla sterowników eHouse TCP/IP)

Dane te mogą być następnie pobierane przez oprogramowanie do tworzenia logów i wizualizacji lub dowolne inne algorytmy oprogramowania na platformie Android, bez konieczności pisania „algorytmów tłumaczących” konfigurację eHouse na PC dla platformy Androida.


Funkcje:

public static void TerminateQuery()

Przerwanie połączenia TCP/IP (pętli nieskończonej do odbierania statusu sterowników.

przykład zastosowania:
EhouseTCP.TerminateQuery();


public static boolean QueryStart(String host,int port)

Inicjuje i utrzymuje komunikację oraz odbiór statusu wszystkich sterowników systemu eHouse (pętla nieskończona – można ją przerwać przez TerminateQuery()  )

Jeśli podano host to wykorzystuje parametry host i port

w przeciwnym razie korzysta z ustawień konfiguracyjnych (oddzielnie dla połączenia Lokalnego i Internetu w zależności od uruchomienia funkcji public EnableInternet(boolean enab)
)

przykład zastosowania:
EhouseTCP.QueryStart(„”,9876); //łączy się z domyślnym adresem servera TCP/IP eHouse


public static void AllDevsStatus()

Importuje nazwy sterowników „eHouse 1 – RS485”, wraz z nazwami wyjść, wejść, wejść pomiarowych z plików konfiguracyjnych

przykład zastosowania:
EhouseTCP.AllDevsStatus();


public static void AllDevsTCPStatus()

Importuje nazwy sterowników „Ethernet eHouse” wraz z nazwami wyjść, wejść, wejść pomiarowych z plików konfiguracyjnych

przykład zastosowania:
EhouseTCP.AllDevsTCPStatus();




Przykład kompletny kodu źródłowego:

/* 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)
*
*
*/
package ehouse.android;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class ehouseandroid extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{   TextView tv=new TextView(this);
super.onCreate(savedInstanceState);

/* Initate and setup Android Application from config files generated from eHouse.exe appliaction
*
* Inicjuje ustawienia aplikacji na platformę Android wygenerowane z aplikacji eHouse.exe /mobile  i skopiowaną na kartę SD
*/

ehousecommunication.init(); //first command  INIT eHOUSE LIBRARY STACK !!!!!!!!!!

/*
* 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}
*
* 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(); //second command   INIT DEVICE CONFIGURATION – inicjalizacja konfiguracji urządzeń ehouse 1  RS485
EhouseTCP.AllDevsTCPStatus(); //third command INIT TCPIP DEVICE CONFIGURATION – inicjalizacja konfiguracji urządzeń eHouse Ethernet

EhouseTCP.EnableInternet(true); //Initialize query reception via internet (external address or ddns service)
// Ustawia zewnętrzny adres do połączenia tcpip przez internet
/* Start infinite loop for reading query from eHouse controllers and putting to
* StatusEhouse and StatusCommManager Classes.
* Can be interrupted by EhouseTCP.TerminateQuery(); function
* Inicjuje pętlę nieskończoną pobierania danych bieżącego statusu (query) ze sterowników i
* ładowanie do class StatusEhouse i StatusCommManager
* Może zostać przerwane przez funkcje EhouseTCP.TerminateQuery()
*/

EhouseTCP.QueryStart(„”,9876); //Start Query reception

/*
* Terminate query eHouse controllers before end of application
*
* Przerwanie aktualizacji danych ze sterowników przed końcem pracy programu
*
*/
//EhouseTCP.TerminateQuery();

/* Send Contents of EventQueue via eMail for reception by emailgate.exe
* Wysyła zdarzenia z kolejki zdarzeń przez eMail do odbioru przez oprogramowanie emailgate.exe
*/

// ehousecommunication.SendEmail();

/*
* Send Contents of EventQueue via SMS for reception by CommManager or SMS-Gate connected to PC
* Wysyła zawartość kolejki Zdarzeń przez SMS dla CommManagera
* lub Bramki SMS/ Telefonu GSM podłączonego do PC odbieranego przez aplikację SMSGate.exe
*
*
*/
//SendSMS();

/*
*  Clear Event Queue do wysłania (after successful transmition via any metod) performed automatically
*
* Czyści kolejkę zdarzeń do wysłania (automatycznie usuwane są zdarzenia po przasłaniu dowolną metodą)
*
*/

//ehousecommunication.ClearEventQueue();

/*
* Get recent transmition Log
* zwraca Log z ostatniej transmisji
*/

//ehousecommunication.GetLog();

/*
*
* Clear Log
*
* Czyści Log
*
*/
//ClearLog();

tv.setText(ehousecommunication.log);
setContentView(tv);
}
}