Modules
Modules for this board:
steering_can
Methods:
steering_can_init() steering_can_process_event()
steering_digital_input()
steering_digital_input_init() // sets up interrupts for buttons and generates events
Operation
processes events and sends steering CAN messages.
steering_signal_stalk()
signal_stalk_init(configuration) // sets up analog_readers configuration = { } signal_stalk
Operation
Uses an analog reader to read voltages, and converts them to signal events
steering_cruise_control_stalk()
Operation
Uses an periodic reader to read voltages, and converts them to cruise control events.
steering_cruise_control_stalk_init() steering_cruise_control_stalk_process_event() // for brake pressed events
adc_periodic_reader()
adc_periodic_reader_init(storage, settings) {} * period adc_periodic_reader_set_up_channel(storage) {} adc_init(gpio_address, prv_) // initialize the adc * gpio_address * channel analog_reader_register_callback(callback, channel) {}
accepts a callback, repeatedly calls that callback with new data as it gets new data.
adc_periodic_storage_global
adc_periodic_storage_global_provide_storage(void) { return s_adc_periodic_storage }
Events
Event | Source | Destination | Data | Description |
---|---|---|---|---|
STEERING_DIGITAL_INPUT_EVENT_HORN | steering_digital_input | steering_can | 1: pressed 0: released | |
STEERING_DIGITAL_INPUT_EVENT_HIGH_BEAM_FORWARD | steering_digital_input | steering_can | 1: ON 0: OFF | |
STEERING_DIGITAL_INPUT_EVENT_HIGH_BEAM_REAR | steering_digital_input | steering_can | 1: ON 0: OFF | |
STEERING_DIGITAL_INPUT_EVENT_REGEN_BRAKE_TOGGLE | steering_digital_input | steering_can | none | |
STEERING_DIGITAL_INPUT_EVENT_CC | steering_digital_input | steering_can, cruise_control_stalk | 1: ON 0: OFF | |
STEERING_SIGNAL_STALK_EVENT_LEFT | signal_stalk | steering_can | none | |
STEERING_SIGNAL_STALK_EVENT_RIGHT | signal_stalk | steering_can | none | |
STEERING_SIGNAL_STALK_EVENT_OFF | signal_stalk | steering_can | none | |
STEERING_CRUISE_CONTROL_EVENT_INCREASE_SPEED | cruise_control_stalk | steering_can | none | |
STEERING_CRUISE_CONTROL_EVENT_DECREASE_SPEED | cruise_control_stalk | steering_can | none | |
STEERING_CRUISE_CONTROL_EVENT_BRAKE_PRESSED | steering_can | cruise_control_stalk | ||
Old Car GPIO INPUTS
Input | GPIO Address | Description |
---|---|---|
STEERING_DIGITAL_INPUT_HORN | PB1 | ???? |
STEERING_DIGITAL_INPUT_LANE_ASSIST | PA6 | GPIO top button |
STEERING_DIGITAL_INPUT_HIGH_BEAM_FORWARD | PA7 | GPIO pull above back |
STEERING_DIGITAL_INPUT_HIGH_BEAM_REAR | PB0 | GPIO push above forward |
STEERING_DIGITAL_INPUT_REGEN_BRAKE_TOGGLE | PA4 | GPIO bottom button |
STEERING_DIGITAL_INPUT_CC_ON_OFF | PA5 | GPIO pull bottom back |
STEERING_DIGITAL_DIGITAL_INPUT_CC_INCREASE_SPEED STEERING_DIGITAL_DIGITAL_INPUT_CC_DECREASE_SPEED | PA2 | ADC: pull bottom up/down |
nothing? | PA1 | ???? |
the distance thingy… | PA3 | This is an ADC |
sick | PA0 | this is an ADC |
GPIO Inputs
Input | GPIO Address | Description |
---|---|---|
STEERING_DIGITAL_INPUT_HORN | PB1 | |
STEERING_DIGITAL_INPUT_LANE_ASSIST | PA6 | |
STEERING_DIGITAL_INPUT_HIGH_BEAM_FORWARD | PA7 | |
STEERING_DIGITAL_INPUT_HIGH_BEAM_REAR | PB0 | |
STEERING_DIGITAL_INPUT_REGEN_BRAKE_TOGGLE | PA4 | |
STEERING_DIGITAL_INPUT_CC_ON_OFF | PA5 | |
STEERING_DIGITAL_DIGITAL_INPUT_CC_INCREASE_SPEED | PA2 | |
STEERING_DIGITAL_DIGITAL_INPUT_CC_DECREASE_SPEED | PA1 | |
STEERING_DIGITAL_DIGITAL_INPUT_TURN_SIGNAL_STALK | PA3 | This is an ADC |
Outgoing CAN Messages
CAN Message | Exported Enums: | |
---|---|---|
CAN_TRANSMIT_LIGHTS | u8 EELightType, u8 EELightState | |
CAN_TRANSMIT_HORN | u8 EEHornState | |
CAN_TRANSMIT_CRUISE_COMMAND | u8 cruise_command |
Other Concerns
cruise control being enabled at the startup
add a check at startup
cruise control pin being noisy
will probably debounce? or some thing like that…