blob: 4034b47a5ceaa6a7eeb06e2e3fd395633ca80c50 [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{
29 float ts; // sample time in seconds
30 float reading[maxStepwisePoints];
31 float output[maxStepwisePoints];
James Feist3dfaafd2018-09-20 15:46:58 -070032 float positiveHysteresis;
33 float negativeHysteresis;
James Feist22c257a2018-08-31 14:07:12 -070034};
35
36float stepwise(const ec::StepwiseInfo& info, float value);
37
38} // namespace ec