/* * Stub_MidTankPressureSensor.c * * Created on: Nov 22, 2018 * Author: avi */ #include #include #include #include #include #include #include #include #include #include "inc/hw_memmap.h" #include "inc/hw_types.h" #include "inc/hw_uart.h" #include "MessageContainer.pb-c.h" #include "Stub_Status.h" #include "Modules/thread/thread.h" #include "drivers/I2C_Communication/ADC_MUX/ADC_MUX.h" #include "drivers/I2C_Communication/Head_Card/ADC/Head_ADC.h" void Stub_MidTankPressureSensorRequest(MessageContainer* requestContainer) { MessageContainer responseContainer; StubMidTankPressureSensorRequest* request = stub_mid_tank_pressure_sensor_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); StubMidTankPressureSensorResponse response = STUB_MID_TANK_PRESSURE_SENSOR_RESPONSE__INIT; if(/*(MidTank_t)*/request->midtankid < NUM_OF_MIDTANKS) { response.midtankid = request->midtankid; response.has_midtankid = true; response.pressure = Read_MidTank_Pressure_Sensor((MidTank_t)request->midtankid); } else if((request->midtankid & 0x8000) == 0x8000)//Head ADC { response.midtankid = request->midtankid - 0x8000; response.has_midtankid = true; response.pressure = Head_ADC[response.midtankid];//Read_Head_ADC(response.midtankid); // Head Current } response.has_pressure = true; responseContainer = createContainer(MESSAGE_TYPE__StubMidTankPressureSensorResponse, requestContainer->token, true, &response, &stub_mid_tank_pressure_sensor_response__pack, &stub_mid_tank_pressure_sensor_response__get_packed_size); //free(request); //------------------------------------------------------------------------------------------- uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer)); size_t container_size = message_container__pack(&responseContainer, container_buffer); free(responseContainer.data.data); SendChars((char*)container_buffer, container_size); //free(container_buffer); //free(requestContainer); stub_mid_tank_pressure_sensor_request__free_unpacked(request,NULL); }