blob: 3ce847acbeeaecf5174c9a08fc49f4e21445055e [file] [log] [blame]
James Feist22c257a2018-08-31 14:07:12 -07001
2/*
3// Copyright (c) 2018 Intel Corporation
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing, software
12// distributed under the License is distributed on an "AS IS" BASIS,
13// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14// See the License for the specific language governing permissions and
15// limitations under the License.
16*/
17
18#pragma once
19
20#include <cstddef>
21#include <vector>
22
23namespace ec
24{
25constexpr size_t maxStepwisePoints = 20;
26
27struct StepwiseInfo
28{
Patrick Venture5f59c0f2018-11-11 12:55:14 -080029 double ts; // sample time in seconds
30 double reading[maxStepwisePoints];
31 double output[maxStepwisePoints];
32 double positiveHysteresis;
33 double negativeHysteresis;
James Feist608304d2019-02-25 10:01:42 -080034 bool isCeiling;
James Feist22c257a2018-08-31 14:07:12 -070035};
36
Patrick Venture5f59c0f2018-11-11 12:55:14 -080037double stepwise(const ec::StepwiseInfo& info, double value);
James Feist22c257a2018-08-31 14:07:12 -070038
39} // namespace ec