aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2019-04-03 15:49:54 +0300
committerShlomo Hecht <shlomo@twine-s.com>2019-04-03 15:49:54 +0300
commit2bab30adc68e3166ca2ce613ba63224d909c84d9 (patch)
treee76b419f574bd7ce2040f6513225f556c81a057b /Software/Embedded_SW/Embedded/Modules
parent1638e0bd64156c28a72f2e01a9f93e1cb0683714 (diff)
downloadTango-2bab30adc68e3166ca2ce613ba63224d909c84d9.tar.gz
Tango-2bab30adc68e3166ca2ce613ba63224d909c84d9.zip
version 1.3.8.3 Power down scenario, Idle handling, some thread load improvements
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/buttons.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/process.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c34
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h1
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c3
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c11
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Waste/Waste.h1
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c10
11 files changed, 50 insertions, 20 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
index 8e76badfe..81c4a230b 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
@@ -1042,7 +1042,7 @@ void SendEventNotifications(void)
else
{
LOG_ERROR(response.n_events,"events malloc error");
- return ERROR;
+ return;
}
}
else
diff --git a/Software/Embedded_SW/Embedded/Modules/General/buttons.c b/Software/Embedded_SW/Embedded/Modules/General/buttons.c
index 4befb83ea..ee6204060 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/buttons.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/buttons.c
@@ -22,6 +22,7 @@
#include "Modules/Thread/Thread_ex.h"
#include "Modules/General/buttons.h"
+#include "StateMachines/Initialization/PowerOffSequence.h"
//int MachineOnOff();
int PowerDown();
@@ -86,6 +87,7 @@ bool Read_PWR_Button();//TODO move to GPIO folder
int PowerDown()
{
bool ret = OK;
+ PowerOffInit();
return ret;
}
diff --git a/Software/Embedded_SW/Embedded/Modules/General/process.c b/Software/Embedded_SW/Embedded/Modules/General/process.c
index 458bb35f2..277891861 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/process.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/process.c
@@ -20,6 +20,7 @@
#include "modules/ids/ids_ex.h"
#include "third_party/fatfs/src/ffconf.h"
#include "Common/SWUpdate/FileSystem.h"
+#include "StateMachines/Initialization/PowerIdle.h"
@@ -210,6 +211,7 @@ void ProcessRequestFunc(MessageContainer* requestContainer)
//REPORT_MSG (ProcessParams->dryerzone1temp,"Process Params Dryer");
+ PowerIdleOutOfIdleState();
if (status == 0)
status = HandleProcessParameters(ProcessParams);
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c
index 492dce2cc..b33b531a3 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c
@@ -245,6 +245,24 @@ void IDS_Dispenser_Content_Init (void)
//==================================
}
uint16_t seconds_counter = 0;
+uint32_t IDS_Dispenser_Store_Data (void)
+{
+ FRESULT Status = FR_OK;
+ IDSDispenserData.n_dispenserinfo = MAX_SYSTEM_DISPENSERS;
+ IDSDispenserData.dispenserinfo = dispenserdata;
+ uint8_t* response_buffer = my_malloc(dispenser_data__get_packed_size(&IDSDispenserData));
+ size_t response_size = 0;
+ if (response_buffer)
+ {
+ response_size = dispenser_data__pack(&IDSDispenserData, response_buffer);
+ Status = FileWrite(response_buffer,response_size,DispenserStorePath);
+ my_free(response_buffer);
+ }
+ else
+ return ERROR;
+
+ return Status;
+}
void IDS_Dispenser_Content_Calculation (char DispenserId)
{
assert (DispenserId<MAX_SYSTEM_DISPENSERS);
@@ -258,24 +276,12 @@ void IDS_Dispenser_Content_Calculation (char DispenserId)
{
if (seconds_counter++>=600)//3600)
{
+ seconds_counter = 0;
if (IDS_Dispenser_Data[DispenserId].consumedinnanolitter)
{
REPORT_MSG(IDS_Dispenser_Data[DispenserId].consumedinnanolitter,"Saving Dispenser Data" );
}
- seconds_counter = 0;
- IDSDispenserData.n_dispenserinfo = MAX_SYSTEM_DISPENSERS;
- IDSDispenserData.dispenserinfo = dispenserdata;
- uint8_t* response_buffer = my_malloc(dispenser_data__get_packed_size(&IDSDispenserData));
- size_t response_size = 0;
- if (response_buffer)
- {
- response_size = dispenser_data__pack(&IDSDispenserData, response_buffer);
- }
-
- FileWrite(response_buffer,response_size,DispenserStorePath);
- my_free(response_buffer);
- //dispenser_data__free_unpacked(response_size,NULL);
-
+ IDS_Dispenser_Store_Data();
}
}
}
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h
index 2e8d33e1a..9b2442698 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_ex.h
@@ -69,6 +69,7 @@ uint32_t IDS_Dispenser_Close_Valve_And_Stop_Motor(int DispenserId, callback_fptr
uint32_t IDS_Dispenser_Start_Motor_and_Open_Valve(int DispenserId, int MotorSpeed, callback_fptr callback);
void IDS_Dispenser_Content_Calculation (char DispenserId);
+uint32_t IDS_Dispenser_Store_Data (void);
uint32_t IDS_MapDispenserUsedinFileJob(void *JobDetails);
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
index 919e84582..d041b648e 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
@@ -7,6 +7,7 @@
#include "driverlib/gpio.h"
#include "Drivers/USB_Communication/USBCDCD.h"
+#include "StateMachines/Initialization/PowerOffSequence.h"
//#include "graphics_adapter.h"
@@ -20,7 +21,7 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
ProgressResponse response = PROGRESS_RESPONSE__INIT;
response.has_progress = true;
-
+ PowerOffInit();
int i = 0;
for (i = 0; i < request->amount; i++)
{
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
index 3ee248fba..ab5075ab9 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
@@ -78,6 +78,13 @@
//RUN MOTOR A FULL CYCLE
//RUN A MOTOR NUMBER OF STEPS
//RUN CONTROL FOR A SINGLE DANCER
+ bool ThreadLoadingActive(void)
+ {
+ if ((LoadStages > THREAD_LOAD_INIT)&&(LoadStages < THREAD_LOAD_END))
+ return true;
+ else
+ return false;
+ }
uint32_t Thread_Load_Init(void)
{
void* buffer = NULL;
@@ -245,9 +252,9 @@
{
REPORT_MSG(LoadStages, "Thread Load State Machine step");
CallbackCounter++;
- MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_DH_CLEANHEAD,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DH_CLEANHEAD].directionthreadwize, 200, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DH_CLEANHEAD], Thread_Load_HomingCallback,10000);
+ MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_DH_CLEANHEAD,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DH_CLEANHEAD].directionthreadwize, 80, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DH_CLEANHEAD], Thread_Load_HomingCallback,10000);
CallbackCounter++;
- MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_DH_CLEANMECH,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DH_CLEANMECH].directionthreadwize, 200, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DH_CLEANMECH], Thread_Load_HomingCallback,10000);
+ MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_DH_CLEANMECH,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DH_CLEANMECH].directionthreadwize, 80, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DH_CLEANMECH], Thread_Load_HomingCallback,10000);
return OK;
}
uint32_t Thread_Load_Open_Covers(void)
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h
index 69ac4b6ad..d7ce917c0 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_ex.h
@@ -67,9 +67,11 @@ typedef enum
THREAD_LOAD_END
}THREAD_LOAD_STAGES_ENUM;
uint32_t ThreadLoadStateMachine( THREAD_LOAD_STAGES_ENUM ReadValue);
+bool ThreadLoadingActive(void);
void ThreadLoadPollRequest(MessageContainer* requestContainer);
void ThreadLoadRequest(MessageContainer* requestContainer);
+
#endif
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
index 07a32b2a6..a4208ad25 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
@@ -717,7 +717,7 @@ void SetOriginMotorSpeed(float process_speed)
uint32_t ThreadPreSegmentState(void *SegmentDetails, uint32_t SegmentId)
{
//set the speed only before the first segment, speed is constant across all job segments and intersegments
- JobSegment* Segment = SegmentDetails;
+ //JobSegment* Segment = SegmentDetails;
float process_speed = dyeingspeed;
if (dyeingspeed == 0)
diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste.h b/Software/Embedded_SW/Embedded/Modules/Waste/Waste.h
index 66428039f..f6b7d760a 100644
--- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste.h
+++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste.h
@@ -97,6 +97,7 @@ typedef enum
U8 WHS_init(void);
U8 WHS_HW_test(void);
+bool WHS_IsEmptying();
diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c
index 689a2bc95..447e954d4 100644
--- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c
+++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_init.c
@@ -52,7 +52,6 @@ bool SetActiveWastCartridge();
-
struct waste_cartridge_params
{
uint32_t serial_number;
@@ -99,6 +98,15 @@ struct WHS_information
struct WHS_information WHS_info;
+bool WHS_IsEmptying()
+{
+ bool ret = false;
+ if ( WHS_info.sttMachine == WHS_emptying )
+ {
+ ret = true;
+ }
+ return ret;
+}
/* -------- cartridge function ----*/