#include "PMR/common/MessageContainer.pb-c.h" #include "PMR/Hardware/HardwareMotor.pb-c.h" #include "PMR/Hardware/HardwareMotorType.pb-c.h" #include "PMR/Hardware/HardwareDancer.pb-c.h" #include "PMR/Hardware/HardwareDancerType.pb-c.h" #include "PMR/Hardware/HardwareWinder.pb-c.h" #include "PMR/Printing/JobSpool.pb-c.h" #include "PMR/Printing/JobSpoolType.pb-c.h" 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; uint32_t milimetersperrotation; }InternalWinderConfigStruc; typedef struct { bool fixorgradual; double k; double x; int32_t pulsepermmspring; int id; //HardwareDancerType }DancerConfigStruc; #define MAX_THREAD_MOTORS_NUM HARDWARE_MOTOR_TYPE__WinderMotor +1 extern MotorConfigStruc MotorsCfg[MAX_THREAD_MOTORS_NUM]; extern InternalWinderConfigStruc InternalWinderCfg; uint32_t InternalWinderConfigMessage(HardwareWinder* request); uint32_t MotorsConfigMessage(HardwareMotor * request); uint32_t InternalWindingConfigMessage(JobSpool* request); uint32_t DancerConfigMessage(HardwareDancer * request);