Frontend: handle on/off of dark mask
Some checks failed
Build Packages / Unit tests (pull_request) Failing after 1h16m4s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 12m35s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 12m38s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m57s
Build Packages / Generate python client (push) Successful in 15s
Build Packages / build:rpm (rocky8) (push) Successful in 12m52s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 13m16s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 13m15s
Build Packages / Build documentation (push) Successful in 34s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 13m56s
Build Packages / build:rpm (rocky9) (push) Successful in 14m2s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 6m55s
Build Packages / Unit tests (push) Successful in 53m4s
Build Packages / build:rpm (ubuntu2404_nocuda) (pull_request) Successful in 11m49s
Build Packages / build:rpm (ubuntu2204_nocuda) (pull_request) Successful in 12m55s
Build Packages / build:rpm (rocky8_nocuda) (pull_request) Successful in 13m4s
Build Packages / build:rpm (ubuntu2204) (pull_request) Successful in 12m56s
Build Packages / Generate python client (pull_request) Successful in 19s
Build Packages / Create release (pull_request) Has been skipped
Build Packages / build:rpm (rocky8_sls9) (pull_request) Successful in 13m21s
Build Packages / build:rpm (rocky8) (pull_request) Successful in 13m19s
Build Packages / Build documentation (pull_request) Successful in 42s
Build Packages / build:rpm (rocky9_nocuda) (pull_request) Successful in 14m1s
Build Packages / build:rpm (rocky9) (pull_request) Successful in 13m57s
Build Packages / build:rpm (ubuntu2404) (pull_request) Successful in 10m5s

This commit is contained in:
2025-11-10 20:08:10 +01:00
parent fd620276d7
commit 239c7b7cfd

View File

@@ -17,6 +17,7 @@ type MyState = {
threshold_err: boolean;
frame_time_err: boolean;
number_of_frames_err: boolean;
number_of_frames_old: number;
max_pixel_count_err: boolean;
max_frames_with_signal_err: boolean;
};
@@ -39,11 +40,12 @@ class DarkMaskSettings extends Component<MyProps, MyState> {
number_of_frames_err: false,
max_pixel_count_err: false,
max_frames_with_signal_err: false,
number_of_frames_old: 1000
};
getValues = () => {
if (this.props.s !== undefined) {
const incoming: dark_mask_settings = this.props.s;
let incoming: dark_mask_settings = this.props.s;
if (!_.isEqual(incoming, this.state.last_downloaded_s)) {
this.setState((prev) => ({
s: incoming,
@@ -52,8 +54,11 @@ class DarkMaskSettings extends Component<MyProps, MyState> {
threshold_err: false,
frame_time_err: false,
number_of_frames_err: false,
number_of_frames_old:
incoming.number_of_frames === 0 ? prev.number_of_frames_old : incoming.number_of_frames,
max_pixel_count_err: false,
max_frames_with_signal_err: false,
enable: (this.props.s?.number_of_frames !== 0)
}));
}
}
@@ -91,20 +96,26 @@ class DarkMaskSettings extends Component<MyProps, MyState> {
<FormControlLabel
control={
<Checkbox
checked={this.state.s.number_of_frames === 0}
onChange={(e) => {
const checked = e.target.checked;
this.setState((prev) => {
const nextFrames = checked
? 0
: prev.s.number_of_frames === 0
? 1000
: prev.s.number_of_frames;
return {
number_of_frames_err: false, // zero-mode has no error
s: { ...prev.s, number_of_frames: nextFrames },
};
});
checked={this.state.s.number_of_frames !== 0}
onChange={(event) => {
if (!event.target.checked)
this.setState(prevState => ({
download_counter: this.state.download_counter + 1,
number_of_frames_err: false,
s: {
...prevState.s,
number_of_frames: 0
}
}));
else
this.setState(prevState => ({
download_counter: this.state.download_counter + 1,
number_of_frames_err: false,
s: {
...prevState.s,
number_of_frames: this.state.number_of_frames_old
}
}));
}}
/>
}
@@ -121,6 +132,7 @@ class DarkMaskSettings extends Component<MyProps, MyState> {
min={0.001}
default={4.0}
counter={this.state.download_counter}
disabled={this.state.s.number_of_frames === 0}
callback={(val: number, err: boolean) => {
this.setState((prev) => ({
threshold_err: err,
@@ -138,6 +150,7 @@ class DarkMaskSettings extends Component<MyProps, MyState> {
max={1000}
default={10}
counter={this.state.download_counter}
disabled={this.state.s.number_of_frames === 0}
callback={(val: number, err: boolean) => {
this.setState((prev) => ({
frame_time_err: err,
@@ -149,13 +162,18 @@ class DarkMaskSettings extends Component<MyProps, MyState> {
start_val={this.state.s.number_of_frames}
label={'Number of frames'}
float={false}
min={0}
min={1}
default={1000}
counter={this.state.download_counter}
disabled={this.state.s.number_of_frames === 0}
callback={(val: number, err: boolean) => {
this.setState((prev) => ({
let old: number = this.state.number_of_frames_old;
if (!err)
old = val;
this.setState(prevState => ({
number_of_frames_err: err,
s: { ...prev.s, number_of_frames: val },
number_of_frames_old: old,
s: {...prevState.s, number_of_frames: val}
}));
}}
@@ -169,6 +187,7 @@ class DarkMaskSettings extends Component<MyProps, MyState> {
min={0}
default={1}
fullWidth={true}
disabled={this.state.s.number_of_frames === 0}
counter={this.state.download_counter}
callback={(val: number, err: boolean) => {
this.setState((prev) => ({
@@ -186,6 +205,7 @@ class DarkMaskSettings extends Component<MyProps, MyState> {
default={0}
fullWidth={true}
counter={this.state.download_counter}
disabled={this.state.s.number_of_frames === 0}
callback={(val: number, err: boolean) => {
this.setState((prev) => ({
max_frames_with_signal_err: err,