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