Skip to content

Commit 1c669c1

Browse files
committed
Load device configuration from server
1 parent f37fb99 commit 1c669c1

File tree

4 files changed

+52
-30
lines changed

4 files changed

+52
-30
lines changed

src/app/components/testrunner/testrunner.component.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ export class TestrunnerComponent implements OnInit {
4242
ngOnInit(): void {
4343
this.deviceId = this.route.snapshot.paramMap.get("deviceId")!;
4444
console.log("deviceId: ", this.deviceId);
45-
this.deviceConfiguration = this.deviceConfigurationService.getDeviceConfigurationById(this.deviceId)!;
45+
this.deviceConfigurationService.getDeviceConfigurationById(this.deviceId).then(configuration => {
46+
this.deviceConfiguration = configuration!;
47+
})
4648
this.espPortService.portStateStream.subscribe(isConnected => {
4749
console.log("isConnected: ", isConnected);
4850
this.connected = isConnected;

src/app/home/home.component.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,20 @@ export class HomeComponent implements OnInit {
1414
constructor(public deviceConfigurationService: DeviceConfigurationService) {
1515

1616
}
17+
1718
ngOnInit(): void {
18-
this.deviceConfigurations = this.deviceConfigurationService.getDeviceConfigurations();
19+
this.loadConfiguration();
1920
this.deviceConfigurationService.deviceConfigurationStream.subscribe((id) => {
20-
this.deviceConfigurations = this.deviceConfigurationService.getDeviceConfigurations();
21+
this.loadConfiguration();
2122
});
2223
}
2324

25+
loadConfiguration() {
26+
this.deviceConfigurationService.getDeviceConfigurations().then((configuration) => {
27+
this.deviceConfigurations = configuration;
28+
})
29+
}
30+
2431
deleteDevice(id: string) {
2532
this.deviceConfigurationService.deleteLocalDeviceById(id);
2633
}

src/app/shared/device-configuration.service.ts

Lines changed: 16 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
import { HttpClient } from '@angular/common/http';
12
import { Injectable } from '@angular/core';
2-
import { Subject } from 'rxjs';
3+
import { firstValueFrom, Observable, Subject } from 'rxjs';
34
import { DeviceConfiguration } from '../model/device-configuration';
45

56
@Injectable({
@@ -13,40 +14,28 @@ export class DeviceConfigurationService {
1314

1415
localDeviceConfigurations: DeviceConfiguration[];
1516

16-
deviceConfigurations: DeviceConfiguration[] = [{
17-
id: "epulse-feather",
18-
name: "ePulse Feather",
19-
imageSource: "assets/feather/epulsefeather.jpg",
20-
partitions: [{
21-
name: 'Firmware',
22-
data: new Uint8Array,
23-
offset: 0x00,
24-
url: './assets/feather/app-firmware.bin'
25-
}]
26-
},
27-
{
28-
id: "espgateway",
29-
name: "ESPGateway",
30-
imageSource: "assets/espgateway/espgateway.jpg",
31-
partitions: [{
32-
name: 'Firmware',
33-
data: new Uint8Array,
34-
offset: 0x00,
35-
url: './assets/espgateway/app-firmware.bin'
36-
}]
37-
}];
17+
deviceConfigurations: DeviceConfiguration[] = [];
3818

3919

40-
constructor() { }
20+
constructor(public httpClient: HttpClient) {
4121

42-
getDeviceConfigurations(): DeviceConfiguration[] {
22+
}
23+
24+
25+
loadDefaultDeviceConfiguration(): Observable<DeviceConfiguration[]> {
26+
return this.httpClient.get<DeviceConfiguration[]>("/assets/defaultDeviceConfiguration.json");
27+
}
28+
29+
async getDeviceConfigurations(): Promise<DeviceConfiguration[]> {
30+
this.deviceConfigurations = await firstValueFrom(this.loadDefaultDeviceConfiguration());
4331
this.loadLocalDeviceConfigurations();
4432
var combinedDeviceConfigurations = this.deviceConfigurations.concat(this.localDeviceConfigurations);
4533
return combinedDeviceConfigurations;
4634
}
4735

48-
getDeviceConfigurationById(id: string) {
49-
return this.getDeviceConfigurations().find(x => x.id == id);
36+
async getDeviceConfigurationById(id: string) {
37+
const combinedConfiguration = await this.getDeviceConfigurations();
38+
return combinedConfiguration.find(x => x.id == id);
5039
}
5140

5241
addOrUpdateLocalStorageConfiguration(deviceConfiguration: DeviceConfiguration) {
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
[
2+
{
3+
"id": "epulse-feather",
4+
"name": "ePulse Feather",
5+
"imageSource": "assets/feather/epulsefeather.jpg",
6+
"partitions": [{
7+
"name": "Firmware",
8+
"data": [],
9+
"offset": 0,
10+
"url": "./assets/feather/app-firmware.bin"
11+
}]
12+
},
13+
{
14+
"id": "espgateway",
15+
"name": "ESPGateway",
16+
"imageSource": "assets/espgateway/espgateway.jpg",
17+
"partitions": [{
18+
"name": "Firmware",
19+
"data": [],
20+
"offset": 0,
21+
"url": "./assets/espgateway/app-firmware.bin"
22+
}]
23+
}
24+
]

0 commit comments

Comments
 (0)