Add laundry display

This commit is contained in:
2019-09-10 20:34:31 -04:00
parent a32e65de1c
commit 38c32b4c3b
12 changed files with 302 additions and 60 deletions

View File

@@ -0,0 +1,31 @@
import { Injectable } from '@angular/core';
import { Observable, BehaviorSubject } from 'rxjs';
import { Socket } from 'ngx-socket-io';
import { LaundryStatus } from './laundry-status';
@Injectable({
providedIn: 'root'
})
export class LaundryService {
private latestStatus: BehaviorSubject<LaundryStatus> = new BehaviorSubject<LaundryStatus>(new LaundryStatus());
constructor(private socket: Socket) {
this.socket.on('status', (statusString: string) => {
const newStatus: LaundryStatus = JSON.parse(statusString);
if (newStatus.washer !== undefined) {
this.latestStatus.value.washer = newStatus.washer;
}
if (newStatus.dryer !== undefined) {
this.latestStatus.value.dryer = newStatus.dryer;
}
});
this.socket.emit('getStatus');
}
getLatestStatus(): Observable<LaundryStatus> {
return this.latestStatus.asObservable();
}
}