From 68e65c0a8c15db50a09dd50e65c0888804d6ec19 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Sun, 27 Jan 2019 16:36:14 +0200 Subject: cosmetics --- .../Embedded/Modules/Heaters/Heaters_init.c | 58 ++-------------------- .../Embedded/Modules/Heaters/Heaters_print.c | 5 +- 2 files changed, 4 insertions(+), 59 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c index 78947c080..e8bb1ac76 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c @@ -60,67 +60,15 @@ bool FastHeating = 1; */ uint32_t Heaters_Init(void) { + int i; //ROM_TimerDisable(Heater_timerBase, TIMER_A); FPGA_SensorInitConfig(); memset(HeaterControl,0,sizeof(HeaterControl)); + for (i = 0;i<=MAX_HEATERS_NUM; i++) + DeActivateHeater(i); return OK; } -/*void HeatingTestRequest(MessageContainer* requestContainer) -{ -//#ifdef DEBUG_TEST_FUNCTIONS - MessageContainer responseContainer; - uint8_t* container_buffer; - //uint32_t status = OK; - - StubHeatingTestRequest* request = stub_heating_test_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); - StubHeatingTestResponse response = STUB_HEATING_TEST_RESPONSE__INIT; - - responseContainer = createContainer(MESSAGE_TYPE__StubHeatingTestResponse, requestContainer->token, false, &response, &stub_heating_test_response__pack, &stub_heating_test_response__get_packed_size); - container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); - - - - //if (status) - { - responseContainer.has_error = true; - responseContainer.error = ERROR_CODE__JOB_UNSPECIFIED_ERROR; - } - size_t container_size = message_container__pack(&responseContainer, container_buffer); - my_free(responseContainer.data.data); - //USBCDCD_sendData(container_buffer, container_size,10); - SendChars(container_buffer, container_size); - stub_heating_test_request__free_unpacked(request,NULL); - -//#else -// LOG_ERROR (-1, "Heating Control not on debug"); -// return ERROR; -//#endif -} -void HeatingTestPollRequest(MessageContainer* requestContainer) -{ - uint8_t* container_buffer; - - StubHeatingTestPollRequest* request = stub_heating_test_poll_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); - - StubHeatingTestPollResponse response = STUB_HEATING_TEST_POLL_RESPONSE__INIT; - MessageContainer responseContainer; - - - responseContainer = createContainer(MESSAGE_TYPE__StubHeatingTestPollResponse, requestContainer->token, false, &response, &stub_heating_test_poll_response__pack, &stub_heating_test_poll_response__get_packed_size); - container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); - - - - { - responseContainer.has_error = true; - responseContainer.error = ERROR_CODE__JOB_UNSPECIFIED_ERROR; - } - size_t container_size = message_container__pack(&responseContainer, container_buffer); - my_free(responseContainer.data.data); - SendChars(container_buffer, container_size); - stub_heating_test_poll_request__free_unpacked(request,NULL); -}*/ diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index 5015e78ee..f3a2e6274 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -1008,10 +1008,7 @@ uint32_t HeatersControlLoop(uint32_t tick) void HeatersControlTask(UArg arg0, UArg arg1) { HeatersControlMessageStruc Message; - //char str[60]; - //uint16_t length; - //Clock_setTimeout(HostKAClock, 1000); - //Clock_start(HostKAClock); + HeatersControlInit(); while(1) -- cgit v1.3.1 From 6c8abbec1e8885005b6b2f2b7d0d0c37906eda2d Mon Sep 17 00:00:00 2001 From: Avi Levkovich Date: Tue, 29 Jan 2019 11:14:18 +0200 Subject: Add support of VOC + pitot sensors --- .../Embedded/Drivers/ADC_Sampling/ADC.c | 79 +++++++ .../Embedded/Drivers/ADC_Sampling/ADC.h | 3 + .../Embedded_SW/Embedded/Drivers/SPI/SPI_Comm.c | 261 +++++++++++---------- .../Embedded/Modules/Stubs_Handler/Stub_L6470.c | 2 +- 4 files changed, 214 insertions(+), 131 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC.c b/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC.c index 8d0a00084..8a475e89d 100644 --- a/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC.c +++ b/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC.c @@ -424,3 +424,82 @@ void ADCAcquireStop(void) MAP_ADCSequenceDisable(ADC0_BASE, 1); } +double Calculate_Pitot_Pressure() // WHS - AN_AIRPRESS_1 +{ + //MPXV7002 (NXP) + uint32_t VsampleInBits; + + double Pressure = 0.0, temp, PKpa,PBar,VADC = 0.0 ,VSensor,PMicroBar; + + VsampleInBits = ADC_GetReading(CHAN_AIR_PRESSURE_1); + + //---- VBits -> VADC ---- + + //ADC 12 bit -> 4096 -> 2.5V + + temp = VsampleInBits*2.5; + VADC = temp / 4096; + + //---- VADC -> VSensor --- + + //VADC = 1.96 - 10k( VSensor - 1.96) / 46.4k (from the electrical scheme) + // VSensor = 0 V -> VADC = 2.3824 V + // VSensor = 10 V -> VADC = 0.2272 V + + VSensor = (1.96- VADC) * 4.64 + 1.96; + + PKpa = 5 * VSensor; + // ---- P[Kpa] -> BAR ---- + + PBar = PKpa / 100.0; + + PMicroBar = PBar/1000; + Pressure = PMicroBar; + + return Pressure; +} + +double Calculate_Gas_Power_Consumption() // WHS +{ + // TGS 2602 (FIGARO) + + uint32_t VsampleInBits; + + double PS = 0.0, temp, VADC = 0.0 ,VSensor; + + double RL = 10000.0 , VC = 5.0, RS ;//TODO Verify that RL is 10K + + + VsampleInBits = ADC_GetReading(CHAN_VOCSENS); + + //---- VBits -> VADC ---- + + //ADC 12 bit -> 4096 -> 2.5V + + temp = VsampleInBits*2.5; + VADC = temp / 4096; + + //---- VADC -> VSensor --- + + //VADC = 1.96 - 10k( VSensor - 1.96) / 46.4k (from the electrical scheme) + // VSensor = 0 V -> VADC = 2.3824 V + // VSensor = 10 V -> VADC = 0.2272 V + + VSensor = (1.96- VADC) * 4.64 + 1.96; + + //Sensor resistance (Rs) is calculated with a measured value of Vout by: RS = ((VC*RL)/VOUT) - RL + temp = VC * RL; + temp /= VSensor; + RS = temp - RL; + //The value of power consumption (PS) can be calculated by utilizing the following formula: PS = (VC - VOUT)^2 / RS + + temp = VC - VSensor; + temp *= temp; + + PS = temp / RS; + + return PS; +} + + + diff --git a/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC.h b/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC.h index b667025e5..55edc4330 100644 --- a/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC.h +++ b/Software/Embedded_SW/Embedded/Drivers/ADC_Sampling/ADC.h @@ -33,4 +33,7 @@ void ADCAcquireStop(void); void ADC0SS0Handler(void); +double Calculate_Pitot_Pressure() ; +double Calculate_Gas_Power_Consumption(); + #endif /* DRIVERS_ADC_H_ */ diff --git a/Software/Embedded_SW/Embedded/Drivers/SPI/SPI_Comm.c b/Software/Embedded_SW/Embedded/Drivers/SPI/SPI_Comm.c index 80a1d15b2..8f6728456 100644 --- a/Software/Embedded_SW/Embedded/Drivers/SPI/SPI_Comm.c +++ b/Software/Embedded_SW/Embedded/Drivers/SPI/SPI_Comm.c @@ -863,7 +863,7 @@ void Mot_Stop() break; } } - +/* void loop() { GetStatus(); // Clear the error @@ -950,8 +950,8 @@ void loop() } } -/* Read_ELpos = Get_Param(x_EL_POS); - while(SSIBusy(SSI2_BASE)){};*/ +/// Read_ELpos = Get_Param(x_EL_POS); +// while(SSIBusy(SSI2_BASE)){}; Run(Direction,Run_Value ); @@ -974,41 +974,41 @@ void loop() break; } -/* if(k>5) - Move(Direction,Pos_Value ); - else - //GoTo_DIR(Direction,Pos_Value ); - GoTo(Pos_Value );*/ +/// if(k>5) +// Move(Direction,Pos_Value ); +// else +// //GoTo_DIR(Direction,Pos_Value ); +// GoTo(Pos_Value ); read_status = Get_Param(x_STATUS); -/* -#ifdef SPI_EVA_LCD_ENABLED - switch((read_status & x_STATUS_MOT_STATUS)>>5) - { - case 0://Stopped - writeLine("-"); - break; - case 1://Acceleration - if(read_status & x_STATUS_DIR) - writeLine(">>>"); - else - writeLine("<<<"); - break; - case 2://Deceleration - if(read_status & x_STATUS_DIR) - writeLine(">"); - else - writeLine("<"); - break; - case 3://Constant speed - if(read_status & x_STATUS_DIR) - //writeLine(">>"); - else - writeLine("<<"); - break; - } -#endif - */ +/// +//#ifdef SPI_EVA_LCD_ENABLED +// switch((read_status & x_STATUS_MOT_STATUS)>>5) +// { +// case 0://Stopped +// writeLine("-"); +// break; +// case 1://Acceleration +// if(read_status & x_STATUS_DIR) +// writeLine(">>>"); +// else +// writeLine("<<<"); +// break; +// case 2://Deceleration +// if(read_status & x_STATUS_DIR) +// writeLine(">"); +// else +// writeLine("<"); +// break; +// case 3://Constant speed +// if(read_status & x_STATUS_DIR) +// //writeLine(">>"); +// else +// writeLine("<<"); +// break; +// } +//#endif +// //read_status = GetStatus(); //read_status = Get_Param_Status( x_GET_STATUS); // The GetStatus command resets the STATUS register warning flags. read_status = Get_and_Clear_Status(); @@ -1016,10 +1016,10 @@ void loop() Get_Param(x_STEP_MODE); - /* - //speed = Get_Param(x_SPEED); - speed = GetParam(x_SPEED); - */ +// +// //speed = Get_Param(x_SPEED); +// speed = GetParam(x_SPEED); +// //SysCtlDelay(17500000); ///while(SSIBusy(SSI2_BASE)){}; //Avi_test_get_speed(); //OK !!! @@ -1033,29 +1033,29 @@ void loop() //unsigned long read_status; -/* - if(k<2) - { - HardHiZ(); - read_status = Get_Param(x_STATUS); - while((read_status & x_STATUS_HIZ) != x_STATUS_HIZ) - { - read_status = Get_Param(x_STATUS); - SysCtlDelay(1000000); - } - - - Read_Acc = Get_Param(x_ACC); - - - // while(SSIBusy(SSI2_BASE)){}; - - Read_Dec = Get_Param(x_DEC); - - while(SSIBusy(SSI2_BASE)){}; - - Get_Param(x_CONFIG); - }*/ +/// +// if(k<2) +// { +// HardHiZ(); +// read_status = Get_Param(x_STATUS); +// while((read_status & x_STATUS_HIZ) != x_STATUS_HIZ) +// { +// read_status = Get_Param(x_STATUS); +// SysCtlDelay(1000000); +// } +// +// +// Read_Acc = Get_Param(x_ACC); +// +// +// // while(SSIBusy(SSI2_BASE)){}; +// +// Read_Dec = Get_Param(x_DEC); +// +// while(SSIBusy(SSI2_BASE)){}; +// +// Get_Param(x_CONFIG); +// } //Get_Param(x_ALARM_EN); k--; } @@ -1076,79 +1076,80 @@ void loop() -/* - Read_KvalAcc = Get_Param(x_KVAL_ACC); - - Read_KvalDec = Get_Param(x_KVAL_DEC); -*/ - - /* while (1) - { - //Run(Direction,Run_Value ); - - - SysCtlDelay(7500000); - Read_Speed = Get_Param(x_SPEED); - - SpeedStepPerSec = MaxSpdCalc(Read_Speed); - - } -*/ - -/* - - //for(i=0xFFFFF;i>0;i--) - //{ - - //Move(FWD, 25600); - - //Move(FWD, 25600); - - Run(FWD, 0xFFFFF); - //while (digitalRead(Get_BUSY()) == LOW); // Until the movement completes, the - //while(L6470_BUSY == LOW){} // BUSYN pin will be low. - //SetParam(x_MAX_SPEED, MaxSpdCalc(1)); // Change the Speed - // SetParam(x_MIN_SPEED, MinSpdCalc(300)); - - //delay(5); - //SysCtlDelay(7500000); // need #include "driverlib/sysctl.h" - //ReadSpeed = GetParam(x_SPEED); - - - - //SysCtlDelay(17500000); - SysCtlDelay(10000000); // need #include "driverlib/sysctl.h" - //SoftStop(); - // HardStop(); -// } -// //SetParam(x_MAX_SPEED, MaxSpdCalc(300)); // Change the Speed -// //delay(5); -// // for(i=0;i<10;i++) -// { -// //Move(REV, 25600); - //Move(REV, 25600); +// +// Read_KvalAcc = Get_Param(x_KVAL_ACC); +// +// Read_KvalDec = Get_Param(x_KVAL_DEC); +// - Run(REV, 0xFFFFF); +// while (1) +// { +// //Run(Direction,Run_Value ); +// +// +// SysCtlDelay(7500000); +// Read_Speed = Get_Param(x_SPEED); +// +// SpeedStepPerSec = MaxSpdCalc(Read_Speed); +// +// } +// - //SetParam(x_MAX_SPEED, MaxSpdCalc(30)); // Change the Speed - SysCtlDelay(10000000); - //SoftStop(); +/// +// +// //for(i=0xFFFFF;i>0;i--) +// //{ +// +// //Move(FWD, 25600); +// +// //Move(FWD, 25600); +// +// Run(FWD, 0xFFFFF); // //while (digitalRead(Get_BUSY()) == LOW); // Until the movement completes, the -// //while (*BUSY_Reg == LOW){} // BUSYN pin will be low. -// //SetParam(x_MAX_SPEED, MaxSpdCalc(50)); // Change the Speed +// //while(L6470_BUSY == LOW){} // BUSYN pin will be low. +// //SetParam(x_MAX_SPEED, MaxSpdCalc(1)); // Change the Speed +// // SetParam(x_MIN_SPEED, MinSpdCalc(300)); +// // //delay(5); - // HardStop(); -// } - - //GoHome(); - - // SysCtlDelay(17500000); - //for(i=0;i<10;i++); -*/ +// //SysCtlDelay(7500000); // need #include "driverlib/sysctl.h" +// //ReadSpeed = GetParam(x_SPEED); +// +// +// +// //SysCtlDelay(17500000); +// SysCtlDelay(10000000); // need #include "driverlib/sysctl.h" +// //SoftStop(); +// // HardStop(); +//// } +//// //SetParam(x_MAX_SPEED, MaxSpdCalc(300)); // Change the Speed +//// //delay(5); +//// // for(i=0;i<10;i++) +//// { +//// //Move(REV, 25600); +// //Move(REV, 25600); +// +// Run(REV, 0xFFFFF); +// +// //SetParam(x_MAX_SPEED, MaxSpdCalc(30)); // Change the Speed +// SysCtlDelay(10000000); +// //SoftStop(); +//// //while (digitalRead(Get_BUSY()) == LOW); // Until the movement completes, the +//// //while (*BUSY_Reg == LOW){} // BUSYN pin will be low. +//// //SetParam(x_MAX_SPEED, MaxSpdCalc(50)); // Change the Speed +//// //delay(5); +// // HardStop(); +//// } +// +// //GoHome(); +// +// // SysCtlDelay(17500000); +// //for(i=0;i<10;i++); +// } } +*/ /////////////// - +/* int SPI_Control(bool Init) { if(Init == INIT) @@ -1162,7 +1163,7 @@ int SPI_Control(bool Init) return(0); } - +*/ byte Transfer_tx(byte data/*, byte data_out*/ ) { #define NUM_SSI_DATA 1 diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_L6470.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_L6470.c index b85b45a21..658205327 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_L6470.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_L6470.c @@ -75,7 +75,7 @@ void Stub_L6470DriverRequest(MessageContainer* requestContainer) TestUint32_6 = request->testuint32_6; //status = FPGA_ReadVersion((unsigned char)request->fpgaid, &Version, &Year, &Month, &Day); - SPI_Control(INIT); + //SPI_Control(INIT); //temp_init_spi2(); -- cgit v1.3.1 From 99554aaefd61f29be38669d46c7e4a573bec311f Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Tue, 29 Jan 2019 18:33:11 +0200 Subject: Version 1.3.5.3: IDS handling, control track and fixing, and other changes. --- Software/Embedded_SW/Embedded/.cproject | 4 +- .../Embedded/Common/SWUpdate/FileSystem.c | 9 +- .../Embedded/Common/SWUpdate/FirmwareUpgrade.c | 4 +- .../Embedded_SW/Embedded/Common/SW_Info/SW_Info.c | 2 +- .../Embedded_SW/Embedded/Common/Utilities/Utils.c | 2 - .../Embedded/Common/report/distributor.c | 2 +- .../Embedded/Communication/Connection.c | 2 +- .../Communication/PMR/Common/MessageType.pb-c.c | 198 +++++++++++---------- .../Communication/PMR/Common/MessageType.pb-c.h | 6 +- .../EmbeddedParameters/AlarmHandlingItem.pb-c.h | 4 +- Software/Embedded_SW/Embedded/DataDef.h | 1 + .../Embedded/Drivers/Flash_Memory/Flash_Memory.c | 12 +- .../Embedded/Drivers/Motors/MotorActions.c | 10 +- .../Drivers/SSI_Comm/Speed_Sensor/Speed_Sensor.c | 2 +- .../Embedded_SW/Embedded/Drivers/Valves/Valve.c | 29 ++- Software/Embedded_SW/Embedded/Main.c | 5 +- .../Embedded/Modules/AlarmHandling/AlarmHandling.c | 11 +- .../Embedded_SW/Embedded/Modules/Control/control.c | 3 + .../Embedded/Modules/General/GeneralHardware.c | 24 ++- .../Embedded_SW/Embedded/Modules/General/buttons.c | 1 + .../Embedded/Modules/Heaters/Heaters_init.c | 2 +- .../Embedded/Modules/Heaters/Heaters_print.c | 27 +-- Software/Embedded_SW/Embedded/Modules/IDS/IDS.h | 3 + .../Embedded/Modules/IDS/IDS_dispenser.c | 106 ++++++++++- Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h | 3 +- .../Embedded_SW/Embedded/Modules/IDS/IDS_maint.c | 28 ++- .../Embedded_SW/Embedded/Modules/IDS/IDS_print.c | 74 ++++++-- .../Embedded/Modules/Stubs_Handler/Stub_Valve.c | 1 - .../Embedded/Modules/Thread/ThreadLoad.c | 15 +- .../Embedded/Modules/Thread/Thread_ex.h | 3 + .../Embedded/Modules/Thread/Thread_init.c | 3 + .../Embedded/Modules/Thread/Thread_print.c | 12 +- .../Embedded/StateMachines/Printing/JobSTM.c | 24 ++- .../Embedded/StateMachines/Printing/PrintingSTM.c | 15 +- Software/Embedded_SW/Embedded/tm4c129xnczad.cmd | 4 +- 35 files changed, 433 insertions(+), 218 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/.cproject b/Software/Embedded_SW/Embedded/.cproject index 727bc4584..20edaeefb 100644 --- a/Software/Embedded_SW/Embedded/.cproject +++ b/Software/Embedded_SW/Embedded/.cproject @@ -55,10 +55,12 @@