--- /dev/null
+import { Component, OnInit, TemplateRef, ViewChild, AfterViewInit } from '@angular/core';
+import { FormBuilder, FormGroup } from '@angular/forms';
+import { ToolbarService } from './../toolbar/toolbar.service';
+import { ToastService } from './toast.service';
+
+import { uploadImageData } from './../datainterface'
+import { EaltserviceService } from '../ealtservice.service'
+
+import { PcbimagesComponent } from './../pcbimages/pcbimages.component'
+
+
+import { DomSanitizer, SafeUrl } from "@angular/platform-browser";
+
+export interface Edgesites {
+ value: string;
+ viewValue: string;
+}
+
+export interface Defects {
+ value: string;
+ viewValue: string;
+}
+
+export interface Cameras {
+ value: string;
+ viewValue: string;
+}
+
+@Component({
+ selector: 'app-pcb',
+ templateUrl: './pcb.component.html',
+ styleUrls: ['./pcb.component.scss']
+})
+export class PcbComponent implements OnInit {
+
+ imageDeployForm: FormGroup;
+ modelDeployForm: FormGroup;
+ url;
+ msg = "";
+
+ modelBool = false;
+ imageBool = false;
+ detectBool = false;
+ detectPendingBool = false;
+ selectedEdgeSite: String;
+ selectedDefect: String;
+ selectedCamera: String;
+
+ parentData: String;
+ detectData: String;
+
+ uploadImageData = {} as uploadImageData;
+ isTemplate(toast) { return toast.textOrTpl instanceof TemplateRef; }
+
+ pcbInfo = {} ;
+
+ edgesites: Edgesites[] = [
+ {value: 'beijinglab', viewValue: 'beijinglab'},
+ {value: 'shenzhenlab', viewValue: 'shenzhenlab'},
+ {value: 'shanghailab', viewValue: 'shanghailab'}
+ ];
+
+ defects: Defects[] = [
+ {value: 'all', viewValue: 'All Defects'},
+ {value: 'missing_hole', viewValue: 'Missing Hole'},
+ {value: 'mouse_bite', viewValue: 'Mouse Bite'},
+ {value: 'open_circuit', viewValue: 'Open Circuit'},
+ {value: 'short', viewValue: 'Short'},
+ {value: 'spur', viewValue: 'Spur'},
+ {value: 'spurious_copper', viewValue: 'Spurious Copper'}
+ ];
+
+ cameras: Cameras[] = [
+ {value: 'camera1', viewValue: 'camera1'},
+ {value: 'camera2', viewValue: 'camera2'},
+ {value: 'camera3', viewValue: 'camera3'}
+ ];
+
+ @ViewChild(PcbimagesComponent) pcbchild;
+
+ constructor(
+ private formBuilder: FormBuilder,
+ public toolbarService: ToolbarService,
+ public toastService: ToastService,
+ private serviceobj: EaltserviceService,
+ private sanitizer: DomSanitizer
+ ) { }
+
+ ngOnInit(): void {
+
+ // let pcbimagesObj = new PcbimagesComponent();
+
+ this.imageDeployForm = this.formBuilder.group(
+ {
+ deployzipfile: ['']
+ }
+ );
+ this.modelDeployForm = this.formBuilder.group(
+ {
+ deploymodelfile: ['']
+ }
+ );
+
+ this.selectedCamera = JSON.parse(localStorage.getItem('camera'));
+ this.selectedEdgeSite = JSON.parse(localStorage.getItem('edgesite'));
+
+ }
+
+ ngOnDestroy(): void {
+ // localStorage.removeItem('camera')
+ // localStorage.removeItem('edgesite')
+ }
+
+ fileProgress(event) {
+ console.log("Inside fileProgress...")
+ debugger;
+ if(event.target.files.length > 0 ){
+ const deployfile = event.target.files[0];
+ let filee = event.target.files[0];
+ this.imageDeployForm.get('deployzipfile').setValue(deployfile);
+ debugger;
+ let filecon: string = '';
+ let fileReader: FileReader = new FileReader();
+ // console.log(YAML.parse(deployfile));
+ debugger;
+ }
+
+ var reader = new FileReader();
+ reader.readAsDataURL(event.target.files[0]);
+
+ reader.onload = (_event) => {
+ this.msg = "";
+ this.url = reader.result;
+ }
+ console.log("Ends fileProgress...")
+ }
+
+ modelFileProgress(event) {
+ console.log("Inside fileProgress...")
+ debugger;
+ if(event.target.files.length > 0 ){
+ const deployfile = event.target.files[0];
+ let filee = event.target.files[0];
+ this.modelDeployForm.get('deploymodelfilefile').setValue(deployfile);
+ debugger;
+ let filecon: string = '';
+ let fileReader: FileReader = new FileReader();
+ // console.log(YAML.parse(deployfile));
+ debugger;
+ }
+ console.log("Ends modelFileProgress...")
+ }
+
+ onSubmit() {
+ console.log("Inside onSubmit() ....")
+ const formData = new FormData();
+
+ formData.append('deployfile',this.imageDeployForm.get('deployzipfile').value);
+ debugger;
+
+ this.uploadImageData.uploadFile = this.imageDeployForm.value.deployzipfile;
+
+ console.log("uploadImagedata...");
+ console.log(this.uploadImageData);
+ console.log("formData....");
+ console.log(formData);
+ // formData.append('file', this.fileData);
+ // this.deployData.deployFile = formData.get('yamlfile')
+ console.log(this.imageDeployForm.value);
+ this.imageBool = true;
+ this.modelBool = false;
+ this.detectBool = false;
+ debugger;
+ this.showSuccess();
+
+ localStorage.setItem('camera',JSON.stringify(this.selectedCamera))
+ localStorage.setItem('edgesite',JSON.stringify(this.selectedEdgeSite))
+
+ debugger;
+
+ // this.imageBool = false;
+ this.serviceobj.postDeploymentPackage(formData)
+ .subscribe(data => {
+ console.log(data);
+ this.showSuccess();
+ // console.log(data);
+ }
+ ,error => console.log(error)
+ );
+ }
+
+ onModelSubmit() {
+ console.log("Inside onSubmit() ....")
+ const formData = new FormData();
+
+ formData.append('deployfile',this.modelDeployForm.get('deploymodelfile').value);
+
+ this.uploadImageData.uploadFile = this.modelDeployForm.value.deploymodelfile;
+
+ console.log(this.uploadImageData);
+ // formData.append('file', this.fileData);
+ // this.deployData.deployFile = formData.get('yamlfile')
+ console.log(this.modelDeployForm.value);
+ this.modelBool = true;
+ this.imageBool = false;
+ this.detectBool = false;
+ this.showSuccess();
+ // this.modelBool = false;
+
+ this.serviceobj.postDeploymentPackage(formData)
+ .subscribe(data => {
+ console.log(data);
+ this.showSuccess();
+ // console.log(data);
+ }
+ ,error => console.log(error)
+ );
+ }
+
+ onDetect() {
+
+ this.detectBool = false;
+ this.modelBool = false;
+ this.imageBool = false;
+
+ this.toastService.show('Defect Detection in PCB images In progress', { classname: 'bg-warning text-dark', delay: 10000 });
+
+ this.detectData = this.selectedEdgeSite + '/' + this.selectedCamera;
+ debugger;
+
+ this.serviceobj.pcbDetect(this.detectData)
+ .subscribe(data => {
+ console.log(data);
+ if(data.responce == "success"){
+ this.detectBool = true;
+ this.detectPendingBool = false;
+ this.showSuccess();
+ }
+ }
+ ,error => console.log(error)
+ );
+
+ this.detectData = '';
+ debugger;
+ }
+
+
+ // Success message display
+
+ private async showSuccess() {
+
+ //wait for 3 seconds
+ await this.delay(3000);
+ console.log("Inside showSuccess...")
+
+ if(this.imageBool == true){
+ this.toastService.show('PCB images from cameras uploaded successfully', { classname: 'bg-success text-light', delay: 9000 });
+ }
+
+ if(this.modelBool == true){
+ this.toastService.show('PCB Trained model uploaded Successfully', { classname: 'bg-success text-light', delay: 9000 });
+ }
+
+ if(this.detectBool == true){
+ // this.toastService.show('Defect Detection in PCB images In progress', { classname: 'bg-warning text-dark', delay: 3000 });
+ // await this.delay(3000);
+ this.toastService.show('Defect Detection in PCB images Completed', { classname: 'bg-success text-light', delay: 9000 });
+ }
+
+ if(this.detectPendingBool == true ){
+ this.toastService.show('Defect Detection in PCB images In progress', { classname: 'bg-warning text-dark', delay: 9000 });
+ // await this.delay(9000);
+ }
+
+ }
+
+ private delay(ms: number)
+ {
+ return new Promise(resolve => setTimeout(resolve, ms));
+ }
+
+ onEdgeSiteSelection() {
+ console.log("on Edge Site Selection triggered....");
+ console.log(this.selectedEdgeSite);
+ }
+
+ onDefectSelection() {
+ debugger;
+ console.log("on Defect Selection triggered....");
+ console.log(this.selectedDefect);
+ }
+
+ onCameraSelection() {
+ debugger;
+ console.log("on Camera Selection triggered....");
+ console.log(this.selectedCamera);
+ }
+
+ onPreview() {
+ console.log("Inside onPreview.....")
+ debugger;
+ this.parentData = this.selectedEdgeSite + '/' + this.selectedCamera;
+ debugger;
+ let pcbInputObj = new PcbimagesComponent(this.serviceobj, this.sanitizer);
+ }
+
+}