refactoring + MAP broadcast consumption

This commit is contained in:
rusefi 2020-03-29 21:15:06 -04:00
parent bdb8eb621c
commit d52ec6a58f
7 changed files with 17 additions and 5 deletions

View File

@ -326,6 +326,7 @@
#define camInputs3_offset_hex 22e #define camInputs3_offset_hex 22e
#define camInputs4_offset 559 #define camInputs4_offset 559
#define camInputs4_offset_hex 22f #define camInputs4_offset_hex 22f
#define CAN_DEFAULT_BASE 0x200
#define can_device_mode_e_enum "v0", "v1" #define can_device_mode_e_enum "v0", "v1"
#define canDeviceMode_offset 732 #define canDeviceMode_offset 732
#define canDeviceMode_offset_hex 2dc #define canDeviceMode_offset_hex 2dc

View File

@ -681,7 +681,7 @@ static void setDefaultEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
engineConfiguration->canNbcType = CAN_BUS_MAZDA_RX8; engineConfiguration->canNbcType = CAN_BUS_MAZDA_RX8;
// Don't enable, but set default address // Don't enable, but set default address
engineConfiguration->verboseCanBaseAddress = 0x200; engineConfiguration->verboseCanBaseAddress = CAN_DEFAULT_BASE;
engineConfiguration->sdCardPeriodMs = 50; engineConfiguration->sdCardPeriodMs = 50;

View File

@ -11,6 +11,9 @@
#include "periodic_thread_controller.h" #include "periodic_thread_controller.h"
#define CAN_PEDAL_TPS_OFFSET 2
#define CAN_SENSOR_1_OFFSET 3
class Logging; class Logging;
void processCanRxMessage(const CANRxFrame& msg, Logging* logger); void processCanRxMessage(const CANRxFrame& msg, Logging* logger);

View File

@ -27,6 +27,7 @@ static void printPacket(const CANRxFrame& rx, Logging* logger) {
volatile float aemXSeriesLambda = 0; volatile float aemXSeriesLambda = 0;
volatile float canPedal = 0; volatile float canPedal = 0;
volatile float canMap = 0;
void processCanRxMessage(const CANRxFrame& frame, Logging* logger) { void processCanRxMessage(const CANRxFrame& frame, Logging* logger) {
// TODO: if/when we support multiple lambda sensors, sensor N // TODO: if/when we support multiple lambda sensors, sensor N
@ -35,9 +36,12 @@ void processCanRxMessage(const CANRxFrame& frame, Logging* logger) {
// AEM x-series lambda sensor reports in 0.0001 lambda per bit // AEM x-series lambda sensor reports in 0.0001 lambda per bit
uint16_t lambdaInt = SWAP_UINT16(frame.data16[0]); uint16_t lambdaInt = SWAP_UINT16(frame.data16[0]);
aemXSeriesLambda = 0.0001f * lambdaInt; aemXSeriesLambda = 0.0001f * lambdaInt;
} else if (frame.EID == 0x202) { } else if (frame.EID == CONFIG(verboseCanBaseAddress) + CAN_PEDAL_TPS_OFFSET) {
int16_t pedalScaled = *reinterpret_cast<const uint16_t*>(&frame.data8[0]); int16_t pedalScaled = *reinterpret_cast<const uint16_t*>(&frame.data8[0]);
canPedal = pedalScaled * 0.01f; canPedal = pedalScaled / (1.0 * PACK_MULT_PERCENT);
} else if (frame.EID == CONFIG(verboseCanBaseAddress) + CAN_SENSOR_1_OFFSET) {
int16_t mapScaled = *reinterpret_cast<const uint16_t*>(&frame.data8[0]);
canMap = mapScaled / (1.0 * PACK_MULT_PRESSURE);
} else { } else {
printPacket(frame, logger); printPacket(frame, logger);
obdOnCanPacketRx(frame); obdOnCanPacketRx(frame);

View File

@ -7,6 +7,7 @@
#include "scaled_channel.h" #include "scaled_channel.h"
#include "can_msg_tx.h" #include "can_msg_tx.h"
#include "sensor.h" #include "sensor.h"
#include "can.h"
#include "allsensors.h" #include "allsensors.h"
#include "fuel_math.h" #include "fuel_math.h"
#include "spark_logic.h" #include "spark_logic.h"
@ -137,8 +138,8 @@ void sendCanVerbose() {
transmitStruct<Status> (base + 0); transmitStruct<Status> (base + 0);
transmitStruct<Speeds> (base + 1); transmitStruct<Speeds> (base + 1);
transmitStruct<PedalAndTps> (base + 2); transmitStruct<PedalAndTps> (base + CAN_PEDAL_TPS_OFFSET);
transmitStruct<Sensors1> (base + 3); transmitStruct<Sensors1> (base + CAN_SENSOR_1_OFFSET);
transmitStruct<Sensors2> (base + 4); transmitStruct<Sensors2> (base + 4);
transmitStruct<Fueling> (base + 5); transmitStruct<Fueling> (base + 5);
} }

View File

@ -326,6 +326,7 @@
#define camInputs3_offset_hex 22e #define camInputs3_offset_hex 22e
#define camInputs4_offset 559 #define camInputs4_offset 559
#define camInputs4_offset_hex 22f #define camInputs4_offset_hex 22f
#define CAN_DEFAULT_BASE 0x200
#define can_device_mode_e_enum "v0", "v1" #define can_device_mode_e_enum "v0", "v1"
#define canDeviceMode_offset 732 #define canDeviceMode_offset 732
#define canDeviceMode_offset_hex 2dc #define canDeviceMode_offset_hex 2dc

View File

@ -124,6 +124,8 @@ struct_no_prefix engine_configuration_s
#define BOOST_LOAD_COUNT 8 #define BOOST_LOAD_COUNT 8
#define PEDAL_TO_TPS_SIZE 8 #define PEDAL_TO_TPS_SIZE 8
#define CAN_DEFAULT_BASE 0x200
! !
! all the xxx_PACKING_xxx constants are about persisting tables in compact for, for example packing RPM with 50 increment in a byte ! all the xxx_PACKING_xxx constants are about persisting tables in compact for, for example packing RPM with 50 increment in a byte