Skip to content

Commit db0d98d

Browse files
rjwatskasedy
andauthored
Extend Status (rjwats#121)
* Added Sdk Version and ~heap fragmentation to system page * Add flash chip speed to status page Co-authored-by: kasedy <[email protected]>
1 parent 13f97b6 commit db0d98d

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

interface/src/system/SystemStatusForm.tsx

+9-4
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ class SystemStatusForm extends Component<SystemStatusFormProps, SystemStatusForm
3434
processing: false
3535
}
3636

37+
approxHeapFragmentation = (): number => {
38+
const { data: { max_alloc_heap, free_heap } } = this.props;
39+
return 100 - Math.round((max_alloc_heap / free_heap) * 100);
40+
}
41+
3742
createListItems() {
3843
const { data } = this.props
3944
return (
@@ -44,7 +49,7 @@ class SystemStatusForm extends Component<SystemStatusFormProps, SystemStatusForm
4449
<DevicesIcon />
4550
</Avatar>
4651
</ListItemAvatar>
47-
<ListItemText primary="Platform" secondary={data.esp_platform} />
52+
<ListItemText primary="Device (Platform / SDK)" secondary={data.esp_platform + ' / ' + data.sdk_version} />
4853
</ListItem>
4954
<Divider variant="inset" component="li" />
5055
<ListItem >
@@ -62,7 +67,7 @@ class SystemStatusForm extends Component<SystemStatusFormProps, SystemStatusForm
6267
<MemoryIcon />
6368
</Avatar>
6469
</ListItemAvatar>
65-
<ListItemText primary="Free Heap" secondary={data.free_heap + ' bytes'} />
70+
<ListItemText primary="Heap (Free / Max Alloc)" secondary={data.free_heap + ' / ' + data.max_alloc_heap + ' bytes (~' + this.approxHeapFragmentation() + '% fragmentation)'} />
6671
</ListItem>
6772
<Divider variant="inset" component="li" />
6873
<ListItem >
@@ -71,7 +76,7 @@ class SystemStatusForm extends Component<SystemStatusFormProps, SystemStatusForm
7176
<DataUsageIcon />
7277
</Avatar>
7378
</ListItemAvatar>
74-
<ListItemText primary="Sketch Size (used/max)" secondary={data.sketch_size + ' / ' + data.free_sketch_space + ' bytes'} />
79+
<ListItemText primary="Sketch (Size / Free)" secondary={data.sketch_size + ' / ' + data.free_sketch_space + ' bytes'} />
7580
</ListItem>
7681
<Divider variant="inset" component="li" />
7782
<ListItem >
@@ -80,7 +85,7 @@ class SystemStatusForm extends Component<SystemStatusFormProps, SystemStatusForm
8085
<SdStorageIcon />
8186
</Avatar>
8287
</ListItemAvatar>
83-
<ListItemText primary="Flash Chip Size" secondary={data.flash_chip_size + ' bytes'} />
88+
<ListItemText primary="Flash Chip (Size / Speed)" secondary={data.flash_chip_size + ' bytes / ' + (data.flash_chip_speed / 1000000).toFixed(0) + ' MHz'} />
8489
</ListItem>
8590
<Divider variant="inset" component="li" />
8691
</Fragment>

interface/src/system/types.ts

+3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
export interface SystemStatus {
22
esp_platform: string;
3+
max_alloc_heap: number;
34
cpu_freq_mhz: number;
45
free_heap: number;
56
sketch_size: number;
67
free_sketch_space: number;
8+
sdk_version: string;
79
flash_chip_size: number;
10+
flash_chip_speed: number;
811
}
912

1013
export interface OTASettings {

lib/framework/SystemStatus.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@ void SystemStatus::systemStatus(AsyncWebServerRequest* request) {
1212
JsonObject root = response->getRoot();
1313
#ifdef ESP32
1414
root["esp_platform"] = "esp32";
15+
root["max_alloc_heap"] = ESP.getMaxAllocHeap();
1516
#elif defined(ESP8266)
1617
root["esp_platform"] = "esp8266";
18+
root["max_alloc_heap"] = ESP.getMaxFreeBlockSize();
1719
#endif
1820
root["cpu_freq_mhz"] = ESP.getCpuFreqMHz();
1921
root["free_heap"] = ESP.getFreeHeap();

0 commit comments

Comments
 (0)