rusEFI
The most advanced open source ECU
rusefi_types.h
Go to the documentation of this file.
1 /**
2  * @file rusefi_types.h
3  *
4  * @date Jan 12, 2015
5  * @author Andrey Belomutskiy, (c) 2012-2020
6  */
7 
8 #pragma once
9 
10 #include <string.h>
11 #include <stdbool.h>
12 #include <float.h>
13 #include <stdint.h>
14 #include <sys/types.h>
15 
16 #include <rusefi/rusefi_time_types.h>
17 #include "generated_lookup_meta.h"
18 #include "rusefi_enums.h"
19 #include "firing_order.h"
20 
21 #if __cplusplus
22 #include "efi_scaled_channel.h"
23 #endif
24 
25 #define DEFAULT_FUEL_LOAD_COUNT 16
26 #define DEFAULT_FUEL_RPM_COUNT 16
27 #define DEFAULT_IGN_LOAD_COUNT 16
28 #define DEFAULT_IGN_RPM_COUNT 16
29 
30 #define TWO_STROKE_CYCLE_DURATION 360
31 #define FOUR_STROKE_CYCLE_DURATION 720
32 
33 // gasoline E0
34 #define STOICH_RATIO 14.7f
35 #define CONST_PI 3.14159265358979323846
36 
37 /**
38  * integer time in milliseconds (1/1_000 of a second)
39  * 32 bit 4B / 1000 = 4M seconds = 1111.11 hours = 23(or46?) days.
40  * Please restart your ECU every 23(or46?) days? :) See issue https://github.com/rusefi/rusefi/issues/4554 tag#4554
41  * See getTimeNowUs()
42  */
43 using efitimems_t = uint32_t;
44 
45 using efidur_t = efitick_t;
46 
47 // date-time struct a la ctime struct tm
48 typedef struct {
49  uint32_t year = 0;
50  uint8_t month;
51  uint8_t day;
52  uint8_t hour;
53  uint8_t minute;
54  uint8_t second;
55  // uint16_t millisecond;
57 
58 using angle_t = float;
59 
60 using engineSyncCam_e = uint8_t;
61 
62 // mass in grams
63 using mass_t = float;
64 
65 // temperature, in Celsius
66 using temperature_t = float;
67 using floatms_t = float;
68 using floatus_t = float;
69 
70 /**
71  * numeric value from 0 to 100
72  */
73 using percent_t = float;
74 
75 using lua_script_t = char[LUA_SCRIPT_SIZE];
76 
77 using warning_message_t = char[WARNING_BUFFER_SIZE];
78 
79 using vehicle_info_t = char[VEHICLE_INFO_SIZE];
80 
81 using vin_number_t = char[VIN_NUMBER_SIZE];
82 
83 using gppwm_note_t = char[GPPWM_NOTE_SIZE];
84 
85 using brain_pin_e = Gpio;
86 
87 using egt_cs_array_t = brain_pin_e[EGT_CHANNEL_COUNT];
88 
89 using pwm_freq_t = int16_t;
90 
91 using script_setting_t = float;
92 
Gpio
Fundamental rusEFI enumerable types live here.
Gpio brain_pin_e
Definition: rusefi_types.h:85
uint32_t efitimems_t
Definition: rusefi_types.h:43
int16_t pwm_freq_t
Definition: rusefi_types.h:89
float floatms_t
Definition: rusefi_types.h:67
uint8_t engineSyncCam_e
Definition: rusefi_types.h:60
efitick_t efidur_t
Definition: rusefi_types.h:45
float script_setting_t
Definition: rusefi_types.h:91
float floatus_t
Definition: rusefi_types.h:68
float mass_t
Definition: rusefi_types.h:63
char[LUA_SCRIPT_SIZE] lua_script_t
Definition: rusefi_types.h:75
char[VIN_NUMBER_SIZE] vin_number_t
Definition: rusefi_types.h:81
char[WARNING_BUFFER_SIZE] warning_message_t
Definition: rusefi_types.h:77
float angle_t
Definition: rusefi_types.h:58
char[VEHICLE_INFO_SIZE] vehicle_info_t
Definition: rusefi_types.h:79
float percent_t
Definition: rusefi_types.h:73
brain_pin_e[EGT_CHANNEL_COUNT] egt_cs_array_t
Definition: rusefi_types.h:87
char[GPPWM_NOTE_SIZE] gppwm_note_t
Definition: rusefi_types.h:83
float temperature_t
Definition: rusefi_types.h:66
uint8_t minute
Definition: rusefi_types.h:53
uint8_t hour
Definition: rusefi_types.h:52
uint8_t second
Definition: rusefi_types.h:54
uint8_t month
Definition: rusefi_types.h:50