aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2019-05-02 17:18:56 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2019-05-02 17:18:56 +0300
commit9d54fff40dd2f0e10ccf70a48aa6ffa4af038137 (patch)
treec44f9ed6a7b14802867a32914e0d44edf94672c3 /Software/Embedded_SW/Embedded/Modules
parent93c300c43ee9978c16edddf6ec06965e4fe91b6a (diff)
parent75a25525976e0537e714fb2ed77acb891cfb308a (diff)
downloadTango-9d54fff40dd2f0e10ccf70a48aa6ffa4af038137.tar.gz
Tango-9d54fff40dd2f0e10ccf70a48aa6ffa4af038137.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c1
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c11
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c8
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c39
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c4
6 files changed, 46 insertions, 19 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
index f0ce7397c..b12064915 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
@@ -118,7 +118,7 @@ void LoadConfigurationParameters(ConfigurationParameters *Params)
EmbeddedParameters.has_breaksensorlimit = true;
EmbeddedParameters.breaksensorlimit = 10;
EmbeddedParameters.has_diagnosticcollectionlimit = true;
- EmbeddedParameters.diagnosticcollectionlimit = 1;
+ EmbeddedParameters.diagnosticcollectionlimit = 2;
EmbeddedParameters.has_overheatcountlimit = true;
EmbeddedParameters.overheatcountlimit = 3;
EmbeddedParameters.has_underheatcountlimit = true;
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
index 5e61010dd..3a9ce53d8 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
@@ -953,6 +953,7 @@ uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue)
// Report(logmsg[index],__FILE__,__LINE__,index,RpWarning,index, Counter[index]);
// #warning PID is now only proportional (above)
// Report(ACheatstr,__FILE__,__LINE__,index,RpWarning,readValue, HeaterPIDConfig[index].m_calculatedError);
+ //Report("AC PID",__FILE__,__LINE__,HeaterPIDConfig[index].m_calculatedError/100,RpWarning,readValue, index);
HeaterRecalculateSharedHeatersParams(HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain, (int)(HeaterPIDConfig[index].m_calculatedError/100));
}
}
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
index 1e176a37a..668ab9dcd 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
@@ -758,7 +758,7 @@ uint32_t IDS_Cleaning_Stop_Cleaning_Solution (callback_fptr callback);
(int) segmentfirst_speed);
//REPORT_MSG(segmentfirst_speed,IdsMessage);
Report(IdsMessage, __FILE__, __LINE__, Dispenser_i, RpWarning, segmentfirst_speed, 0);
- SendJobProgress(0.0, 0, false, IdsMessage);
+ //SendJobProgress(0.0, 0, false, IdsMessage);
}
}
}
@@ -919,8 +919,7 @@ void IDS_StartBrushStop(int n_dispensers, JobDispenser** Dispensers)
//(Speed*uStep*PPR)/((2*PI*Dispenser_Radius)
segmentfirst_speed = Dispensers[Dispenser_i]->nanolitterpersecond
/ Dispensers[Dispenser_i]->nanoliterperpulse;
- if (Dispensers[Dispenser_i]->dispenserstepdivision
- != DISPENSER_STEP_DIVISION__Auto)
+ if (Dispensers[Dispenser_i]->dispenserstepdivision != DISPENSER_STEP_DIVISION__Auto)
{
//MotorSetMicroStep(HW_Motor_Id, Dispensers[Dispenser_i]->dispenserstepdivision);
segmentfirst_speed /=
@@ -948,14 +947,14 @@ void IDS_StartBrushStop(int n_dispensers, JobDispenser** Dispensers)
MotorSetSpeed(HW_Motor_Id, segmentfirst_speed);
CurrentDispenserSpeed[DispenserId] = segmentfirst_speed;
usnprintf(IdsMessage, 80,
- "Dispenser %d nl/sec %d nl/pulse %d speed %d",
+ "Dispenser %d nl/sec %d nl/pulse %d speed %d steps %d/%d",
DispenserId,
(int) Dispensers[Dispenser_i]->nanolitterpersecond,
(int) Dispensers[Dispenser_i]->nanoliterperpulse,
- (int) segmentfirst_speed);
+ (int) segmentfirst_speed,Dispensers[Dispenser_i]->dispenserstepdivision,MotorsCfg[HW_Motor_Id].microstep);
//REPORT_MSG(segmentfirst_speed,IdsMessage);
Report(IdsMessage, __FILE__, __LINE__, Dispenser_i, RpWarning, segmentfirst_speed, 0);
- SendJobProgress(0.0, 0, false, IdsMessage);
+ //SendJobProgress(0.0, 0, false, IdsMessage);
}
else
{
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
index 34cb61e27..c6f2526db 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
@@ -11,6 +11,7 @@
#include "drivers/Flash_Memory/FATFS/ff.h"
#include "drivers/Flash_Memory/FATFS/Control_File_System.h"
+#include "drivers/adc_sampling/adc.h"
//#include "graphics_adapter.h"
@@ -33,6 +34,13 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
assert(iFResult);
}
}
+ else
+ if((request->amount == 0x0C) && (request->delay == 0x0C)) //Get Gas Sensor
+ {
+ response.progress = (double)Calculate_Gas_Power_Consumption();
+ response.has_progress = true;
+
+ }
else if((request->amount == 0xDF) && (request->delay == 0xDF)) //Power off
{
PowerOffInit();
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
index 70f32ce6d..df88db3f9 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_Winder.c
@@ -54,6 +54,9 @@ uint32_t ScrewControlId = 0xFF;
InternalWinderConfigStruc InternalWinderCfg = {0};
+uint32_t ScrewLocationLimitSwitch = 0,ScrewLocationStart = 0;
+uint32_t ScrewLocationRun[3];
+
uint32_t Winder_Init(void)
{
ScrewTimerInterruptInit();
@@ -109,6 +112,10 @@ uint32_t Winder_Prepare(void)
AlarmHandlingSetAlarm(EVENT_TYPE__WINDER_CONE_DOES_NOT_EXIST,true);
return ERROR;
}*/
+
+ ScrewLocationRun[0] = 0;
+ ScrewLocationRun[1] = 0;
+
if (FPGA_Read_limit_Switches(GPI_LS_SCREW_RIGHT)==LIMIT)
{
//REPORT_MSG(LIMIT, "Winder_Prepare at limit");
@@ -136,6 +143,11 @@ uint32_t Winder_PrepareStage2(uint32_t deviceID, uint32_t ReadValue)
//MotorSetMaxSpeed (HARDWARE_MOTOR_TYPE__MOTO_SCREW,InternalWinderCfg.segmentoffsetpulses);
//REPORT_MSG(numOfSteps, "Winder_PrepareStage2");
+ //Read_Screw_Encoder();
+ //ScrewLocationLimitSwitch = Screw_RotEnc.Position;
+ //REPORT_MSG(ScrewLocationLimitSwitch, "Winder_PrepareStage2 Encoder Location");
+
+
REPORT_MSG(millisecondCounter/*MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_SCREW].maxfrequency*/, "Winder_PrepareStage2");
if (ReadValue != LIMIT)
{
@@ -157,7 +169,13 @@ uint32_t Winder_ScrewAtOffsetCallback(uint32_t deviceID, uint32_t BusyFlag)
//SetMotHome(HARDWARE_MOTOR_TYPE__MOTO_SCREW); //set this point as the spool home
//MotorSetMaxSpeed (HARDWARE_MOTOR_TYPE__MOTO_SCREW,temp_MaxFrequency);
+ //Read_Screw_Encoder();
+ //ScrewLocationStart = Screw_RotEnc.Position;
+
+ REPORT_MSG(ScrewLocationStart, "Winder_ScrewAtOffsetCallback Encoder Location");
+
ScrewCurrentDirection = false;
+ ScrewLocationRun[ScrewCurrentDirection] = Screw_RotEnc.Position;
ScrewSpeed = 0;
ScrewControlId = 0xFF;
ScrewNumberOfSteps = 0;
@@ -230,6 +248,10 @@ uint32_t Screw100msecDirectionChange(uint32_t deviceID, uint32_t BusyFlag)
ScrewCurrentDirection = 1-ScrewCurrentDirection;
CalculationDirectionChangeCounter++;
+ //REPORT_MSG(ScrewLocationRun[1] - ScrewLocationRun[0], "Screw Run NumberOfSteps");
+ //usnprintf(ScrewStr, 100, "Winder Encoder: 0 0x%x 1 0x%x diff %d ",ScrewLocationRun[0],ScrewLocationRun[1],abs(ScrewLocationRun[1] - ScrewLocationRun[0]));
+ //usnprintf(ScrewStr, 100, "Winder Encoder: 0 %d 1 %d diff %d ",ScrewLocationRun[0],ScrewLocationRun[1],ScrewLocationRun[1] - ScrewLocationRun[0]);
+ //Report(ScrewStr,__FILE__,__LINE__,ScrewLocationLimitSwitch,RpWarning,ScrewLocationStart, 0);
if (ScrewCurrentDirection == 1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_SCREW].directionthreadwize) //next time going out
{
@@ -242,7 +264,7 @@ uint32_t Screw100msecDirectionChange(uint32_t deviceID, uint32_t BusyFlag)
if ((CalculationDirectionChangeCounter/2)%InternalWinderCfg.spoolbackingrate == 0)
{
ScrewNumberOfSteps--;
- //REPORT_MSG(ScrewNumberOfSteps, "Head Backing ScrewNumberOfSteps");
+ REPORT_MSG(ScrewNumberOfSteps, "Head Backing ScrewNumberOfSteps");
}
}
@@ -251,7 +273,7 @@ uint32_t Screw100msecDirectionChange(uint32_t deviceID, uint32_t BusyFlag)
if ((CalculationDirectionChangeCounter/2)%InternalWinderCfg.SpoolBottomBackingRate == 0)
{
ScrewNumberOfSteps++;
- //REPORT_MSG(ScrewNumberOfSteps, "Bottom Backing ScrewNumberOfSteps");
+ REPORT_MSG(ScrewNumberOfSteps, "Bottom Backing ScrewNumberOfSteps");
}
}
if (WinderMotorSpeedRollOver)
@@ -288,7 +310,7 @@ uint32_t Screw100msecDirectionChange(uint32_t deviceID, uint32_t BusyFlag)
//Report(TempScrewStr,__FILE__,__LINE__,0,RpWarning,0, 0);
//Report(ScrewStr,__FILE__,__LINE__,ScrewCurrentDirection,RpWarning,CalculationDirectionChangeCounter, 0);
//REPORT_MSG(temp , "new winder speed");
-// Report("new winder speed",__FILE__,ScrewNumberOfSteps,temp,RpWarning,ScrewSpeed,0);
+ //Report("new winder speed",__FILE__,ScrewNumberOfSteps,temp,RpWarning,ScrewSpeed,0);
}
/********************************************************************************/
@@ -440,6 +462,9 @@ void ScrewTimerInterrupt(int ARG0)
ROM_TimerIntClear(Screw_timerBase, TIMER_TIMA_TIMEOUT); // Clear the timer interrupt
ROM_IntMasterDisable();
+ //Read_Screw_Encoder();
+ //ScrewLocationRun[ScrewCurrentDirection] = Screw_RotEnc.Position;
+
if (SCREW_TimerActivated == true)
{
ROM_TimerLoadSet(Screw_timerBase, TIMER_A,(int)ScrewRunningTime);
@@ -455,13 +480,7 @@ void ScrewTimerInterrupt(int ARG0)
}
ROM_IntMasterEnable();
Rotations+=0.03;
- /*random++;
- if (random >= 2)
- random = -1;*/
- //Report("ScrewTimerInterrupt dir, duration, speed", __FILE__,ScrewCurrentDirection,ScrewRunningTime, RpMessage, ScrewSpeed, 0);
- //
- // Enable all interrupts.
- //
+
return ;
}
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
index a4208ad25..c292f7dcd 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
@@ -842,8 +842,8 @@ char Endstr[150];
Report(Endstr,__FILE__,__LINE__,(int)TotalProcessedLength,RpWarning,(int)PoolerTotalProcessedLength,0);
ThreadUpdateProcessLength (0.0,(void *)NULL);
- TotalProcessedLength = 0.0;
- SetOriginMotorSpeed(0);
+ //TotalProcessedLength = 0.0;
+ SetOriginMotorSpeed(0);
#ifdef HUNDRED_MICROSECONDS_DANCER_READ
MillisecLogClose();
#endif