|
|
|
import { observable } from "mobx";
|
|
|
|
import { Duration } from "./Duration";
|
|
|
|
import { SprinklersDevice } from "./SprinklersDevice";
|
|
|
|
|
|
|
|
export class SectionRun {
|
|
|
|
readonly id: number;
|
|
|
|
section: number;
|
|
|
|
duration: Duration;
|
|
|
|
startTime: Date | null;
|
|
|
|
pauseTime: Date | null;
|
|
|
|
|
|
|
|
constructor(id: number = 0, section: number = 0, duration: Duration = new Duration()) {
|
|
|
|
this.id = id;
|
|
|
|
this.section = section;
|
|
|
|
this.duration = duration;
|
|
|
|
this.startTime = null;
|
|
|
|
this.pauseTime = null;
|
|
|
|
}
|
|
|
|
|
|
|
|
toString() {
|
|
|
|
return `SectionRun{id=${this.id}, section=${this.section}, duration=${this.duration},` +
|
|
|
|
` startTime=${this.startTime}, pauseTime=${this.pauseTime}}`;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export class SectionRunner {
|
|
|
|
readonly device: SprinklersDevice;
|
|
|
|
|
|
|
|
@observable queue: SectionRun[] = [];
|
|
|
|
@observable current: SectionRun | null = null;
|
|
|
|
@observable paused: boolean = false;
|
|
|
|
|
|
|
|
constructor(device: SprinklersDevice) {
|
|
|
|
this.device = device;
|
|
|
|
}
|
|
|
|
|
|
|
|
cancelRunById(id: number): Promise<{}> {
|
|
|
|
return this.device.cancelSectionRunById(id);
|
|
|
|
}
|
|
|
|
|
|
|
|
toString(): string {
|
|
|
|
return `SectionRunner{queue="${this.queue}", current="${this.current}", paused=${this.paused}}`;
|
|
|
|
}
|
|
|
|
}
|