Commit Graph

1951 Commits

Author SHA1 Message Date
rusEfi 81167d9945 #pragma once 2019-11-15 00:00:13 -05:00
rusEfi 3530c68a18 M73 2019-11-14 23:58:04 -05:00
rusefi d318b46d33 unused code 2019-11-13 20:15:02 -05:00
rusefi 4b1c1e72ab time to panic and revert more 2019-11-12 21:42:44 -05:00
Matthew Kennedy 9ce18d11fe use static asserts (#1003) 2019-11-12 00:39:38 -05:00
rusefi 15a571fb3e this is not great :(
#639
#971
2019-11-11 22:19:35 -05:00
rusefi 410391598e Strange INJ1 signal behavior (when the frequency of scheduler's timer is less than 1MHz) fix #996 2019-11-10 23:54:08 -05:00
rusefi 8525c48036 evil manual merge of https://github.com/DonaldBecker/rusefi 2019-11-06 18:26:50 -05:00
rusefi 487acd62de Missing dwell altogether in some corner cases #796
only additional live data here
2019-11-05 23:36:33 -05:00
rusefi 8f5895321c refactoring 2019-11-05 23:17:44 -05:00
rusefi cc6381fe96 evil manual merge of https://github.com/DonaldBecker/rusefi 2019-11-05 20:07:55 -05:00
rusefi 801b2eb70e progress towards #961 2019-11-04 22:52:37 -05:00
rusefi bab1744d1d progress towards #961 2019-11-04 22:44:52 -05:00
rusefi 2e3e53c613 custom codes cleanup 2019-11-04 09:20:00 -05:00
rusefi d1afb9b183 moving setDefaultFrankensoConfiguration down is the way of righteousness 2019-11-03 21:29:12 -05:00
rusefi 22453f8392 nicer enum name 2019-11-03 21:19:13 -05:00
rusefi a2bee7f46b moving setDefaultFrankensoConfiguration down is the way of righteousness 2019-11-03 19:36:56 -05:00
rusefi 06b7524c1d moving setDefaultFrankensoConfiguration down is the way of righteousness 2019-11-03 17:25:34 -05:00
rusefi 9c94dd503e moving setDefaultFrankensoConfiguration down is the way of righteousness 2019-11-03 17:17:43 -05:00
andreika-git ee5ee1942c Kinetis & TLE8888 compatibility & fixes... (#991)
* TLE8888: More compatibility & postTunerStudioState

* activeConfiguration & EFI_ACTIVE_CONFIGURATION_IN_FLASH fix

* Kinetis: jump_to_bootloader() impl.

* Kinetis: UART baudrate safety check

* Kinetis: OMG!..
2019-10-31 16:06:34 -04:00
rusefi 4d095d4844 60/2 VW trigger has running issue on 19/10/19 snapshot fix #986 2019-10-30 20:51:20 -04:00
rusefi 7a3369795f smarter IAC PID 2019-10-30 09:27:12 -04:00
rusefi 0a8a0d0b81 docs 2019-10-26 21:53:22 -04:00
rusefi 88348ebd09 refactoring: reducing code duplication 2019-10-21 23:47:40 -04:00
Matthew Kennedy 10a6d6eb8b fix wwae (#980) 2019-10-17 00:06:54 -04:00
rusefi 5f9fdfe9a6 Revert "Revert "Performance improvement: call GetBaseFuel less (#979)""
This reverts commit 7eb9947fd4.
2019-10-16 23:02:24 -04:00
rusefi 7eb9947fd4 Revert "Performance improvement: call GetBaseFuel less (#979)"
This reverts commit 95e51f13
2019-10-16 22:29:19 -04:00
Matthew Kennedy 95e51f1399 Performance improvement: call GetBaseFuel less (#979)
* Remove extra calls to getInjectionDuration

* increase callback frequency
2019-10-16 22:13:10 -04:00
rusefi 344136eea9 preparing for #973 2019-10-16 22:10:38 -04:00
Matthew Kennedy d6e065f99e Merge remote-tracking branch 'upstream/master' into perf-tracing 2019-10-14 23:45:39 -07:00
rusefi d0596388e6 preparing for #961
better code style
2019-10-15 02:06:15 -04:00
rusefi 5a4c7b38cd preparing for #974
code comments & refactoring
2019-10-14 16:04:28 -04:00
Matthew Kennedy f52bdecb80 profile all the things 2019-10-13 13:14:08 -07:00
rusefi 5cb90d0e1b preparation for #961
more unified access to pre-calculated value
2019-10-13 09:59:06 -04:00
Matthew Kennedy 763b17fb50 experiment 2019-10-11 17:43:21 -07:00
rusefi 62577c47da preparation for #961
more unified access to pre-calculated value
2019-10-10 08:25:58 -04:00
rusefi 71e904e421 preparation for #961
more unified access to pre-calculated value
2019-10-10 08:16:21 -04:00
rusefi 9a26b2eca2 preparation for #961
macro as a syntax sugar for method invocation
2019-10-10 07:37:37 -04:00
Matthew Kennedy 29804cbc8a move tsOutputChannels to header (#970) 2019-10-08 21:02:51 -04:00
rusefi 4574aaccce I got carried away, but DEAD CODE?! 2019-10-08 03:14:21 -04:00
rusefi 2acdbf308b something is over-complicated here? looks like two classes should become one? 2019-10-08 02:56:19 -04:00
rusefi a65c8c9295 something is over-complicated here? looks like two classes should become one? 2019-10-08 02:35:21 -04:00
rusefi fbbf8995e4 wow, dead field 2019-10-08 02:17:32 -04:00
rusefi 2b59940161 really not clear what is the best place for these classes 2019-10-08 02:13:52 -04:00
rusefi 4e26bd2fd2 refactoring 2019-10-08 02:01:41 -04:00
rusefi cd1e87ff41 docs & refactoring 2019-10-08 01:49:42 -04:00
rusefi ade7ad158a typo & better field name 2019-10-08 01:36:03 -04:00
rusefi 42dc9e3662 fancy C++ s/NULL/nullptr/ 2019-10-08 01:26:35 -04:00
rusefi 53231f7b49 refactoring: smarter C++ initialization 2019-10-08 00:27:49 -04:00
Matthew Kennedy faa2a481ea Simplify thermistor config (#962)
* simplify thermistor config

* fix test
2019-10-02 21:00:10 -04:00
rusefi c935903162 do not let "Use fixed baro corr from MAP" kill VE fix #960 2019-09-29 09:58:29 -04:00
rusefi 8e3912e6b1 firing order 1-2-7-8-4-5-6-3 2019-09-28 10:25:57 -04:00
rusEfi 89ed15838f ETB is sticky around zero and does not want to close all the way #943 2019-09-22 23:28:11 -04:00
rusefi e99955fce5 ETB target is using integer values #945
refactoring - ADC mocking is a mess
2019-09-22 17:43:00 -04:00
rusefi 7d65f1931e ETB target is using integer values #945
refactoring - ADC mocking is a mess
2019-09-22 17:39:13 -04:00
rusefi 533087f475 ETB target is using integer values #945
refactoring - ADC mocking is a mess
2019-09-22 09:56:06 -04:00
rusefi 03b6a6ec58 Merge branch 'master' of https://github.com/rusefi/rusefi 2019-09-22 08:45:03 -04:00
rusefi 1b604359a9 ETB target is using integer values #945
refactoring
2019-09-22 08:44:51 -04:00
rusEfi d5ef749761 s/NULL/nullptr/ 2019-09-22 08:22:35 -04:00
rusEfi f843968636 ETB target is using integer values #945
first we will write a unit test
2019-09-22 00:16:46 -04:00
Matthew Kennedy f629ec038b add sensor framework, tests (#929)
* add framework, tests

* move oil pressure to new way

* add init logic

* brackets on the same line

* spaces -> tabs

* spaces -> tabs for tests

* bracket on same line

* hook up sensor mocking

* add nan check

* fix nan check

* I wrote an essay

* casing

* only init if we have a sensor to init

* style, actually call init

* format

* fix casing

* typo

* implement linear sensor

* wire up producer

* smarter limiting

* setup comments

* add reporting

* doxyfile

* oops

* add adc subscription

* clarity

* fix logic

* multiply voltage

* test styling

* test guards

* remove dependencies

* linear sensor test

* remove unused

* fix merge

* format, implicit convert op

* explicit

* format tests

* fix merge
2019-09-21 14:33:38 -04:00
rusefi 2ce6e900a3 fixing bug from yesterday 2019-09-21 11:09:03 -04:00
rusefi 3ac801f9c5 configurable SD card logging speed 2019-09-20 20:18:22 -04:00
rusefi 36fad3a21e unit tests progress 2019-09-20 00:25:43 -04:00
rusefi 78b9e5a438 refactoring 2019-09-20 00:17:00 -04:00
rusefi 154092bbf5 unit tests progress 2019-09-19 22:56:54 -04:00
rusefi bda089011c unit tests progress 2019-09-19 08:05:23 -04:00
Matthew Kennedy cce6646cdf kill (#935) 2019-09-14 21:20:36 -04:00
rusefi 664777587b Most important feature: VAG W12 firing order 2019-09-14 14:47:22 -04:00
rusefi a6fbc5036a Delayed A/C compressor switch #922 2019-09-11 20:46:50 -04:00
rusefi d90f0481b0 one step back :) instant RPM does not look right 2019-09-10 21:35:10 -04:00
rusefi 2818c803b5 fatalErrorPin setting is not used #926 2019-09-09 21:34:15 -04:00
rusefi e79287f537 Delayed A/C compressor switch #922 2019-09-08 21:05:03 -04:00
rusefi e77b703beb Reinitialize TLE8888 if it resets #904
nasty "solution"
2019-09-06 20:30:27 -04:00
rusEfi 8126b700de NB2 progress, ETB Live Docs progress 2019-09-01 19:37:58 -04:00
rusefi 1ffaa8eea2 Live Data progress 2019-09-01 13:56:46 -04:00
rusefi 4858124edb unified names for generated headers 2019-08-31 23:12:39 -04:00
rusEfi 3851b37be6 NB2 MRE 2019-08-31 18:36:44 -04:00
rusefi 4ddb0aeace LiveData progress: isChanking & hasEtbPedalPositionSensor 2019-08-31 17:07:21 -04:00
rusefi 162264fe08 progress towards idle unit test 2019-08-29 23:50:20 -04:00
rusefi b090be14b0 cranking fuel live data fix #911 2019-08-28 00:29:55 -04:00
rusefi 2804b31e7e cranking fuel live data #911 2019-08-26 23:41:04 -04:00
rusEfi 1c0d38abef new feature: check engine light to blink on trigger synchronization 2019-08-18 15:53:38 -04:00
rusEfi 7a7dbb8c30 refactoring: engine sniffer magic constants 2019-08-18 15:04:02 -04:00
rusefi db724568db refactoring: extracting common magic constants 2019-08-18 12:14:33 -04:00
rusefi 70c74bec0d WTF is wrong with MRE_miata_na6 config? operationMode complexity #898
actually ignoring setting for well known triggers
2019-08-17 22:00:01 -04:00
rusefi f858b26a50 TLE8888 should be re-initialized every time we get +12 volts #901
extremely ugly solution but it it works at least with LED blinking test
2019-08-16 23:00:28 -04:00
rusefi 0102f07d77 new 4 cylinder firing order! 2019-08-15 19:36:16 -04:00
rusEfi 48a15dcc0c MRE_MIATA_NB2 2019-08-13 19:15:24 -04:00
rusefi f0c318aafd WTF is wrong with MRE_miata_na6 config? operationMode complexity fix #898 2019-08-08 23:11:56 -04:00
rusefi e0acec2a63 WTF is wrong with MRE_miata_na6 config? operationMode complexity #898
fatal error is the best I can come up with quickly
2019-08-08 22:57:22 -04:00
rusefi 539cd8b1c7 current toolchain does not work great with current rusEfi code, two methods with same name are hard for full text search :( 2019-08-08 22:33:52 -04:00
rusefi 121ad9b786 fixing build & taking a safer route 2019-08-08 22:12:51 -04:00
rusefi 7d73c6a8a9 WFT is wrong with MRE_miata_na6 config? operationMode complexity #898
fancy smansy unit test with some C++11
2019-08-08 21:27:57 -04:00
rusefi 3ff8c92d38 poke 2019-08-08 20:32:00 -04:00
rusefi 643cc24931 WFT is wrong with MRE_miata_na6 config? operationMode complexity #898
more refactoring
2019-08-08 00:32:31 -04:00
rusefi 51110b33ad WFT is wrong with MRE_miata_na6 config? operationMode complexity #898
refactoring to begin with, zero logic change
2019-08-08 00:19:09 -04:00
rusefi 71951041b1 refactoring: better enum name 2019-08-07 22:20:16 -04:00
rusEfi bde25114d5 NA6 MRE details 2019-08-06 17:59:02 -04:00
rusefi 8d14561fb9 better method name 2019-08-06 17:12:15 -04:00
rusefi 2a3d067821 fixing unit tests build 2019-08-05 23:36:18 -04:00
rusEfi 070ebd65c6 MRE test setup 2019-08-05 23:00:35 -04:00
rusefi 91f9a50b3f F7 nucleo does not work?
funny, it was about some very unused feature
2019-08-02 01:36:02 -04:00
Matthew Kennedy 1ec07af6e2 microRusefi Default Configuration (#895)
* poke

* working MRE

* why was this on?

* comment, cleanup

* default silent trigger error on

* comment

* remove extra

* sensible default
2019-08-01 22:27:23 -04:00
rusEfi 2120aff829 MRE is getting closer! 2019-07-25 21:39:39 -04:00
rusefi 0b1726727f removing least useful engine configurations 2019-07-25 00:03:57 -04:00
rusefi 97934eeace fixing build? 2019-07-24 23:41:26 -04:00
rusefi b2eba467ac fixing build? 2019-07-24 23:16:17 -04:00
rusefi 9fd9bbaf2f nevermind 2019-07-24 22:37:27 -04:00
rusefi 358a50a961 setDefaultBoardConfiguration shouldn't have Frankenso pinout #852 2019-07-24 22:33:30 -04:00
rusefi 3ac83dc34e setDefaultBoardConfiguration shouldn't have Frankenso pinout #852 2019-07-24 22:00:48 -04:00
rusefi fc241ce665 setDefaultBoardConfiguration shouldn't have Frankenso pinout #852
merging methods since always invoked together
2019-07-24 21:24:39 -04:00
rusefi 6fb2b34120 setDefaultBoardConfiguration shouldn't have Frankenso pinout #852 2019-07-24 21:15:18 -04:00
rusefi 39630855fb live docs for idle state 2019-07-21 18:34:37 -04:00
rusefi 75d8e9ab57 nicer status codes for future human-readable status set 2019-07-21 14:06:51 -04:00
Matthew Kennedy 21d1b25c5e Remove warmup afr pid (#879)
* config changes

* actually remove from config

* rip out implementation
2019-07-18 18:26:18 -04:00
rusefi aca4081507 FIRMWARE_ID 2019-07-13 14:08:08 -04:00
rusefi 85e5a7b1e7 one dead line 2019-07-13 09:18:09 -04:00
rusefi 9e461e7c27 Annotations in C++ code to produce formulas in rusEfi console #807 2019-07-13 09:00:03 -04:00
rusefi 7cc040afe0 better variable names & fixing build 2019-07-13 08:19:00 -04:00
rusefi 7da59dd41d a bit of dead code 2019-07-13 08:03:13 -04:00
rusefi 6bdb8c50bf Annotations in C++ code to produce formulas in rusEfi console #807
typo & refactoring: splitting class
2019-07-12 23:15:52 -04:00
rusefi 4e6ccdb13b Annotations in C++ code to produce formulas in rusEfi console #807
wall wetting
2019-07-12 22:51:59 -04:00
rusefi a3de5fc276 Annotations in C++ code to produce formulas in rusEfi console #807
refactoring wall wetting
2019-07-12 22:34:38 -04:00
rusefi 04bc1128df support multiple VVT sensors #885
new fields & packing configuration. bumping configuration version
2019-07-12 14:24:45 -04:00
rusefi 974f80988f refactoring - type/macro name/docs 2019-07-12 07:48:28 -04:00
Matthew Kennedy 77075fce3d Fix some maf logic (#880)
* fix maf

* thank you vscode for mangling ANSI -> utf8
2019-07-10 09:14:47 +03:00
Matthew Kennedy e0db83e027 Template-ize bin/value length for interpolation (#878)
* update consumers

* tests

* whitespace

* format
2019-07-09 21:16:36 +03:00
andreika-git 00cf9fafe1 More portability (GPIO_F/G + auto_generated_enums) (#876)
* GPIO ports F and G are not everywhere

* auto_generated_enums path flexibility
2019-07-09 05:29:03 -04:00
rusefi 1fce0201a5 user is unable to start with zero fuel - at least showing a warning
https://rusefi.com/forum/viewtopic.php?p=33761#p33760
2019-07-06 20:45:47 -04:00
rusefi cdac02429c refactoring: better file name 2019-07-06 20:15:49 -04:00
rusefi 83ad64eade Refactoring: OS access should be explicit #867 2019-07-04 03:57:21 -04:00
rusefi b81c60cf3e Refactoring: OS access should be explicit #867 2019-07-03 21:48:04 -04:00
rusefi 37a9e66bc1 Annotations in C++ code to produce formulas in rusEfi console #807 2019-06-19 22:34:11 -04:00
rusefi b14757c4db docs/type safety 2019-06-19 21:24:09 -04:00
rusefi af6c342368 Utility class which writes same line both to stdout and file 2019-06-17 20:21:32 -04:00
rusefi a8f456b807
Annotations in C++ code to produce formulas in rusEfi console #807 (#847)
* Annotations in C++ code to produce formulas in rusEfi console #807
firmware part of the change

* removing unneeded stuff & fixing unit test compilation

* not complete better unit test compilation fix  :(

* better C++ usage
2019-06-17 12:18:55 -04:00
rusefi 72a710ffd5 The Big Refactoring of 2019: folder structure #723 2019-06-15 22:11:43 -04:00
rusefi 244b66b0ae ETB: TPS should be f(RPM, pedal) - target table #835 2019-06-15 14:11:38 -04:00
rusefi e1c0557f4d idle using ETB #783 2019-06-15 13:33:14 -04:00
rusefi e07b119a7f bumping configuration version in light of #773 2019-06-14 13:04:04 -04:00
rusefi ff39a72633 typo 2019-06-14 00:57:24 -04:00
rusefi 92bad7286f fresh stuff 2019-06-13 14:56:13 -04:00
Matthew Kennedy e47bc4b952 Fix tunerstudio ratio vs. percent (#838)
* fix ratio vs pct

* fix idle cranking clt position

* fix defaults

* fix typo

* fix baro corr gauge

* baro default

* fix degree symbols

* fix testFuelMap

* fix testPlainCrankingWithoutAdvancedFeatures

* test testFasterEngineSpinningUp
2019-06-13 09:05:22 -04:00
rusefi dbd8a136ec typo 2019-06-11 22:01:07 -04:00
rusefi 8406be52f0 refactoring: extracting constant 2019-06-11 21:44:16 -04:00
rusefi 5f0000edc1 bias resistor clarification 2019-06-11 20:32:27 -04:00
rusefi a3581b06f9 ETB: TPS should be f(RPM, pedal) #835 2019-06-10 23:57:35 -04:00
rusefi 837492c9f0 ETB: TPS should be f(RPM, pedal) #835 2019-06-10 23:38:44 -04:00
rusefi 80f38c476a https://github.com/rusefi/hw_microRusEfi/issues/57 2019-06-10 17:33:05 -04:00
rusefi 09a29be80e input has sizes hard-coded #836 2019-06-10 15:45:18 -04:00
rusefi 04c7cdebb6 input has sizes hard-coded #836 2019-06-10 15:11:53 -04:00
rusefi 0c5b9e093b ETB: TPS should be f(RPM, pedal) #835 2019-06-10 13:07:42 -04:00
rusefi 1e75fc98b5 ETB: TPS should be f(RPM, pedal) #835 2019-06-10 12:52:26 -04:00
rusefi 30847db935 adding support for smaller table axis 2019-06-10 12:38:32 -04:00
rusefi 4f939bbe4a refactoring 2019-06-10 11:17:36 -04:00
Matthew Kennedy 95003e9a7b const, explicit, and override (#831)
* const, explicit, and override

* more const

* more const

* missed a spot
2019-06-08 09:51:36 -04:00
rusefi 4737bb3301 MRE 2019-06-07 18:02:28 -04:00
rusefi 66903595b7 TS flexibility for MRE 2019-06-07 17:38:12 -04:00
rusefi 97a557a57e hiding GPS 2019-06-06 19:20:00 -04:00
rusefi 119ad7cc13 board-specific usability #808
hiding more stuff from MRE
2019-06-05 00:36:35 -04:00
rusefi 4fbd90028e board-specific usability #808
docs
2019-06-04 23:54:34 -04:00
rusefi f6800dbd39 board-specific usability #808
fixing enum range
2019-06-04 23:45:41 -04:00
rusefi 3ee6ecab71 I am a a Sun Certified Java Developer 2019-06-04 12:46:55 -04:00
rusefi ab1cf401e6 extracting hw-specific enums 2019-06-04 12:27:34 -04:00
rusefi 09767649de extracting hw-specific enums 2019-06-04 12:21:28 -04:00
rusefi 3a10946940 board-specific usability #808
hiding cj125
2019-06-04 12:13:59 -04:00
rusefi cffb0abd4f real MAF to TS 2019-06-03 10:02:29 -04:00
rusefi f268317561 getting ready for enum file split 2019-06-02 16:16:06 -04:00
rusefi 2968cdafbc pins mapping logic fix & pins kind fix 2019-06-02 14:10:21 -04:00
rusefi 5282e29d7c board-specific usability #808
toolset
2019-06-01 18:27:34 -04:00
rusefi c97d735fc0 Usability: TS project rework #811
trying to address encoding nightmare
2019-06-01 17:15:01 -04:00
rusefi 5588e8e323 incremental code generation 2019-06-01 16:51:32 -04:00
rusefi f40e0be614 board-specific usability #808 2019-05-30 00:18:41 -04:00
rusefi 493bd4c677 minor technical debt 2019-05-29 23:15:31 -04:00
rusefi 83be45b83b board-specific usability #808
extracting enum reader
2019-05-28 22:24:29 -04:00
rusefi 489b115611 generator progress 2019-05-27 20:06:01 -04:00
rusefi e117bff3de learning C & C++ - explicit typedef vs struct 2019-05-27 19:35:30 -04:00
rusefi cfe1f06e65 refactoring 2019-05-27 19:05:59 -04:00
rusefi 2ac7d748ac refactoring 2019-05-27 18:58:43 -04:00
rusefi 5e296328c5 refactoring: splitting huge header 2019-05-27 18:50:23 -04:00
rusefi 886a88bad3 fix #799 2019-05-27 16:12:59 -04:00
rusefi 5f642ac254 unit tests should not have global context, including mock values 2019-05-27 15:56:12 -04:00
rusefi 0dca6e6da1 refactoring: better variable names 2019-05-27 11:17:28 -04:00
rusefi 2b657e607e EFI_IDLE_INCREMENTAL_PID_CIC should be a runtime parameter #806 2019-05-27 10:38:06 -04:00
rusefi 5126397a89 lower 16 values are used on stm32 rusEfi, values above 16 are related to Kinetis work in progress 2019-05-27 06:55:53 -04:00
rusefi 5db9eb44d9 generator now takes full file name 2019-05-26 20:54:44 -04:00
rusefi 79bbbc8f45 MC33816 integraion #784 2019-05-25 17:18:16 -04:00
rusefi e3d139d4d4 MC33816 integraion #784 2019-05-25 15:35:25 -04:00
rusefi e1337793cc #784 2019-05-25 13:47:09 -04:00
rusefi 01e481db31 fix #802 2019-05-25 13:36:29 -04:00
rusefi ecf6a66634 Trigger: warning code on normal engine start up #669 2019-05-11 13:39:27 -04:00
rusefi 93b1473555 gauges cleanup 2019-05-11 10:57:58 -04:00
rusefi 5d8a12a8a7 better gauge name 2019-05-11 10:51:38 -04:00
rusefi e0f9ba8a2a idle usability 2019-05-11 10:41:04 -04:00
rusefi ff1d10dd2e BUG: phase sensor validation attending - detect missing CAM signal #659
preparation
2019-05-10 23:52:55 -04:00
rusefi f0350613da CI instability: FATAL error: warn stream not initialized for 6039 #798 2019-05-10 18:58:05 -04:00
rusefi 8c00f9ebe8 FEATURE REQ: aux temperature inputs #332 2019-05-09 19:39:21 -04:00
rusefi 22ec5da4bc Injection/Ignition angle inaccuracy on 60-2? EngineSniffer vs Real Hardware #778 2019-05-07 21:39:11 -04:00
rusefi d7fd0ce6c1 refactoring: better method name 2019-05-07 19:32:08 -04:00