94 lines
3.4 KiB
TypeScript
94 lines
3.4 KiB
TypeScript
import { Greenhouse, GreenhouseInfo } from "../api/data-contracts";
|
|
|
|
export type HistoryData = {
|
|
id: number,
|
|
action: string,
|
|
startAt: string,
|
|
endAt: string
|
|
}
|
|
|
|
export type TemperatureHistoryData = {
|
|
id: number,
|
|
value: number,
|
|
date: string
|
|
}
|
|
|
|
export type HumidityHistoryData = {
|
|
id: number,
|
|
value: number,
|
|
date: string
|
|
}
|
|
|
|
export default class GreenhouseService {
|
|
private static _info: GreenhouseInfo = {} as GreenhouseInfo;
|
|
public getData(id: number): GreenhouseInfo {
|
|
if (GreenhouseService._info.id) return GreenhouseService._info;
|
|
|
|
let info = {
|
|
id: id,
|
|
percentWater: randomInt(50, 60),
|
|
soilTemperature: randomInt(17, 28),
|
|
pumpStatus: randomInt(0, 1) == 1,
|
|
heatingStatus: randomInt(0, 1) == 1,
|
|
autoWateringStatus: randomInt(0, 1) == 1
|
|
};
|
|
GreenhouseService._info = info;
|
|
return info;
|
|
}
|
|
|
|
public setSettings(settings: Greenhouse): boolean {
|
|
let newInfo = {
|
|
id: settings.id,
|
|
percentWater: randomInt(50, 60),
|
|
soilTemperature: randomInt(17, 28),
|
|
pumpStatus: randomInt(0, 1) == 1,
|
|
heatingStatus: settings.heatingMode,
|
|
autoWateringStatus: settings.wateringMode
|
|
} as GreenhouseInfo;
|
|
GreenhouseService._info = newInfo;
|
|
return true;
|
|
}
|
|
|
|
public getCommandsHistory(id: number): HistoryData[] {
|
|
return [
|
|
{ id: 1, action: "Открыт вентиль", startAt: "10.12.2024", endAt: "11.12.2024" },
|
|
{ id: 2, action: "Закрыт вентиль", startAt: "11.12.2024", endAt: "14.12.2024" },
|
|
{ id: 3, action: "Открыт вентиль", startAt: "14.12.2024", endAt: "15.12.2024" },
|
|
{ id: 4, action: "Закрыт вентиль", startAt: "15.12.2024", endAt: "17.12.2024" },
|
|
{ id: 5, action: "Открыт вентиль", startAt: "17.12.2024", endAt: "18.12.2024" },
|
|
|
|
{ id: 6, action: "Включен нагреватель", startAt: "18.12.2024", endAt: "22.12.2024"},
|
|
{ id: 7, action: "Выключен нагреватель", startAt: "22.12.2024", endAt: "24.12.2024"},
|
|
]
|
|
}
|
|
|
|
public getTemperatureHistory(id: number): TemperatureHistoryData[] {
|
|
return [
|
|
{ id: 1, value: 30, date: "10.12.2024" },
|
|
{ id: 2, value: 28, date: "12.12.2024" },
|
|
{ id: 3, value: 29, date: "14.12.2024" },
|
|
{ id: 4, value: 31, date: "16.12.2024" },
|
|
{ id: 5, value: 27, date: "18.12.2024" },
|
|
{ id: 6, value: 26, date: "20.12.2024" },
|
|
{ id: 7, value: 32, date: "22.12.2024" },
|
|
{ id: 8, value: 33, date: "24.12.2024" },
|
|
]
|
|
}
|
|
|
|
public getHumidityHistory(id: number): HumidityHistoryData[] {
|
|
return [
|
|
{ id: 1, value: 78, date: "10.12.2024" },
|
|
{ id: 2, value: 80, date: "12.12.2024" },
|
|
{ id: 3, value: 81, date: "14.12.2024" },
|
|
{ id: 4, value: 82, date: "16.12.2024" },
|
|
{ id: 5, value: 83, date: "18.12.2024" },
|
|
{ id: 6, value: 79, date: "20.12.2024" },
|
|
{ id: 7, value: 84, date: "22.12.2024" },
|
|
{ id: 8, value: 85, date: "24.12.2024" },
|
|
]
|
|
}
|
|
}
|
|
|
|
function randomInt(min: number, max: number): number {
|
|
return Math.floor(Math.random() * (max - min + 1) + min);
|
|
} |