aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/Thread/Thread.h
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2018-04-15 17:39:56 +0300
committerShlomo Hecht <shlomo@twine-s.com>2018-04-15 17:39:56 +0300
commitb74e275177921d0fc40b089aa6af33dcb44359e3 (patch)
treec14c2cbcf2d61693d7ced62a314f48f07efa8367 /Software/Embedded_SW/Embedded/Modules/Thread/Thread.h
parent9c0bad738d47742f39f2b02b240591653da6bc12 (diff)
downloadTango-b74e275177921d0fc40b089aa6af33dcb44359e3.tar.gz
Tango-b74e275177921d0fc40b089aa6af33dcb44359e3.zip
Initial Motors control testing
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/Thread/Thread.h')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread.h41
1 files changed, 14 insertions, 27 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread.h b/Software/Embedded_SW/Embedded/Modules/Thread/Thread.h
index d2675452c..c737b9ea8 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread.h
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread.h
@@ -8,6 +8,7 @@
#include "PMR/Hardware/HardwareDancer.pb-c.h"
#include "PMR/Hardware/HardwareDancerType.pb-c.h"
#include "PMR/Hardware/HardwareWinder.pb-c.h"
+#include "PMR/Hardware/HardwarePidControl.pb-c.h"
#include "PMR/Printing/JobSpool.pb-c.h"
#include "PMR/Printing/JobSpoolType.pb-c.h"
@@ -17,23 +18,6 @@
typedef struct
{
- HardwareMotorType id;
- uint32_t minfreq;
- uint32_t maxfreq;
- uint32_t minmicrostep;
- uint32_t maxmicrostep;
- double linearratio;
- uint32_t medianposition;
- double correctiongain;
- double ratio2dryerspeed;
- double kp;
- double ki;
- double kd;
- double changeslope;
- double hightimeoutusec;
-}MotorConfigStruc;
-typedef struct
-{
uint32_t startoffsetpulses;
uint32_t spoolbackingrate;
uint32_t segmentoffsetpulses;// the spool winding initial length in mm
@@ -43,14 +27,6 @@ typedef struct
double diameter;
}InternalWinderConfigStruc;
-typedef struct
-{
- bool fixorgradual;
- double k;
- double x;
- int32_t pulsepermmspring;
- int id; //HardwareDancerType
-}DancerConfigStruc;
typedef enum threadMotorsEnum
{
@@ -62,17 +38,28 @@ typedef enum threadMotorsEnum
MAX_THREAD_MOTORS_NUM
}threadMotorsEnum;
#define MAX_THREAD_FEED_MOTORS WINDER_MOTOR+1
+#define MAX_SYSTEM_DANCERS HARDWARE_DANCER_TYPE__RightDancer+1
+
extern TimerMotors_t ThreadMotorIdToMotorId[MAX_THREAD_MOTORS_NUM];
extern DANCER_ENUM ThreadMotorIdToDancerId[MAX_THREAD_MOTORS_NUM];
+extern HardwarePidControlType ThreadMotorIdToControlId[MAX_THREAD_MOTORS_NUM];
+
+extern HardwareMotor MotorsCfg[NUM_OF_MOTORS];
+extern HardwarePidControl MotorsControl[MAX_THREAD_MOTORS_NUM];
+extern InternalWinderConfigStruc InternalWinderCfg;
+extern HardwareDancer DancersCfg[MAX_SYSTEM_DANCERS];
-extern MotorConfigStruc MotorsCfg[MAX_THREAD_MOTORS_NUM];
-extern InternalWinderConfigStruc InternalWinderCfg;
+#define MAX_CONTROL_SAMPLES 6
+extern uint32_t MotorSamples[MAX_THREAD_MOTORS_NUM][MAX_CONTROL_SAMPLES];
+extern int MotorSamplePointer[MAX_THREAD_MOTORS_NUM];
+extern double NormalizedErrorCoEfficient[MAX_THREAD_MOTORS_NUM];
uint32_t InternalWinderConfigMessage(HardwareWinder* request);
uint32_t MotorsConfigMessage(HardwareMotor * request);
uint32_t InternalWindingConfigMessage(JobSpool* request);
uint32_t ThreadInitialTestStub(HardwareMotor * request);
+uint32_t MotorPidRequestMessage(HardwarePidControl* request);
uint32_t DancerConfigMessage(HardwareDancer * request);