BoardClass DeviceClass Rancangan SoftwareControler

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