forked from hypery11/flipper-tesla-fsd
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtesla_fsd_app.h
More file actions
72 lines (59 loc) · 1.64 KB
/
Copy pathtesla_fsd_app.h
File metadata and controls
72 lines (59 loc) · 1.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#pragma once
#include <furi.h>
#include <gui/gui.h>
#include <gui/scene_manager.h>
#include <gui/view_dispatcher.h>
#include <gui/modules/widget.h>
#include <gui/modules/submenu.h>
#include <gui/modules/variable_item_list.h>
#include "libraries/mcp_can_2515.h"
#include "fsd_logic/fsd_handler.h"
#define TESLA_FSD_VERSION "2.3.0"
typedef enum {
TeslaFSDSceneMainMenu,
TeslaFSDSceneSettings,
TeslaFSDSceneHWDetect,
TeslaFSDSceneHWSelect,
TeslaFSDSceneRunning,
TeslaFSDSceneAbout,
TeslaFSDSceneCount,
} TeslaFSDScene;
typedef enum {
TeslaFSDViewSubmenu,
TeslaFSDViewWidget,
TeslaFSDViewVarItemList,
} TeslaFSDView;
typedef enum {
TeslaFSDEventHWDetected,
TeslaFSDEventHWNotFound,
TeslaFSDEventNoDevice,
TeslaFSDEventSelectHW3,
TeslaFSDEventSelectHW4,
} TeslaFSDEvent;
typedef enum {
WorkerFlagStop = (1 << 0),
} WorkerFlag;
typedef struct {
Gui* gui;
SceneManager* scene_manager;
ViewDispatcher* view_dispatcher;
Widget* widget;
Submenu* submenu;
VariableItemList* var_item_list;
MCP2515* mcp_can;
CANFRAME can_frame;
FuriThread* worker_thread;
FuriMutex* mutex;
TeslaHWVersion hw_version;
FSDState fsd_state;
// feature toggles (set in settings, copied to fsd_state at start)
bool force_fsd;
bool suppress_speed_chime;
bool emergency_vehicle_detect;
bool nag_killer;
bool precondition; // periodic 0x082 inject for battery preheat
OpMode op_mode; // Active / ListenOnly / Service
} TeslaFSDApp;
TeslaFSDApp* tesla_fsd_app_alloc(void);
void tesla_fsd_app_free(TeslaFSDApp* app);
int32_t tesla_fsd_main(void* p);