auto-sync

This commit is contained in:
rusEfi 2015-01-26 18:04:19 -06:00
parent b86934dd78
commit 1e90d175f4
4 changed files with 46 additions and 4 deletions

View File

@ -9,10 +9,18 @@
*/
#include "sachs.h"
#include "allsensors.h"
void setSachs(engine_configuration_s *engineConfiguration) {
engineConfiguration->displacement = 0.1; // 100cc
engineConfiguration->hasIatSensor = false;
engineConfiguration->hasMapSensor = false;
engineConfiguration->hasBaroSensor = false;
engineConfiguration->hasAfrSensor = false;
engineConfiguration->hasCltSensor = false;
// Frankenstein analog input #1: PA1 adc1
// Frankenstein analog input #2: PA3 adc3
// Frankenstein analog input #3: PC3 adc13
@ -26,6 +34,14 @@ void setSachs(engine_configuration_s *engineConfiguration) {
// Frankenstein analog input #11: PC4 adc14
// Frankenstein analog input #12: PC5 adc15
engineConfiguration->tpsAdcChannel = EFI_ADC_1;
/**
* TPS 0% 0.9v
* TPS 100% 2.34v
*/
engineConfiguration->tpsMin = convertVoltageTo10bitADC(1.250);
engineConfiguration->tpsMax = convertVoltageTo10bitADC(4.538);
// Frankenstein: low side - out #1: PC14

View File

@ -426,10 +426,7 @@ extern engine_pins_s enginePins;
static OutputPin *leds[] = { &warningPin, &runningPin, &enginePins.errorLedPin, &communicationPin, &checkEnginePin };
/**
* This method would blink all the LEDs just to test them
*/
static void initialLedsBlink(void) {
static void initStatisLeds() {
#if EFI_PROD_CODE
outputPinRegister("communication status 1", &communicationPin, LED_COMMUNICATION_PORT, LED_COMMUNICATION_PIN);
#endif
@ -438,7 +435,12 @@ static void initialLedsBlink(void) {
outputPinRegister("warning", &warningPin, LED_WARNING_PORT, LED_WARNING_PIN);
outputPinRegister("is running status", &runningPin, LED_RUNNING_STATUS_PORT, LED_RUNNING_STATUS_PIN);
#endif /* EFI_WARNING_LED */
}
/**
* This method would blink all the LEDs just to test them
*/
static void initialLedsBlink(void) {
int size = sizeof(leds) / sizeof(leds[0]);
for (int i = 0; i < size; i++)
leds[i]->setValue(1);
@ -450,6 +452,9 @@ static void initialLedsBlink(void) {
}
#if EFI_PROD_CODE || defined(__DOXYGEN__)
/**
* this thread has a lower-then-usual stack size so we cannot afford *print* methods here
*/
static void blinkingThread(void *arg) {
(void) arg;
chRegSetThreadName("communication blinking");
@ -616,6 +621,7 @@ void startStatusThreads(Engine *engine) {
chThdCreateStatic(lcdThreadStack, sizeof(lcdThreadStack), NORMALPRIO, (tfunc_t) lcdThread, engine);
chThdCreateStatic(tsThreadStack, sizeof(tsThreadStack), NORMALPRIO, (tfunc_t) tsStatusThread, engine);
#if EFI_PROD_CODE || defined(__DOXYGEN__)
initStatisLeds();
chThdCreateStatic(blinkingStack, sizeof(blinkingStack), NORMALPRIO, (tfunc_t) blinkingThread, NULL);
#endif /* EFI_PROD_CODE */
}

View File

@ -275,6 +275,22 @@ static THD_WORKING_AREA(csThreadStack, UTILITY_THREAD_STACK_SIZE); // declare th
#define isOutOfBounds(offset) ((offset<0) || (offset) >= sizeof(engine_configuration_s))
static void setShort(const int offset, const int value) {
if (isOutOfBounds(offset))
return;
uint16_t *ptr = (uint16_t *) (&((char *) engine->engineConfiguration)[offset]);
*ptr = (uint16_t)value;
scheduleMsg(&logger, "setting short @%d to %d", offset, (uint16_t)value);
}
static void getShort(int offset) {
if (isOutOfBounds(offset))
return;
uint16_t *ptr = (uint16_t *) (&((char *) engine->engineConfiguration)[offset]);
uint16_t value = *ptr;
scheduleMsg(&logger, "short @%d is %d", offset, value);
}
static void setInt(const int offset, const int value) {
if (isOutOfBounds(offset))
return;
@ -409,8 +425,10 @@ void initEngineContoller(Logging *sharedLogger, Engine *engine) {
addConsoleActionSS("set_float", (VoidCharPtrCharPtr) setFloat);
addConsoleActionII("set_int", (VoidIntInt) setInt);
addConsoleActionII("set_short", (VoidIntInt) setShort);
addConsoleActionI("get_float", getFloat);
addConsoleActionI("get_int", getInt);
addConsoleActionI("get_short", getShort);
#if EFI_FSIO || defined(__DOXYGEN__)
initFsioImpl(sharedLogger, engine);

View File

@ -156,6 +156,8 @@ const char* getConfigurationName(engine_type_e engineType) {
return "BMWe34";
case TEST_ENGINE:
return "Test";
case SACHS:
return "SACHS";
default:
firmwareError("Unexpected: engineType %d", engineType);
return NULL;