import { Component, OnInit, ViewChild } from '@angular/core'; import {MatTableDataSource} from '@angular/material/table'; import { MatPaginator } from '@angular/material/paginator'; import { cameraData,monitorinfo, monitorDetails } from './../datainterface' import { RoboService } from './../../app/robo.service'; import { DomSanitizer, SafeUrl } from "@angular/platform-browser"; import { timer } from "rxjs" @Component({ selector: 'app-data-monitor', templateUrl: './data-monitor.component.html', styleUrls: ['./data-monitor.component.scss'] }) export class DataMonitorComponent implements OnInit { monitorColumns: string [] = ['shelfName','objType','currentCount','maxCount','status','time']; monitorDataSource = new MatTableDataSource(MONITOR_INFO_LIST); monitorArrayList = []; imageBlobUrl : any; image: any; thumbnail: any; myvar: any monitorInfo = {} as monitorDetails; @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator; constructor( private roboService: RoboService, private sanitizer: DomSanitizer ) { } ngOnInit(): void { this.monitorDetails(); this.inventoryDetails(); } timerFunc() { debugger; setInterval(this.refreshPage, 2000); // setTimeout(this.refreshPage , 2000); } refreshPage() { console.log("Inside refreshPage....") this.inventoryDetails(); this.monitorDetails(); } monitorDetails() { debugger; // setInterval(function(){ // console.log("Oooo Yeaaa!"); // this.roboService.getMonitorImage() // .subscribe( (data:any) => { // debugger; // console.log(data); // // referred https://stackoverflow.com/questions/55591871/view-blob-response-as-image-in-angular // let objectURL = 'data:image/jpeg;base64,' + data.image; // this.thumbnail = this.sanitizer.bypassSecurityTrustUrl(objectURL); // }, // error => console.log(error)); // }, 2000); this.roboService.getMonitorImage() .subscribe( (data:any) => { debugger; let objectURL = 'data:image/jpeg;base64,' + data.image; this.thumbnail = this.sanitizer.bypassSecurityTrustUrl(objectURL); debugger; }, error => console.log(error)); } inventoryDetails() { console.log("inventoryDetails started....") // setInterval(function(){ // console.log("Oooo!"); // this.roboService.getMonitorInfo() // .subscribe(data => { // console.log(data); // this.monitorInfo = data; // this.monitorArrayList = data.InventryData; // this.monitorDataSource = new MatTableDataSource(this.monitorArrayList); // this.monitorDataSource.paginator = this.paginator; // }, // error => console.log(error)); // }, 2000); this.roboService.getMonitorInfo() .subscribe(data => { console.log(data); this.monitorInfo = data; this.monitorArrayList = data.InventryData; this.monitorDataSource = new MatTableDataSource(this.monitorArrayList); this.monitorDataSource.paginator = this.paginator; }, error => console.log(error)); console.log("inventoryDetails finished...") } getColor(clr) { if(clr == "Mostly Filled"){ return "green" } if(clr == "Partially Filled"){ return "orange" } if(clr == "Needs Filling"){ return "red" } } } const MONITOR_INFO_LIST: monitorinfo[] = [ { shelfName: '', ObjType: '', currentCount: '', maxCount: '', status: '', time: '' } ];