forked from DCC-EX/CommandStation-EX
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhmiConfig.h
264 lines (252 loc) · 10.6 KB
/
hmiConfig.h
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
/*
* LaBox Project
* Parameters
* @Author : Cedric Bellec
* @Organization : Locoduino.org
*/
#ifndef HMICONFIG_H
#define HMICONFIG_H
#ifdef USE_HMI
//---------------------- HMI section ------------------------------------
#define HMI_I2C_ADDR 0x3C
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define HMI_Rotation 2 // 1 : 90°, 2 : 180°, 3 : 270°
// Pins
#define PIN_LEDBUILTIN 2
#define PIN_BTN_SEL 18
#define PIN_BTN_BTNUP 23
#define PIN_BTN_BTNDWN 19
#define PIN_CURRENT_MES 36
#define PIN_VOLTAGE_MES 34
// U/I correctors
#define HMI_VoltageK 0.0068 // Voltage scaling coefficient
#define HMI_CurrentK 0.9 // Current scaling coefficient
#define HMI_deltaCurrent 0 // Current value shift with I=0
// Stack / string allocation sizes
#define HMI_StackNbCarElt 20 // 20 elements into the stack
#define HMI_EventMaxToDisplay 5 // We can display in full screnn 7 lines of event
#define HMI_MessageSize 20 // 20 characters for on message // Voir si il faut maintenir
#define HMI_MenueMessageSize 20 // 20 characters for un caption in menu
#define LineCarNbMax 20 // 1 ligne with FreeSerif9pt7b police, you can show 20 caracters max.
#define HMI_NbMemorisedTrain 10 //
#define nbCycleToWaitWifi 50
//--- Orders
#define HMI_OrderForward 20
#define HMI_OrderBack 21
#define HMI_OrderStop 22
#define HMI_OrderFunction 23
#define HMI_OrderStopAll 24
#define HMI_StartDCC 25
#define HMI_ShortCurcuit 26
#define HMI_WifiWaiting 27
#define HMI_noWifi 28
#define HMI_WifiOk 29
//--- Display effects
#define HMI_LowEffect 500
#define HMI_FastEffect 100
#define HMI_DataRefesh 1000
#define HMI_DisplayRefesh 100
#define HMI_TimeOutMenu 30000 // in milliseconds
//--- HMITrain
#define HMITrain_NbMaxFunctions 28
#define HMITrain_NbStep 128
#define HMITrain_RectHeight 5
#define HMITrain_RectWidth 8
#define HMITrain_RectSpace 1
//--- Menu
#define HMI_Menu_OnLine 201
#define HMI_Menu_OffLine 202
#define HMI_Menu_WifiOn 203
#define HMI_Menu_WifiOff 204
#define NbMaxLineVisible 5
#define MENUNOTINIT 300
#define MENUEXIT 301
#define MENUCHANGETOCHILD 302
#define MENUCHOSEN 303
#define MENUTRAINADDRREAD 304
#define MENUTRAINCVREAD 305
#define MENUTRAINCVWRITE 306
#define MENUTRAINIDENT 307
#define MENUSHUTTLESAMPLE 308
#define MENUDCDCCMODE 309
#define MENUINFORMATION_ABOUT 400
#define MENUINFORMATION_WIFI 401
#define MENUINFORMATION_EXCOMM 402
#define MENUTYPECOMEBCK 0x8000
#define MENUTYPELIST 0x7999
#define MENUACTION 0x7998
//#define MENUTYPEITEM 312
// Message by language : French
// maximum line size : ++++++++++++++++++++
#define TXT_Forward "AV"
#define TXT_Back "AR"
#define TXT_Forwardl "Avance"
#define TXT_Backl "Recule"
#define TXT_Stop "Stop"
#define TXT_Function "F"
#define TXT_StopAll "<ARRET DCC>"
#define TXT_StartDCC "<DCC On>"
#define TXT_ShortCircuit "COURT-CIRCUIT"
#define TXT_MenuDCCOffLine "DCC ON/OFF" // Les ? ne passent pas
#define TXT_MenuOnLine "En ligne"
#define TXT_MenuOffLine "Hors ligne"
#define TXT_MenuResetConfirm "Confirmation Reset"
#define TXT_MenuYes "Oui"
#define TXT_MenuNo "Non"
#define TXT_MenuParams "Parametres"
#define TXT_MenuInfos "Informations"
#define TXT_MenuAbout "A propos de..."
#define TXT_MenuAboutCSEX "CS-EX %s <sortie>"
#define TXT_MenuInfoButtons " <sortie>"
#define TXT_MenuWifiInfo "WiFi"
#define TXT_MenuEXCOMMInfo "EXCOMM"
#define TXT_MenuSoftReset "Redemarrage"
#define TXT_MenuBack "< Retour >"
#define TXT_MenuAddrRead "Lecture adr Train"
#define TXT_MenuAddrRetry "Relire"
#define TXT_MenuAddrQuit "Quitter"
#define TXT_MenuCVRead "Lecture CV"
#define TXT_MenuCVWrite "Ecriture CV"
#define TXT_MenuIdent "Ident. decodeur"
#define TXT_MenuShuttle "Va&Vient EXRail"
#define TXT_DcDccMode "DC/DCC"
#define TXT_PhysicalMes "Mesures U et I"
#define TXT_TrainView "Type de vue trains"
#define TXT_V1Train "1 train"
#define TXT_V2Trains "2 trains"
#define TXT_V3Trains "3 trains"
// maximum line size : ++++++++++++++++++++
#define TXT_LstEvent "Liste evenements"
#define TXT_WifiWaiting "Connexion WiFi..."
#define TXT_noWifi " !! Pas de WiFi !!"
#define TXT_WifiOk "...Wifi ok..."
#define TXT_BoxAddr "Adresse Box:"
// maximum line size : ++++++++++++++++++++
#define TXT_CVREAD_LOGO "LaBox CV Lecture"
#define TXT_CVWRITE_LOGO "LaBox CV Ecriture"
#define TXT_CVRW_CVVALUE "CV Valeur"
#define TXT_CVRW_CVOK "CV Valeur OK"
#define TXT_CVRW_CVFAIL "CV Valeur ECHEC"
#define TXT_CVREAD_READING " Lecture..."
#define TXT_CVWRITE_WRITING " Ecriture..."
#define TXT_CVRW_OK "AutreCV Quitter"
#define TXT_CVRW_FAIL "Refaire +/- Quitter"
#define TXT_CVRW_READY "+ Quitter"
#define TXT_CVREAD_ADDRESS "+ - Lire"
#define TXT_CVWRITE_ADDRESS "+ - Valeur"
#define TXT_CVWRITE_VALUE "+ - Ecrire"
// maximum line size : ++++++++++++++++++++
#define TXT_IDENT_LOGO "LaBox Decodeur"
#define TXT_IDENT_READING7 " Lecture cv7"
#define TXT_IDENT_READING8 " Lecture cv8"
#define TXT_IDENT_LOCOADDRESS "+ - Lancer"
#define TXT_IDENT_ERRORCV7 "ERREUR CV7"
#define TXT_IDENT_ERRORCV8 "ERREUR CV8 cv7=%d"
#define TXT_IDENT_UNKNOWNID "Inconnu cv8=%d"
#define TXT_IDENT_SEENMRA "See NMRA 9.2.2.5 pdf"
#define TXT_IDENT_VERSION "Version: %d"
// maximum line size : ++++++++++++++++++++
#define TXT_SHUTTLE_LOGO "LaBox EXRail shuttle"
#define TXT_SHUTTLE_RUNNING "Va&Vient EN ROUTE"
#define TXT_SHUTTLE_STOP "Stop"
// maximum line size : ++++++++++++++++++++
#define TXT_DCDCC_LOGO "LaBox DC/DCC mode"
#define TXT_DCDCC_DCRUNNING "DC"
#define TXT_DCDCC_DCCRUNNING "DCC"
#define TXT_DCDCC_TODC "DCC => DC"
#define TXT_DCDCC_TODCC "DC => DCC"
#define TXT_DCDCC_DC "Dc"
#define TXT_DCDCC_DCC "Dcc"
#define TXT_DCDCC_CONFIRM "Confirmer"
#define TXT_DCDCC_ABORT "Stop"
// Message by language : English
// maximum line size : ++++++++++++++++++++
/*#define TXT_Forward "FW"
#define TXT_Back "BK"
#define TXT_Forwardl "Forward"
#define TXT_Backl "Back"
#define TXT_Stop "Stop"
#define TXT_Function "F"
#define TXT_StopAll "!STOP ALL!"
#define TXT_StartDCC "<DCC On>"
#define TXT_ShortCircuit "SHORT-CIRCUIT"
#define TXT_MenuDCCOffLine "DCC ON/OFF"
#define TXT_MenuOnLine "On line"
#define TXT_MenuOffLine "Off line"
#define TXT_MenuDHCP "DHCP"
#define TXT_MenuResetConfirm "Reset confirmation ?"
#define TXT_MenuYes "Yes"
#define TXT_MenuNo "No"
#define TXT_MenuParams "Parameters"
#define TXT_MenuInfos "Informations"
#define TXT_MenuAbout "About..."
#define TXT_MenuAboutCSEX "CS-EX %s <quit>"
#define TXT_MenuInfoButtons " <quit>"
#define TXT_MenuWifiInfo "WiFi"
#define TXT_MenuEXCOMMInfo "EXCOMM"
#define TXT_MenuCAN "Networks CAN"
#define TXT_MenuSoftReset "Reboot"
#define TXT_MenuBack "< Return >"
#define TXT_MenuAddrRead "Read Train Addr"
#define TXT_MenuAddrRetry "Retry"
#define TXT_MenuAddrQuit "Quit"
#define TXT_MenuCVRead "Read CV"
#define TXT_MenuCVWrite "Write CV"
#define TXT_MenuIdent "Identify decoder"
#define TXT_MenuShuttle "Shuttle EXRail"
#define TXT_PhysicalMes "Measures U and I"
#define TXT_TrainView "Train view"
#define TXT_V1Train "1 train"
#define TXT_V2Trains "2 trains"
#define TXT_V3Trains "3 trains"
// maximum line size : ++++++++++++++++++++
#define TXT_LstEvent "Event list"
#define TXT_WifiWaiting "Connection WiFi..."
#define TXT_noWifi " !! No WiFi !!"
#define TXT_WifiOk "...Wifi ok..."
#define TXT_BoxAddr "Box address :"
// maximum line size : ++++++++++++++++++++
#define TXT_CVREAD_LOGO "LaBox CV Read"
#define TXT_CVWRITE_LOGO "LaBox CV Write"
#define TXT_CVRW_CVVALUE "CV Value"
#define TXT_CVRW_CVOK "CV Value OK"
#define TXT_CVRW_CVFAIL "CV Value FAIL"
#define TXT_CVREAD_READING " Reading..."
#define TXT_CVWRITE_WRITING " Writing..."
#define TXT_CVRW_OK "OtherCV Quit"
#define TXT_CVRW_FAIL "Redo +/- Quit"
#define TXT_CVRW_READY "+ Quit"
#define TXT_CVREAD_ADDRESS "+ - Read"
#define TXT_CVWRITE_ADDRESS "+ - Value"
#define TXT_CVWRITE_VALUE "+ - Write"
// maximum line size : ++++++++++++++++++++
#define TXT_IDENT_LOGO "LaBox Decoder"
#define TXT_IDENT_READING7 " Reading cv7"
#define TXT_IDENT_READING8 " Reading cv8"
#define TXT_IDENT_LOCOADDRESS "+ - Start"
#define TXT_IDENT_ERRORCV7 "ERROR CV7"
#define TXT_IDENT_ERRORCV8 "ERROR CV8 cv7=%d"
#define TXT_IDENT_UNKNOWNID "Unknown cv8=%d"
#define TXT_IDENT_SEENMRA "See NMRA 9.2.2.5 pdf"
#define TXT_IDENT_VERSION "Version: %d"
// maximum line size : ++++++++++++++++++++
#define TXT_SHUTTLE_LOGO "LaBox EXRail shuttle"
#define TXT_SHUTTLE_RUNNING "Shuttle RUNNING"
#define TXT_SHUTTLE_STOP "Stop"
// maximum line size : ++++++++++++++++++++
#define TXT_DCDCC_LOGO "LaBox DC/DCC mode"
#define TXT_DCDCC_DCRUNNING "DC"
#define TXT_DCDCC_DCCRUNNING "DCC"
#define TXT_DCDCC_TODC "DCC => DC"
#define TXT_DCDCC_TODCC "DC => DCC"
#define TXT_DCDCC_DC "Dc"
#define TXT_DCDCC_DCC "Dcc"
#define TXT_DCDCC_CONFIRM "Confirm"
#define TXT_DCDCC_ABORT "Abort"*/
//---------------------- Global section ---------------------------------
#define Labox_StateDCCOFF 101
#define Labox_StateDCCON 102
#define Labox_StateSHORTCIRCUIT 103
#endif
#endif