Advertisement
Guest User

Untitled

a guest
Nov 27th, 2017
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.65 KB | None | 0 0
  1. // SETTINGS
  2. #define SETTING_BRAKE_FLASHES                                                   0
  3. #define SETTING_UNIT                                                            1
  4. #define SETTING_SCREEN_SAVER                                                    2
  5. #define SETTING_FLASH_BRAKE_LIGHT                                               3
  6. #define SETTING_HEADLIGHT_TIME                                                  4
  7. #define SETTING_BR_DHEADLIGHT                                                   5
  8. #define SETTING_BR_HEADLIGHT                                                    6
  9. #define SETTING_BR_DTAILLIGHT                                                   7
  10. #define SETTING_BR_TAILLIGHT                                                    8        
  11.  
  12. uint8_t settings[9] = {
  13.     10, // SETTING_BRAKE_FLASHES (8 - 13)
  14.     0, // SETTING_UNIT (0 = METRIC ; 1 = IMPERIAL)
  15.     1, // SETTING_SCREEN_SAVER (0 = NO ; 1 = YES)
  16.     1, // SETTING_FLASH_BRAKE_LIGHT (0 = NO ; 1 = YES)
  17.     0, // SETTING_HEADLIGHT_TIME (0 = 1/10S ; 1 = 1/5S ; 2 = 1/4S ; 3 = 1/3S ; 4 = FULL)
  18.     45, // SETTING_BR_DHEADLIGHT (8 - 100)
  19.     120, // SETTING_BR_HEADLIGHT (86 - 145)
  20.     45, // SETTING_BR_DTAILLIGHT (8 - 64)
  21.     86 // SETTING_BR_TAILLIGHT (8 - 132)      
  22. };
  23.  
  24.  
  25. // SPEEDS
  26. #define SPEED_MAX                                                               0
  27. #define SPEED_TOP                                                               1
  28.  
  29. uint8_t speedStat[2] = {
  30.     0, // SPEED_MAX
  31.     0, // SPEED_TOP
  32. };
  33.  
  34.  
  35. // SYSTEM STATES
  36. #define STATE_SCREEN_STATUS                                                     0
  37. #define STATE_HEADLIGHT                                                         1
  38. #define STATE_FOG_LIGHT                                                         2
  39. #define STATE_SCREEN_INFO                                                       3
  40.  
  41. uint32_t states[4] = {
  42.     1, // STATE_SCREEN_STATUS
  43.     0, // STATE_HEADLIGHT
  44.     0, // STATE_FOG_LIGHT
  45.     0 // STATE_SCREEN_INFO
  46. };
  47.  
  48.  
  49. // DISTANCES
  50. #define DISTANCE_TOTAL                                                          0
  51. #define DISTANCE_TRIP_A                                                         1
  52. #define DISTANCE_TRIP_B                                                         2
  53. #define DISTANCE_PER_DAY                                                        3
  54.  
  55. volatile uint32_t distances[4] = {
  56.     0, // DISTANCE_TOTAL
  57.     0, // DISTANCE_TRIP_A
  58.     0, // DISTANCE_TRIP_B
  59.     0 // DISTANCE_PER_DAY
  60. };
  61.  
  62.  
  63. // STATS
  64. #define STAT_TOTAL_SPEED                                                        0
  65. #define STAT_TAKEN_SPEED                                                        1
  66. #define STAT_PEDAL_TIME                                                         2
  67. #define STAT_TIME_AVG_DIST                                                      3
  68. #define STAT_AVG_DISTANCE                                                       4
  69. #define STAT_WORK_HOURS                                                         5
  70. #define STAT_PEDAL_TIME_B                                                       6
  71. #define STAT_REVTOTAL                                                           7
  72. #define STAT_REV_DISTANCE                                                       8
  73. #define STAT_DIST_PD_AVG                                                        9
  74. #define STAT_DIST_PD_TAKEN                                                      10
  75.  
  76. uint32_t stats[11] = { // DEFAULT VALUES
  77.     0, // STAT_TOTAL_SPEED
  78.     0, // STAT_TAKEN_SPEED
  79.     0, // STAT_PEDAL_TIME  
  80.     0, // STAT_TIME_AVG_DIST
  81.     0, // STAT_AVG_DISTANCE
  82.     0, // STAT_WORK_HOURS
  83.     0, // STAT_PEDAL_TIME_B
  84.     0, // STAT_REVTOTAL
  85.     0, // STAT_REV_DISTANCE
  86.     0, // STAT_DIST_PD_AVG
  87.     0 // STAT_DIST_PD_TAKEN
  88. };
  89.  
  90.  
  91. // TARGET
  92. #define TARGET_DISTANCE                                                         0
  93. #define TARGET_UNIX_START                                                       1
  94. #define TARGET_PEDAL_TIME                                                       2
  95.  
  96. uint32_t target[3] = {
  97.     0, // TARGET_DISTANCE
  98.     0, // TARGET_UNIX_START
  99.     0 // TARGET_PEDAL_TIME
  100. };
  101.  
  102.  
  103. // TRIGGERS
  104. #define TRIGGER_FRONT_BRAK                                                      0
  105. #define TRIGGER_REAR_BRAKE                                                      1
  106.  
  107. uint16_t triggers[2] = {
  108.     800, // TRIGGER_FRONT_BRAKE
  109.     800 // TRIGGER_REAR_BRAKE
  110. };
  111.  
  112.  
  113.  
  114.  
  115. void save()
  116. {
  117.     uint8_t loopIndexCount = 0;
  118.  
  119.     stats[STAT_TIME_AVG_DIST] += TIME_FOR_SAVE / 1000;
  120.     stats[STAT_WORK_HOURS] += (millis() - savedTick) / 1000;      
  121.     savedTick = millis();
  122.  
  123.     if (target[TARGET_DISTANCE] != 0) target[TARGET_PEDAL_TIME] += TIME_FOR_SAVE / 1000;  
  124.     EEPROMUpdatelong(EEPROM_WOKR_HOURS, stats[STAT_WORK_HOURS]);
  125.  
  126.     if (!sleepMode)
  127.     {
  128.  
  129.         // SETTINGS
  130.         for (rev = 0; rev < 10; rev++) EEPROM.update(rev, settings[rev]);
  131.  
  132.         // SPEED STATS
  133.         for (rev = 20; rev < 22; rev++)
  134.         {
  135.             EEPROM.update(rev, speedStat[loopIndexCount]);
  136.             loopIndexCount++;
  137.         }
  138.  
  139.         loopIndexCount = 0;
  140.  
  141.         for (rev = 28; rev < 41; rev += 4)
  142.         {
  143.             EEPROMUpdatelong(rev, distances[loopIndexCount]);
  144.             loopIndexCount++;
  145.         }
  146.  
  147.         loopIndexCount = 0;
  148.  
  149.         for (rev = 22; rev < 26; rev++)
  150.         {
  151.             EEPROM.update(rev, states[loopIndexCount]);
  152.             loopIndexCount++;
  153.         }
  154.  
  155.         loopIndexCount = 0;
  156.  
  157.         for (rev = 44; rev < 85; rev += 4)
  158.         {
  159.             EEPROMUpdatelong(rev, stats[loopIndexCount]);
  160.             loopIndexCount++;
  161.         }  
  162.  
  163.         loopIndexCount = 0;
  164.  
  165.         for (rev = 100; rev < 105; rev += 4)
  166.         {
  167.             EEPROMUpdatelong(rev, triggers[loopIndexCount]);
  168.             loopIndexCount++;
  169.         }    
  170.  
  171.         loopIndexCount = 0;
  172.  
  173.         for (rev = 88; rev < 97; rev += 4)
  174.         {
  175.             EEPROMUpdatelong(rev, target[loopIndexCount]);
  176.             loopIndexCount++;
  177.         }    
  178.  
  179.         EEPROMUpdatelong(EEPROM_TARGET_DISTANCE, target[TARGET_DISTANCE]);      
  180.         EEPROMUpdatelong(EEPROM_TARGET_CYCLING_TIME, target[TARGET_PEDAL_TIME]);                
  181.  
  182.     }  
  183. }
  184.  
  185. void loadEEPROM()
  186. {
  187.     uint8_t loopIndexCount = 0;
  188.  
  189.     // SETTINGS
  190.     for (rev = 0; rev < 10; rev++) settings[rev] = EEPROM.read(rev);
  191.  
  192.     // SPEED STATS
  193.     for (rev = 20; rev < 22; rev++)
  194.     {
  195.         speedStat[loopIndexCount] = EEPROM.read(rev);
  196.         loopIndexCount++;
  197.     }
  198.  
  199.     loopIndexCount = 0;
  200.  
  201.     for (rev = 28; rev < 41; rev += 4)
  202.     {
  203.         distances[loopIndexCount] = EEPROMReadlong(rev);
  204.         loopIndexCount++;
  205.     }
  206.  
  207.     loopIndexCount = 0;
  208.  
  209.     for (rev = 22; rev < 26; rev++)
  210.     {
  211.         states[loopIndexCount] = EEPROM.read(rev);
  212.         loopIndexCount++;
  213.     }
  214.  
  215.     loopIndexCount = 0;
  216.  
  217.     for (rev = 44; rev < 85; rev += 4)
  218.     {
  219.         stats[loopIndexCount] = EEPROMReadlong(rev);
  220.         loopIndexCount++;
  221.     }  
  222.  
  223.     loopIndexCount = 0;
  224.  
  225.     for (rev = 100; rev < 105; rev += 4)
  226.     {
  227.         triggers[loopIndexCount] = EEPROMReadlong(rev);
  228.         loopIndexCount++;
  229.     }    
  230.  
  231.     loopIndexCount = 0;
  232.  
  233.     for (rev = 88; rev < 97; rev += 4)
  234.     {
  235.         target[loopIndexCount] = EEPROMReadlong(rev);
  236.         loopIndexCount++;
  237.     }            
  238.  
  239.     // NEEDED FOR SETTINGS PART
  240.     pressedScreenCont = EEPROM.read(EEPROM_RTC_DAY); // TEMPORARY
  241.     pressedLights = EEPROM.read(EEPROM_RTC_MONTH); // TEMPORARY
  242.     pressedTurnSignal_L = EEPROM.read(EEPROM_RTC_YEAR); // TEMPORARY  
  243.     brakeFlash = EEPROM.read(EEPROM_BRAKE_TRIGGER_STEP); // TEMPORARY  
  244.     lastHeadlightTick = EEPROM.read(EEPROM_DISTANCE_PD_DAY); // TEMPORARY    
  245. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement