43 Class
Event yang ada pada classScheduler adalah sebuah class yang meng- extends class BaseEvent dan EventContract. Class tersebut mempunyai fungsi
executeCallback yang akan mengesekusi callback yang telah ditentukan. Class Event dapat dilihat pada Gambar 3.17.
1 t empl at e
c l as s Cal l bac k
2 c l as s
St at i c Ev ent :
publ i c v i r t ual
Bas eEv ent 3 {
4 pr ot ec t ed
: 5 Cal l bac k c al l bac k ;
6 7
publ i c :
8 St at i c Ev ent uns i gned
l ong i nt er v al , Cal l bac k c al l bac k :
___________ c al l bac k c al l bac k
9 { 10
t hi s - i nt er v al = i nt er v al ;
11 } 12
13 v oi d
ex ec ut eCal l bac k 14 {
15 t hi s
- c al l bac k ; 16 }
17 } ;
Gambar 3.17 Kode program class StaticEvent
3.5.4 BoardClass
BoardClass merupakanclass yang memodelkan perangkat Wemos D1. Pada
class ini sebuah fungsi attach dapat digunakan untuk menyambungkan instance
dari ClassGateway, ClassDevice atau Class Sensor pada instance classBoard seperti yang terlihat pada Kode Program berikut. ClassWemos D1 merupakan
extend dari classBoardContract. Class WemosD1 harus mengimplementasikan tiga fungsi virtual yang ada pada classBoardContract. Ketiga fungsi tersebut
adalah fungsi fungsi Gateways, fungsi Devices dan fungsi sensors. Dimana fungsi Gateway
s adalah fungsi dimana seluruh Gateway yang ingin disambungkan ke Wemos
D1 didaftarkan, fungsi Devices adalah fungsi dimana seluruh perangkat
Universitas Sumatera Utara
44 yang ingin disambungkan ke WemosD1 didaftarkan, begitu juga dengan fungsi
sensors yang merupakan tempat dimana seluruh sensor yang ingin disambungkan ke WemosD1 didaftarkan. Class WemosD1 lebih jelasnya dapat dilihat pada
Gambar 3.18.
1 c l as s
Wemos D1 :
publ i c v i r t ual
Boar d { 2
pr ot ec t ed :
3 v oi d
gat eway s 4 {
5 t hi s
- at t ac hGat eway new
Per s i s t ent Ht t p s t d: : map
St r i ng ,
St r i ng {
6 { hos t
, env : : ht t pCl i ent : : hos t } , 7 {
mode , env : : ht t pCl i ent : : mode } ,
8 { publ i s hKey
, env : : ht t pCl i ent : : publ i s hKey } , 9 {
s ubs c r i beKey , env : : ht t pCl i ent : : s ubs c r i beKey } ,
10 { s i gnat ur e
, env : : ht t pCl i ent : : s i gnat ur e } , 11 {
c hannel Name , env : : ht t pCl i ent : : c hannel Name } ,
12 { c al l bac k
, env : : ht t pCl i ent : : c al l bac k } 13 } ;
14 } 15
v oi d dev i c es
16 { 17
t hi s - at t ac hDev i c e
new Ai r Condi t i oner D13,
NULL ;
18 t hi s
- at t ac hDev i c e new
Led BUI LTI N_LED, NULL
; 19 }
20 v oi d
s ens or s 21 {
22 t hi s
- at t ac hSens or new
Sens or Suhu D12 ; 23 }
24 } ;
Gambar 3.18 Kode program class Wemos D1
3.5.5 DeviceClass
DeviceClass merupakanclass yang memodelkan perangkat yang terhubung
ke WemosD1. Class ini memungkinkan proses manipulasi perangkat menjadi lebih mudah. Class ini merupakan extend dari classDeviceContract, dimana pada
classcontract tersebut terdapat 7 fungsi virtual yang harus diimplementasikan
oleh classDevice. ClassDeviceContract ditunjukkan pada Gambar 3.19.
Universitas Sumatera Utara
45
1 c l as s
Dev i c eCont r ac t 2 {
3 publ i c
: 4
v i r t ual v oi d
t ur nOn = ;
5 v i r t ual
v oi d t ur nOf f =
; 6
v i r t ual v oi d
behav i or = ;
7 v i r t ual
v oi d i ni t i al i z e =
; 8
v i r t ual i nt
get Pi n = ;
9 v i r t ual
v oi d s et Logger Logger Cont r ac t l ogger =
; 10
v i r t ual Logger Cont r ac t get Logger =
; 11 } ;
Gambar 3.19 Kode program classDeviceContract Fungsi tersebut antara lain: fungsi turnOn, bertanggung jawab untuk logika
menghidupkan perangkat; fungsi turnOff, bertanggung jawab untuk logika mematikan perangkat; fungsi behavior, adalah fungsi yang mengatur perilaku dari
perangkat; fungsi initialize, adalah fungsi yang bertanggung jawab untuk inisialisasi perangkat; fungsi getPin, berfungsi untuk mendapatkan nomor pin
perangkat dimana perangkat tersebut terhubung ke WemosD1; fungsi setLogger, adalah fungsi yang berguna untuk men-set Logger yang digunakan oleh
perangkat; fungsi getLogger, adalah fungsi yang berguna untuk mendapatkan Logger
yang digunakan. ClassDevice
mempunyai beberapa properti seperti driver dan sensor. Properti driver merupakan sebuah instance dari class yang meng-extends class
DriverContract. Driver bertanggung jawab pada logika yang dibutuhkan untuk menghidupkan dan mematikan perangkat. Properti berikutnya adalah sensor yang
berguna untuk mendapatkan nilai pembacaan tertentu, kemudian fungsi behavior dapat menggunakan nilai pembacaan tersebut untuk menjadi pertimbangan
perilaku dari perangkat.
Universitas Sumatera Utara
46 Instance dari classDevice tidak dapat langsung didaftarkan pada
ClassBoard . Hanya instance dari class yang meng-extends classDevice yang
dapat didaftarkan pada classBoard. Anak class dari classDevice dapat berupa perangkat yang lebih spesifik seperti LED, lampu, remote AC dan sebagainya.
3.5.6 SensorClass