2022-01-09 20:51:16 +01:00
|
|
|
#ifndef _CONFIG_H_
|
|
|
|
#define _CONFIG_H_
|
|
|
|
|
|
|
|
#include <Arduino.h>
|
2022-01-31 09:26:10 +01:00
|
|
|
#if PCB_REVISION >= 12
|
|
|
|
#include <Wire.h>
|
|
|
|
#include <I2C_eeprom.h>
|
|
|
|
#else
|
2022-01-09 20:51:16 +01:00
|
|
|
#include <EEPROM.h>
|
2022-01-31 09:26:10 +01:00
|
|
|
#endif
|
2022-02-04 21:24:15 +01:00
|
|
|
#include "globals.h"
|
2022-01-31 09:26:10 +01:00
|
|
|
|
|
|
|
#define EEPROM_SIZE_BYTES I2C_DEVICESIZE_24LC256
|
2022-01-09 20:51:16 +01:00
|
|
|
|
2022-01-19 22:23:36 +01:00
|
|
|
typedef enum SpeedSource_e
|
|
|
|
{
|
|
|
|
SOURCE_TIME,
|
|
|
|
SOURCE_IMPULSE,
|
|
|
|
SOURCE_GPS,
|
2022-01-31 09:26:10 +01:00
|
|
|
#if PCB_REVISION == 13
|
2022-01-19 22:23:36 +01:00
|
|
|
SOURCE_CAN
|
2022-01-31 09:26:10 +01:00
|
|
|
#endif
|
2022-01-19 22:23:36 +01:00
|
|
|
} SpeedSource_t;
|
|
|
|
|
2022-02-04 21:28:49 +01:00
|
|
|
const char SpeedSourceString[][8] = {
|
|
|
|
"Timer",
|
|
|
|
"Impuls",
|
|
|
|
"GPS",
|
|
|
|
#if PCB_REVISION >= 13
|
|
|
|
"CAN-Bus"
|
|
|
|
#endif
|
|
|
|
};
|
|
|
|
|
2022-01-19 22:23:36 +01:00
|
|
|
typedef enum GPSBaudRate_e
|
|
|
|
{
|
|
|
|
BAUD_9600,
|
|
|
|
BAUD_115200
|
|
|
|
} GPSBaudRate_t;
|
|
|
|
|
|
|
|
const char GPSBaudRateString[][7] = {
|
|
|
|
"9600",
|
|
|
|
"115200"};
|
|
|
|
|
|
|
|
const size_t GPSBaudRateString_Elements = sizeof(GPSBaudRateString) / sizeof(GPSBaudRateString[0]);
|
|
|
|
|
2022-02-04 21:28:49 +01:00
|
|
|
#if PCB_REVISION >= 13
|
2022-01-31 09:26:10 +01:00
|
|
|
|
2022-01-19 22:23:36 +01:00
|
|
|
typedef enum CANSource_e
|
|
|
|
{
|
|
|
|
KTM_890_ADV_R_2021
|
|
|
|
} CANSource_t;
|
|
|
|
|
|
|
|
const char CANSourceString[][28] = {
|
|
|
|
"KTM 890 Adventure R (2021)"};
|
|
|
|
|
|
|
|
const char CANSourceString_Elements = sizeof(CANSourceString) / sizeof(CANSourceString[0]);
|
2022-01-31 09:26:10 +01:00
|
|
|
#endif
|
2022-01-19 22:23:36 +01:00
|
|
|
|
|
|
|
const size_t SpeedSourceString_Elements = sizeof(SpeedSourceString) / sizeof(SpeedSourceString[0]);
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
uint16_t writeCycleCounter = 0;
|
|
|
|
uint32_t tankRemain_µl = 0;
|
2022-02-04 22:26:26 +01:00
|
|
|
uint32_t TravelDistance_highRes = 0;
|
2022-01-19 22:23:36 +01:00
|
|
|
uint32_t checksum = 0;
|
|
|
|
} persistenceData_t;
|
|
|
|
|
2022-01-09 20:51:16 +01:00
|
|
|
typedef struct
|
|
|
|
{
|
2022-02-04 21:28:49 +01:00
|
|
|
uint32_t DistancePerLube_Default = 8000;
|
|
|
|
uint32_t DistancePerLube_Rain = 4000;
|
2022-01-09 20:51:16 +01:00
|
|
|
uint32_t tankCapacity_ml = 320;
|
2022-02-04 21:28:49 +01:00
|
|
|
uint32_t amountPerDose_µl = 72;
|
2022-01-09 20:51:16 +01:00
|
|
|
uint8_t TankRemindAtPercentage = 30;
|
|
|
|
uint8_t PulsePerRevolution = 1;
|
|
|
|
uint32_t TireWidth_mm = 150;
|
|
|
|
uint32_t TireWidthHeight_Ratio = 70;
|
|
|
|
uint32_t RimDiameter_Inch = 18;
|
|
|
|
uint32_t DistancePerRevolution_mm = 2000;
|
2022-01-12 00:53:22 +01:00
|
|
|
uint8_t BleedingPulses = 25;
|
2022-01-19 22:23:36 +01:00
|
|
|
SpeedSource_t SpeedSource = SOURCE_IMPULSE;
|
|
|
|
GPSBaudRate_t GPSBaudRate = BAUD_9600;
|
2022-01-31 09:26:10 +01:00
|
|
|
#if PCB_REVISION == 13
|
2022-01-19 22:23:36 +01:00
|
|
|
CANSource_t CANSource = KTM_890_ADV_R_2021;
|
2022-01-31 09:26:10 +01:00
|
|
|
#endif
|
2022-01-09 20:51:16 +01:00
|
|
|
uint32_t checksum = 0;
|
|
|
|
} LubeConfig_t;
|
|
|
|
|
2022-01-31 09:26:10 +01:00
|
|
|
#if PCB_REVISION >= 12
|
|
|
|
void InitEEPROM();
|
|
|
|
#endif
|
2022-02-04 21:24:15 +01:00
|
|
|
void EEPROM_Process();
|
2022-01-09 20:51:16 +01:00
|
|
|
void StoreConfig_EEPROM();
|
|
|
|
void GetConfig_EEPROM();
|
2022-01-19 22:23:36 +01:00
|
|
|
void StorePersistence_EEPROM();
|
|
|
|
void GetPersistence_EEPROM();
|
|
|
|
void FormatConfig_EEPROM();
|
|
|
|
void FormatPersistence_EEPROM();
|
2022-01-09 20:51:16 +01:00
|
|
|
uint32_t Checksum_EEPROM(uint8_t const *data, size_t len);
|
2022-01-31 09:26:10 +01:00
|
|
|
void dumpEEPROM(uint16_t memoryAddress, uint16_t length);
|
|
|
|
void MovePersistencePage_EEPROM(boolean reset);
|
2022-01-09 20:51:16 +01:00
|
|
|
|
|
|
|
extern LubeConfig_t LubeConfig;
|
2022-01-19 22:23:36 +01:00
|
|
|
extern persistenceData_t PersistenceData;
|
|
|
|
extern uint16_t eePersistenceMarker;
|
2022-01-09 20:51:16 +01:00
|
|
|
#endif // _CONFIG_H_
|