33 lines
		
	
	
		
			667 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			667 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* Copyright (c) 2025 Rodrigo Arias Mallo <rodarima@gmail.com>
 | |
|  * SPDX-License-Identifier: GPL-3.0-or-later */
 | |
| 
 | |
| #ifndef BARISTA_OVERHEAT_H
 | |
| #define BARISTA_OVERHEAT_H
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| #define OVH_NSAMPLES	20
 | |
| #define OVH_INTERVAL	200 /* ms */
 | |
| #define OVH_THRESHOLD	2.0 /* °C */
 | |
| 
 | |
| struct overheat {
 | |
| 	unsigned long last_time;
 | |
| 	float temp[OVH_NSAMPLES];
 | |
| 	int next;
 | |
| 	int n;
 | |
| 	float delta;
 | |
| };
 | |
| 
 | |
| void overheat_init(struct overheat *o);
 | |
| void overheat_input(struct overheat *o, unsigned long t_ms, float temp);
 | |
| float overheat_delta(struct overheat *o);
 | |
| int overheat_panic(struct overheat *o);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* BARISTA_OVERHEAT_H */
 | 
