diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-06-06 18:39:40 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-06-06 18:39:40 +0300 |
| commit | 7ec6d80f838749faa39fec5eb838a34ebdd3e411 (patch) | |
| tree | e8b6593d9365d098f5f7fab28d850a26e02ce5b9 /Software/Embedded_SW/Embedded/Modules | |
| parent | cff4a8079c4d352cfd47793c701650e62337ed6e (diff) | |
| parent | 0561aaa7f26f42c421fd653f2899c1f7a551efe5 (diff) | |
| download | Tango-7ec6d80f838749faa39fec5eb838a34ebdd3e411.tar.gz Tango-7ec6d80f838749faa39fec5eb838a34ebdd3e411.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.c | 295 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.h | 2 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_I2C.c | 55 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_I2C.h (renamed from Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_MotorEncoder.h) | 2 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.h | 1 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_MotorEncoder.c | 86 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c | 56 |
7 files changed, 80 insertions, 417 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c index c40499bd7..0ed71bf0d 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c +++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c @@ -16,301 +16,6 @@ #include "PMR/Hardware/UploadHardWareConfigurationResponse.pb-c.h" #include "PMR/Hardware/SystemResetRequest.pb-c.h" #include "PMR/Hardware/SystemResetResponse.pb-c.h" -/* -PortInfoStruct PortInfoTable[MAX_PORT_ENUM] = { - {ANALOG_MIXCHIP_TEMP,"ANALOG_MIXCHIP_TEMP"}, - {AN_DYEINGH_CURSEN_1,"AN_DYEINGH_CURSEN_1"}, - {AN_DYEINGH_CURSEN_2,"AN_DYEINGH_CURSEN_2"}, - {AN_DYEINGH_CURSEN_3,"AN_DYEINGH_CURSEN_3"}, - {AN_DYEINGH_CURSEN_4,"AN_DYEINGH_CURSEN_4"}, - {AN_DYEINGH_CURSEN_5,"AN_DYEINGH_CURSEN_5"}, - {ANALOG_DYEINGH_TEMP1,"ANALOG_DYEINGH_TEMP1"}, - {ANALOG_DYEINGH_TEMP2,"ANALOG_DYEINGH_TEMP2"}, - {ANALOG_DYEINGH_TEMP3,"ANALOG_DYEINGH_TEMP3"}, - {ANALOG_DYEINGH_TEMP4,"ANALOG_DYEINGH_TEMP4"}, - {ANALOG_DYEINGH_TEMP5,"ANALOG_DYEINGH_TEMP5"}, - {AN_DRYER_CURSEN1,"AN_DRYER_CURSEN1"}, - {AN_DRYER_CURSEN2,"AN_DRYER_CURSEN2"}, - {AN_DRYER_CURSEN3,"AN_DRYER_CURSEN3"}, - {ANALOG_DRYER_TEMP1,"ANALOG_DRYER_TEMP1"}, - {ANALOG_DRYER_TEMP2,"ANALOG_DRYER_TEMP2"}, - {ANALOG_DRYER_TEMP3,"ANALOG_DRYER_TEMP3"}, - {AN_ENCLOSURETEMP1,"AN_ENCLOSURETEMP1"}, - {AN_ENCLOSURETEMP2,"AN_ENCLOSURETEMP2"}, - {AN_ENCLOSURETEMP3,"AN_ENCLOSURETEMP3"}, - {AN_IDS_PRESSENS_1,"AN_IDS_PRESSENS_1"}, - {AN_IDS_PRESSENS_2,"AN_IDS_PRESSENS_2"}, - {AN_IDS_PRESSENS_3,"AN_IDS_PRESSENS_3"}, - {AN_IDS_PRESSENS_4,"AN_IDS_PRESSENS_4"}, - {AN_IDS_PRESSENS_5,"AN_IDS_PRESSENS_5"}, - {AN_IDS_PRESSENS_6,"AN_IDS_PRESSENS_6"}, - {AN_IDS_PRESSENS_7,"AN_IDS_PRESSENS_7"}, - {AN_IDS_PRESSENS_8,"AN_IDS_PRESSENS_8"}, - {AN_MIDTANK_PRESSENS1,"AN_MIDTANK_PRESSENS1"}, - {AN_MIDTANK_PRESSENS2,"AN_MIDTANK_PRESSENS2"}, - {AN_MIDTANK_PRESSENS3,"AN_MIDTANK_PRESSENS3"}, - {AN_MIDTANK_PRESSENS4,"AN_MIDTANK_PRESSENS4"}, - {AN_MIDTANK_PRESSENS5,"AN_MIDTANK_PRESSENS5"}, - {AN_MIDTANK_PRESSENS6,"AN_MIDTANK_PRESSENS6"}, - {AN_MIDTANK_PRESSENS7,"AN_MIDTANK_PRESSENS7"}, - {AN_MIXCHIP_CURSENn,"AN_MIXCHIP_CURSENn"}, - {AN5V_LDANCER1,"AN5V_LDANCER1"}, - {AN5V_LDANCER2,"AN5V_LDANCER2"}, - {AN5V_RDANCER,"AN5V_RDANCER"}, - {AN10V_SPARE1,"AN10V_SPARE1"}, - {AN10V_SPARE2,"AN10V_SPARE2"}, - {AN_AIRPRESS_1,"AN_AIRPRESS_1"}, - {AN_AIRPRESS_2,"AN_AIRPRESS_2"}, - {AN_VOCSENS,"AN_VOCSENS"}, - {AN_BLOWERCTRL,"AN_BLOWERCTRL"}, - {LS_DH_LID_CLEANING,"LS_DH_LID_CLEANING"}, - {LS_DH_LID_CLOSED,"LS_DH_LID_CLOSED"}, - {LS_DH_CLEAN_UP,"LS_DH_CLEAN_UP"}, - {LS_DH_CLEAN_RIGHT,"LS_DH_CLEAN_RIGHT"}, - {LS_DH_SPARE1,"LS_DH_SPARE1"}, - {LS_DH_LID_OPEN,"LS_DH_LID_OPEN"}, - {LS_DH_CLEAN_DOWN,"LS_DH_CLEAN_DOWN"}, - {LS_DH_CLEAN_LEFT,"LS_DH_CLEAN_LEFT"}, - {LS_DRYER_LID_OPEN,"LS_DRYER_LID_OPEN"}, - {LS_DRYER_SPARE3,"LS_DRYER_SPARE3"}, - {LS_DRYER_LID_CLOSED,"LS_DRYER_LID_CLOSED"}, - {LS_DRYER_SPARE4,"LS_DRYER_SPARE4"}, - {LS_DRYER_SPARE1,"LS_DRYER_SPARE1"}, - {LS_LOADARM_RIGHT,"LS_LOADARM_RIGHT"}, - {LS_DRYER_SPARE2,"LS_DRYER_SPARE2"}, - {LS_LOADARM_LEFT,"LS_LOADARM_LEFT"}, - {GPI_PS1_DC_OK,"GPI_PS1_DC_OK"}, - {GPI_PANSW2,"GPI_PANSW2"}, - {GPI_PANSW4,"GPI_PANSW4"}, - {GPI_PANSW1,"GPI_PANSW1"}, - {GPI_PANSW3,"GPI_PANSW3"}, - {GPI_PANSW5,"GPI_PANSW5"}, - {GPI_PANSW6,"GPI_PANSW6"}, - {GPI_TACTSW1,"GPI_TACTSW1"}, - {GPI_TACTSW3,"GPI_TACTSW3"}, - {GPI_PWRBUTTON,"GPI_PWRBUTTON"}, - {GPI_TACTSW2,"GPI_TACTSW2"}, - {GPI_TACTSW4,"GPI_TACTSW4"}, - {GPI_EXTWINDER_1,"GPI_EXTWINDER_1"}, - {GPI_EXTWINDER_2,"GPI_EXTWINDER_2"}, - {GPI_EXTWINDER_3,"GPI_EXTWINDER_3"}, - {GPI_EXTWINDER_1_rtn,"GPI_EXTWINDER_1_rtn"}, - {GPI_EXTWINDER_2_rtn,"GPI_EXTWINDER_2_rtn"}, - {GPI_EXTWINDER_3_rtn,"GPI_EXTWINDER_3_rtn"}, - {LS_DISPENSER_UP_1,"LS_DISPENSER_UP_1"}, - {LS_DISPENSER_25_1,"LS_DISPENSER_25_1"}, - {LS_DISPENSER_75_1,"LS_DISPENSER_75_1"}, - {LS_DISPENSER_UP_3,"LS_DISPENSER_UP_3"}, - {LS_DISPENSER_25_3,"LS_DISPENSER_25_3"}, - {LS_DISPENSER_75_3,"LS_DISPENSER_75_3"}, - {LS_DISPENSER_UP_5,"LS_DISPENSER_UP_5"}, - {LS_DISPENSER_25_5,"LS_DISPENSER_25_5"}, - {LS_DISPENSER_75_5,"LS_DISPENSER_75_5"}, - {LS_DISPENSER_UP_7,"LS_DISPENSER_UP_7"}, - {LS_DISPENSER_25_7,"LS_DISPENSER_25_7"}, - {LS_DISPENSER_75_7,"LS_DISPENSER_75_7"}, - {LS_DISPENSER_DOWN_1,"LS_DISPENSER_DOWN_1"}, - {LS_DISPENSER_50_1,"LS_DISPENSER_50_1"}, - {LS_DISPENSER_SPARE_1,"LS_DISPENSER_SPARE_1"}, - {LS_DISPENSER_DOWN_3,"LS_DISPENSER_DOWN_3"}, - {LS_DISPENSER_50_3,"LS_DISPENSER_50_3"}, - {LS_DISPENSER_SPARE_3,"LS_DISPENSER_SPARE_3"}, - {LS_DISPENSER_DOWN_5,"LS_DISPENSER_DOWN_5"}, - {LS_DISPENSER_50_5,"LS_DISPENSER_50_5"}, - {LS_DISPENSER_SPARE_5,"LS_DISPENSER_SPARE_5"}, - {LS_DISPENSER_DOWN_7,"LS_DISPENSER_DOWN_7"}, - {LS_DISPENSER_50_7,"LS_DISPENSER_50_7"}, - {LS_DISPENSER_SPARE_7,"LS_DISPENSER_SPARE_7"}, - {LS_DISPENSER_UP_2,"LS_DISPENSER_UP_2"}, - {LS_DISPENSER_25_2,"LS_DISPENSER_25_2"}, - {LS_DISPENSER_75_2,"LS_DISPENSER_75_2"}, - {LS_DISPENSER_UP_4,"LS_DISPENSER_UP_4"}, - {LS_DISPENSER_25_4,"LS_DISPENSER_25_4"}, - {LS_DISPENSER_75_4,"LS_DISPENSER_75_4"}, - {LS_DISPENSER_UP_6,"LS_DISPENSER_UP_6"}, - {LS_DISPENSER_25_6,"LS_DISPENSER_25_6"}, - {LS_DISPENSER_75_6,"LS_DISPENSER_75_6"}, - {LS_DISPENSER_UP_8,"LS_DISPENSER_UP_8"}, - {LS_DISPENSER_25_8,"LS_DISPENSER_25_8"}, - {LS_DISPENSER_75_8,"LS_DISPENSER_75_8"}, - {LS_RLOADMOTOR_UP,"LS_RLOADMOTOR_UP"}, - {LS_DISPENSER_DOWN_2,"LS_DISPENSER_DOWN_2"}, - {LS_DISPENSER_50_2,"LS_DISPENSER_50_2"}, - {LS_DISPENSER_SPARE_2,"LS_DISPENSER_SPARE_2"}, - {LS_DISPENSER_DOWN_4,"LS_DISPENSER_DOWN_4"}, - {LS_DISPENSER_50_4,"LS_DISPENSER_50_4"}, - {LS_DISPENSER_SPARE_4,"LS_DISPENSER_SPARE_4"}, - {LS_DISPENSER_DOWN_6,"LS_DISPENSER_DOWN_6"}, - {LS_DISPENSER_50_6,"LS_DISPENSER_50_6"}, - {LS_DISPENSER_SPARE_6,"LS_DISPENSER_SPARE_6"}, - {LS_DISPENSER_DOWN_8,"LS_DISPENSER_DOWN_8"}, - {LS_DISPENSER_50_8,"LS_DISPENSER_50_8"}, - {LS_DISPENSER_SPARE_8,"LS_DISPENSER_SPARE_8"}, - {LS_SCREW_LEFT,"LS_SCREW_LEFT"}, - {SW_SPOOL_EXISTS,"SW_SPOOL_EXISTS"}, - {LS_SCREW_RIGHT,"LS_SCREW_RIGHT"}, - {SW_SPARE,"SW_SPARE"}, - {LS_LDANCER1_DOWN,"LS_LDANCER1_DOWN"}, - {LS_LDANCER2_DOWN,"LS_LDANCER2_DOWN"}, - {LS_LPIVOT_DOWN,"LS_LPIVOT_DOWN"}, - {LS_PIVOT_SPARE1,"LS_PIVOT_SPARE1"}, - {LS_LDANCER1_UP,"LS_LDANCER1_UP"}, - {LS_LDANCER2_UP,"LS_LDANCER2_UP"}, - {LS_LPIVOT_UP,"LS_LPIVOT_UP"}, - {LS_PIVOT_SPARE2,"LS_PIVOT_SPARE2"}, - {LS_LLOADMOTOR_DOWN,"LS_LLOADMOTOR_DOWN"}, - {LS_LSPARE1,"LS_LSPARE1"}, - {LS_LLOADMOTOR_UP,"LS_LLOADMOTOR_UP"}, - {LS_LSPARE2,"LS_LSPARE2"}, - {LS_RDANCER_DOWN,"LS_RDANCER_DOWN"}, - {LS_RLOADRAM_DOWN,"LS_RLOADRAM_DOWN"}, - {LS_RDANCER_UP,"LS_RDANCER_UP"}, - {LS_RLOADRAM_UP,"LS_RLOADRAM_UP"}, - {LS_RLOADMOTOR_DOWN,"LS_RLOADMOTOR_DOWN"}, - {GPI_TFEED_BREAK_1,"GPI_TFEED_BREAK_1"}, - {GPI_TFEED_BREAK_2,"GPI_TFEED_BREAK_2"}, - {LS_RSPARE1,"LS_RSPARE1"}, - {LS_SPARE2_1,"LS_SPARE2_1"}, - {LS_SPARE2_3,"LS_SPARE2_3"}, - {LS_SPARE1_1,"LS_SPARE1_1"}, - {LS_SPARE1_3,"LS_SPARE1_3"}, - {LS_RSPARE2,"LS_RSPARE2"}, - {LS_SPARE2_2,"LS_SPARE2_2"}, - {LS_SPARE2_4,"LS_SPARE2_4"}, - {LS_SPARE1_2,"LS_SPARE1_2"}, - {LS_SPARE1_4,"LS_SPARE1_4"}, - {GPI_WCONTAINER_WARN,"GPI_WCONTAINER_WARN"}, - {GPI_SW_WCONTAINER_PRES,"GPI_SW_WCONTAINER_PRES"}, - {GPI_CHILLER_FAULT,"GPI_CHILLER_FAULT"}, - {GPI_CHILLER_STAT1,"GPI_CHILLER_STAT1"}, - {GPI_BLOWER_TACH,"GPI_BLOWER_TACH"}, - {GPI_WCONTAINER_FULL,"GPI_WCONTAINER_FULL"}, - {GPI_AIRFLOW_FLAP,"GPI_AIRFLOW_FLAP"}, - {GPO_MIXCHIP_SSR4_CTRL,"GPO_MIXCHIP_SSR4_CTRL"}, - {GPO_DYEINGH_SSR7_CTRL,"GPO_DYEINGH_SSR7_CTRL"}, - {GPO_DYEINGH_SSR8_CTRL,"GPO_DYEINGH_SSR8_CTRL"}, - {GPO_DYEINGH_SSR5_CTRL,"GPO_DYEINGH_SSR5_CTRL"}, - {GPO_DYEINGH_SSR6_CTRL,"GPO_DYEINGH_SSR6_CTRL"}, - {GPO_DRYER_SSR3_CTRL,"GPO_DRYER_SSR3_CTRL"}, - {GPO_DRYER_SSR1_CTRL,"GPO_DRYER_SSR1_CTRL"}, - {GPO_DRYER_SSR2_CTRL,"GPO_DRYER_SSR2_CTRL"}, - {GPO_SPARE_SSR12_CTRL,"GPO_SPARE_SSR12_CTRL"}, - {GPO_SPARE_SSR13_CTRL,"GPO_SPARE_SSR13_CTRL"}, - {GPO_PDOWN_RL1_CTRL,"GPO_PDOWN_RL1_CTRL"}, - {GPO_LED1,"GPO_LED1"}, - {GPO_LED3,"GPO_LED3"}, - {GPO_LED2,"GPO_LED2"}, - {GPO_LED4,"GPO_LED4"}, - {GPO_BUZZER,"GPO_BUZZER"}, - {GPO_EXTWINDER_SSR11_CTRL,"GPO_EXTWINDER_SSR11_CTRL"}, - {GPO_EXTWINDER_1,"GPO_EXTWINDER_1"}, - {GPO_EXTWINDER_2,"GPO_EXTWINDER_2"}, - {GPO_EXTWINDER_3,"GPO_EXTWINDER_3"}, - {GPO_DILUTORPUMP_SSR10_CTRL,"GPO_DILUTORPUMP_SSR10_CTRL"}, - {GPO_WASTECH_PUMP1,"GPO_WASTECH_PUMP1"}, - {GPO_WASTECH_PUMP2,"GPO_WASTECH_PUMP2"}, - {GPO_TFEED_BREAK_1,"GPO_TFEED_BREAK_1"}, - {GPO_TFEED_BREAK_2,"GPO_TFEED_BREAK_2"}, - {GPO_SPARE1_1,"GPO_SPARE1_1"}, - {GPO_SPARE2_1,"GPO_SPARE2_1"}, - {GPO_SPARE1_2,"GPO_SPARE1_2"}, - {GPO_SPARE2_2,"GPO_SPARE2_2"}, - {GPO_BLOWER_PWM,"GPO_BLOWER_PWM"}, - {GPO_WHS_WTANKPUMP2,"GPO_WHS_WTANKPUMP2"}, - {GPO_CHILLER_SSR9_CTRL,"GPO_CHILLER_SSR9_CTRL"}, - {DH2,"DH2"}, - {DH1,"DH1"}, - {DRYER2,"DRYER2"}, - {DRYER1,"DRYER1"}, - {ELECTRICALENC,"ELECTRICALENC"}, - {USERPANEL,"USERPANEL"}, - {EXTWINDINGUNIT,"EXTWINDINGUNIT"}, - {DISPENSER_1,"DISPENSER_1"}, - {DISPENSER_3,"DISPENSER_3"}, - {DISPENSER_5,"DISPENSER_5"}, - {DISPENSER_7,"DISPENSER_7"}, - {MIDTANK3_1,"MIDTANK3_1"}, - {DISPENSER_2,"DISPENSER_2"}, - {DISPENSER_4,"DISPENSER_4"}, - {DISPENSER_6,"DISPENSER_6"}, - {DISPENSER_8,"DISPENSER_8"}, - {CART3,"CART3"}, - {CART1,"CART1"}, - {CART2,"CART2"}, - {CART4,"CART4"}, - {CART7,"CART7"}, - {CART5,"CART5"}, - {CART6,"CART6"}, - {CART8,"CART8"}, - {INTWINDINGUNIT,"INTWINDINGUNIT"}, - {LTFEEDUNIT2,"LTFEEDUNIT2"}, - {LTFEEDUNIT1,"LTFEEDUNIT1"}, - {RTFEEDUNIT2,"RTFEEDUNIT2"}, - {RTFEEDUNIT1,"RTFEEDUNIT1"}, - {SPARE2,"SPARE2"}, - {SPARE1,"SPARE1"}, - {WHS,"WHS"}, - {MIDTANK3_2,"MIDTANK3_2"}, - {MOTO_DH_CLEANHEAD,"MOTO_DH_CLEANHEAD"}, - {MOTO_DH_CLEANMECH,"MOTO_DH_CLEANMECH"}, - {MOTO_DH_LID,"MOTO_DH_LID"}, - {MOTO_DRYER_DRIVING,"MOTO_DRYER_DRIVING"}, - {MOTO_DRYER_LID,"MOTO_DRYER_LID"}, - {MOTO_DRYER_LOADARM,"MOTO_DRYER_LOADARM"}, - {MOTO_DISPENSER_1,"MOTO_DISPENSER_1"}, - {MOTO_DISPENSER_2,"MOTO_DISPENSER_2"}, - {MOTO_DISPENSER_3,"MOTO_DISPENSER_3"}, - {MOTO_DISPENSER_4,"MOTO_DISPENSER_4"}, - {MOTO_DISPENSER_5,"MOTO_DISPENSER_5"}, - {MOTO_DISPENSER_6,"MOTO_DISPENSER_6"}, - {MOTO_DISPENSER_7,"MOTO_DISPENSER_7"}, - {MOTO_DISPENSER_8,"MOTO_DISPENSER_8"}, - {MOTO_SCREW,"MOTO_SCREW"}, - {MOTO_WINDER,"MOTO_WINDER"}, - {MOTO_LDANCER1,"MOTO_LDANCER1"}, - {MOTO_LDANCER2,"MOTO_LDANCER2"}, - {MOTO_LDRIVING,"MOTO_LDRIVING"}, - {MOTO_LLOADING,"MOTO_LLOADING"}, - {MOTO_LPIVOT1,"MOTO_LPIVOT1"}, - {MOTO_RDANCER,"MOTO_RDANCER"}, - {MOTO_RDRIVING,"MOTO_RDRIVING"}, - {MOTO_RLOADARM,"MOTO_RLOADARM"}, - {MOTO_RLOADING,"MOTO_RLOADING"}, - {MOTO_SPARE1_1,"MOTO_SPARE1_1"}, - {MOTO_SPARE1_2,"MOTO_SPARE1_2"}, - {MOTO_SPARE2_1,"MOTO_SPARE2_1"}, - {MOTO_SPARE2_2,"MOTO_SPARE2_2"}, - {DRYER_LOADARM_ROTENC,"DRYER_LOADARM_ROTENC"}, - {DISPENSER_ROTENC1,"DISPENSER_ROTENC1"}, - {DISPENSER_ROTENC2,"DISPENSER_ROTENC2"}, - {DISPENSER_ROTENC3,"DISPENSER_ROTENC3"}, - {DISPENSER_ROTENC4,"DISPENSER_ROTENC4"}, - {DISPENSER_ROTENC5,"DISPENSER_ROTENC5"}, - {DISPENSER_ROTENC6,"DISPENSER_ROTENC6"}, - {DISPENSER_ROTENC7,"DISPENSER_ROTENC7"}, - {DISPENSER_ROTENC8,"DISPENSER_ROTENC8"}, - {SCREW_ROTENC,"SCREW_ROTENC"}, - {LDANCER1_ROTENC2,"LDANCER1_ROTENC2"}, - {LDANCER2_ROTENC2,"LDANCER2_ROTENC2"}, - {LSPARE_ROTENC,"LSPARE_ROTENC"}, - {LSPARE_ROTENCn,"LSPARE_ROTENCn"}, - {LSPARE1_ROTENC,"LSPARE1_ROTENC"}, - {LSPARE2_ROTENC,"LSPARE2_ROTENC"}, - {RDANCER_ROTENC2,"RDANCER_ROTENC2"}, - {RSPARE_ROTENC,"RSPARE_ROTENC"}, - {RSPEEDSENS_ROTENC,"RSPEEDSENS_ROTENC"}, - {SPARE1_ROTENC,"SPARE1_ROTENC"}, - {SPARE2_ROTENC,"SPARE2_ROTENC"}, - {FAN_TACHO1,"FAN_TACHO1"}, - {FAN_TACHO3,"FAN_TACHO3"}, - {FAN_TACHO2,"FAN_TACHO2"}, - {FAN1_TACH,"FAN1_TACH"}, - {FAN2_TACH,"FAN2_TACH"}, - {FAN5_TACH,"FAN5_TACH"}, - {FAN3_TACH,"FAN3_TACH"}, - {FAN4_TACH,"FAN4_TACH"}, -}; -*/ uint32_t HWConfigurationFunc(MessageContainer* requestContainer) diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.h b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.h index 587f00c4f..7c0fee8ed 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.h +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.h @@ -9,7 +9,7 @@ #define MODULES_STUBS_HANDLER_STUBREALTIMEUSAGE_H_ - +void Stub_RealTimeUsageRequest(MessageContainer* requestContainer); #endif /* MODULES_STUBS_HANDLER_STUBREALTIMEUSAGE_H_ */ diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_I2C.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_I2C.c new file mode 100644 index 000000000..11030f9c6 --- /dev/null +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_I2C.c @@ -0,0 +1,55 @@ + +#include <Container.h> +#include <DataDef.h> +#include <PMR/Common/MessageContainer.pb-c.h> +#include <PMR/Stubs/StubI2CRequest.pb-c.h> +#include <PMR/Stubs/StubI2CResponse.pb-c.h> +#include <stdbool.h> +#include <stdlib.h> +#include <stdio.h> +#include <stdint.h> +#include <string.h> +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "inc/hw_uart.h" +#include "driverlib/gpio.h" + +#include "Drivers/USB_Communication/USBCDCD.h" + +#include "drivers/twine_graphicslib/graphics_adapter.h" + +#include "Stub_Status.h" +#include "drivers/I2C_Communication/I2C.h" + +void Stub_I2CRequest(MessageContainer* requestContainer) +{ + uint32_t status = PASSED; + MessageContainer responseContainer; + + StubI2CRequest* request = stub_i2_crequest__unpack(NULL, requestContainer->data.len, requestContainer->data.data); + + StubI2CResponse response = STUB_I2_CRESPONSE__INIT; + + response.i2cid = request->i2cid; + response.has_i2cid = true; + + response.readbyte = I2C_control(request->i2cid, request->slaveaddress, request->readorwrite,request->bytetowrite ); + response.has_readbyte= true; + + status_response(status,&response.status, &response.statusword ,&response.has_statusword); + + writeLine("Sending Response: "); +// + + Write_status_response(status); + + responseContainer = createContainer(MESSAGE_TYPE__StubI2CResponse, requestContainer->token, true, &response, &stub_i2_cresponse__pack, &stub_i2_cresponse__get_packed_size); + + //------------------------------------------------------------------------------------------- + uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer)); + size_t container_size = message_container__pack(&responseContainer, container_buffer); + free(responseContainer.data.data); + SendChars((char*)container_buffer, container_size); + + stub_i2_crequest__free_unpacked(request,NULL); +} diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_MotorEncoder.h b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_I2C.h index 0e0a1c41e..b2d6e0dbc 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_MotorEncoder.h +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_I2C.h @@ -1,6 +1,6 @@ #ifndef STUB_MOTORENCODER_H #define STUB_MOTORENCODER_H -void Stub_MotorEncoderRequest(MessageContainer* requestContainer); +void Stub_I2CRequest(MessageContainer* requestContainer); #endif //STUB_STUB_MOTORENCODER_H diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.h b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.h index 95f82353f..f638ec4d4 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.h +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_Motor.h @@ -5,3 +5,4 @@ void Stub_MotorStatusRequest(MessageContainer* requestContainer); void Stub_MotorSpeedRequest(MessageContainer* requestContainer); void Stub_MotorPositionRequest(MessageContainer* requestContainer); void Stub_MotorMovRequest(MessageContainer* requestContainer); +void Stub_MotorRequest(MessageContainer* requestContainer); diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_MotorEncoder.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_MotorEncoder.c deleted file mode 100644 index c27a19bc3..000000000 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_MotorEncoder.c +++ /dev/null @@ -1,86 +0,0 @@ - -#include <Container.h> -#include <DataDef.h> -#include <PMR/Common/MessageContainer.pb-c.h> -#include <PMR/Stubs/StubMotorEncoderRequest.pb-c.h> -#include <PMR/Stubs/StubMotorEncoderResponse.pb-c.h> -#include <stdbool.h> -#include <stdlib.h> -#include <stdio.h> -#include <stdint.h> -#include <string.h> -#include "inc/hw_memmap.h" -#include "inc/hw_types.h" -#include "inc/hw_uart.h" -#include "driverlib/gpio.h" - -#include "Drivers/USB_Communication/USBCDCD.h" - -#include "drivers/twine_graphicslib/graphics_adapter.h" - -#include "Stub_Status.h" - -void Stub_MotorEncoderRequest(MessageContainer* requestContainer) -{ - uint32_t status = NOT_SUPPORTED; - MessageContainer responseContainer; - - StubMotorEncoderRequest* request = stub_motor_encoder_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); - - /* - request->motorid - request->readencspeed - request->readdirection - request->motion_control - */ - - writeLine("Encoder Request: "); - - writeFloat(request->motorid); - writeString(", "); - writeFloat(request->readencspeed); - writeString(", "); - writeFloat(request->readdirection); - writeString(", "); - writeFloat(request->motion_control); - - StubMotorEncoderResponse response = STUB_MOTOR_ENCODER_RESPONSE__INIT; - - response.encoderid = request->motorid; - response.has_encoderid = true; - - response.encoderversion = 456; - response.has_encoderversion = true; - - //response.motorspeed - response.has_motorspeed = false; - - response.motordirection = CW; - response.has_motordirection = true; - - status_response(status,&response.status, &response.statusword ,&response.has_statusword); - - writeLine("Sending Response: "); - - writeFloat(response.encoderid); - writeString(", "); - writeFloat(response.encoderversion); - writeString(", "); - writeFloat(response.motorspeed); - writeString(", "); - writeFloat(response.motordirection); - writeString(", "); - - Write_status_response(status); - - responseContainer = createContainer(MESSAGE_TYPE__StubMotorEncoderResponse, requestContainer->token, true, &response, &stub_motor_encoder_response__pack, &stub_motor_encoder_response__get_packed_size); - - //------------------------------------------------------------------------------------------- - uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer)); - size_t container_size = message_container__pack(&responseContainer, container_buffer); - free(responseContainer.data.data); - SendChars((char*)container_buffer, container_size); - //free(container_buffer); - //free(requestContainer); - stub_motor_encoder_request__free_unpacked(request,NULL); -} diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index 71a5e0dac..92bfa9c92 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -59,6 +59,7 @@ double CurrentRequestedLength = 0.0; double CurrentProcessedLength = 0.0; double LengthCalculationMultiplier; +int CurrentSegmentId = 0; typedef void (* ProcessedLengthFunc)(void); ProcessedLengthFunc ProcessedLengthFuncPtr = NULL; // segment/intersegment/distance to spool finished @@ -103,6 +104,7 @@ uint32_t Control_Delta_Position_Pass(uint32_t Current_Read,uint32_t Previous_Rea * * * **************************************************************************************/ +uint32_t initialpos = 0xFFFF; void ThreadUpdateProcessLength (double length, void *Funcptr) { @@ -112,11 +114,11 @@ void ThreadUpdateProcessLength (double length, void *Funcptr) //CurrentPosition = 0; totalLength = 0; ProcessedLengthFuncPtr = (ProcessedLengthFunc)Funcptr; + initialpos = 0xFFFF; } double MotorSentData[1000] = {0}; uint32_t PosDif[1000] = {0}; uint32_t tick[1000] = {0}; -uint32_t initialpos = 0xFFFF; int MotorDataIndex = 0; @@ -143,7 +145,10 @@ uint32_t ThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue) if (CurrentPosition == 0) return OK; //unusable data if (initialpos == 0xFFFF) - initialpos = CurrentPosition; + { + PreviousPosition = CurrentPosition; + initialpos = 0; + } positionDiff = Control_Delta_Position_Pass(CurrentPosition,PreviousPosition); //positionDiff = positionDiff / MotorsCfg[ThreadMotorIdToMotorId[index]].microstep; PreviousPosition = CurrentPosition; @@ -169,20 +174,12 @@ uint32_t ThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue) if (MotorDataIndex == 999) MotorDataIndex = 0; static int pooler_counter = 0; pooler_counter++; + if (pooler_counter%10 == 0) + { + SendJobProgress(CurrentProcessedLength/CurrentRequestedLength,CurrentSegmentId,false); + } if (pooler_counter>=100) { - /*{ -"HeaterGroupId": 0, -"Zone1Temp": 80, -"Zone2Temp": 2641, -"Heater1Active": false, -"Heater2Active": false, -"Heater1Percentage": 3, -"Heater2Percentage": 4000, -"InfoMessage": "Standard DC" -} void HeatingTestSendResonse(uint32_t status, bool last,bool heater1Active,bool heater2Active, int temperature1, int temperature2,int Heater1Percentage,int Heater2Percentage, char* Message) - -}*/ //HeatingTestSendResonse(0, false,true,true, MotorDriverRequest[22].Speed,MotorDriverRequest[18].Speed,MotorDriverRequest[15].Speed,MotorDriverRequest[3].Speed, "MotorSpeed"); HeatingTestSendResonse(0, false,true,true, /*OriginalMotorSpd_2PPS[index]*/length,positionDiff/*(int)error_integered*/,CurrentProcessedLength,CurrentRequestedLength, "FeederLength"); @@ -190,6 +187,8 @@ uint32_t ThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue) } if (CurrentProcessedLength>=CurrentRequestedLength ) { + SendJobProgress(100,0,true); + #warning handle job wit several segments!!! // segment/intersegment/distance to spool finished if (ProcessedLengthFuncPtr) ProcessedLengthFuncPtr(); @@ -223,15 +222,6 @@ uint32_t ThreadSpeedControlCBFunction(uint32_t IfIndex, uint32_t ReadValue) MotorControlConfig[index].m_mesuredParam = ReadValue; MotorControlConfig[index].m_calculatedError = PIDAlgorithmCalculation(MotorControlConfig[index].m_SetParam , MotorControlConfig[index].m_mesuredParam, &MotorControlConfig[index].m_params, &MotorControlConfig[index].m_preError, &MotorControlConfig[index].m_integral); -/* if (MotorControlConfig[index].m_calculatedError >= MotorControlConfig[index].m_params.MAX) - { - MotorControlConfig[index].m_calculatedError = MotorControlConfig[index].m_params.MAX; - } - if (MotorControlConfig[index].m_calculatedError < MotorControlConfig[index].m_params.MIN) - { - MotorControlConfig[index].m_calculatedError = MotorControlConfig[index].m_params.MIN; - } -*/ //SetMotorFreq (index, MotorControlConfig[index].m_calculatedError); } return OK; @@ -289,8 +279,10 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue) if(MotorControlConfig[index].m_isEnabled ) { DancerId = ThreadMotorIdToDancerId[index]; + if (ReadValue < 10) + return; TranslatedReadValue = ReadValue - DancersCfg[DancerId].zeropoint; - if (index == POOLER_MOTOR) + if (index == POOLER_MOTOR) //pooler dancer is right sided: data is opposite TranslatedReadValue = (-1*TranslatedReadValue); //TranslatedReadValue = 0;//test MotorSamples[index][MotorSamplePointer[index]] = TranslatedReadValue;//(-1 * TranslatedReadValue); @@ -303,14 +295,8 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue) MotorControlConfig[index].m_mesuredParam = NormalizedError; MotorControlConfig[index].m_calculatedError = PIDAlgorithmCalculation((float)MotorControlConfig[index].m_SetParam , (float)MotorControlConfig[index].m_mesuredParam, &MotorControlConfig[index].m_params, &MotorControlConfig[index].m_preError, &MotorControlConfig[index].m_integral); - /*if (MotorControlConfig[index].m_calculatedError >= MotorControlConfig[index].m_params.MAX) - { - MotorControlConfig[index].m_calculatedError = MotorControlConfig[index].m_params.MAX; - } - if (MotorControlConfig[index].m_calculatedError < MotorControlConfig[index].m_params.MIN) - { - MotorControlConfig[index].m_calculatedError = MotorControlConfig[index].m_params.MIN; - }*/ + if (index == FEEDER_MOTOR) //feeder unit handles errors opposite to left unit + MotorControlConfig[index].m_calculatedError = (-1*MotorControlConfig[index].m_calculatedError); calculated_speed = (1-MotorControlConfig[index].m_calculatedError)*OriginalMotorSpd_2PPS[index]; if (abs(calculated_speed-CurrentControlledSpeed[index])>5) { @@ -363,6 +349,7 @@ bool InitialProcess = false; uint32_t ThreadPrepareState(void *JobDetails) { int Motor_i, HW_Motor_Id, Pid_Id; + CurrentSegmentId = 0; //start thread control for all motors for (Motor_i = 0;Motor_i < MAX_THREAD_MOTORS_NUM;Motor_i++) { @@ -393,7 +380,7 @@ bool InitialProcess = false; RemoveControlCallback(SpeedControlId,ThreadLengthCBFunction); SpeedControlId = 0xFF; } - SetMotHome(ThreadMotorIdToMotorId[Motor_i]); + //SetMotHome(ThreadMotorIdToMotorId[Motor_i]); LengthCalculationMultiplier = (MotorsCfg[ThreadMotorIdToMotorId[Motor_i]].pulleyradius*2*PI)/(MotorsCfg[ThreadMotorIdToMotorId[Motor_i]].pulseperround*MotorsCfg[ThreadMotorIdToMotorId[Motor_i]].microstep); SpeedControlId = AddControlCallback(ThreadLengthCBFunction, eHundredMillisecond,MotorGetPositionFromFPGA,(IfTypeThread*0x100+Motor_i),ThreadMotorIdToMotorId[Motor_i],Motor_i); } @@ -406,7 +393,7 @@ bool InitialProcess = false; CurrentControlledSpeed[Motor_i] = 0; } ControlIdtoMotorId[Motor_i] = AddControlCallback(ThreadControlCBFunction, eOneMillisecond,Control_Read_Dancer_Position,(IfTypeThread*0x100+Motor_i),ThreadMotorIdToDancerId[Motor_i],Motor_i); - AddControlCallback(ThreadControlSpeedReadFunction, eHundredMillisecond,MotorGetSpeedFromFPGA,(IfTypeThread*0x100+Motor_i),ThreadMotorIdToMotorId[Motor_i],Motor_i); + //AddControlCallback(ThreadControlSpeedReadFunction, eHundredMillisecond,MotorGetSpeedFromFPGA,(IfTypeThread*0x100+Motor_i),ThreadMotorIdToMotorId[Motor_i],Motor_i); } if (Motor_i == POOLER_MOTOR) // dryer motor is speed controlled. later a speed sensor will be utilized, but for now it will n//ot be controlled { @@ -521,6 +508,7 @@ void ThreadDistanceToSpoolEnded(void) uint32_t ThreadSegmentState(void *JobDetails, int SegmentId) { JobTicket* JobTicket = JobDetails; + CurrentSegmentId = SegmentId; ThreadUpdateProcessLength (JobTicket->segments[SegmentId]->length,(void *)ThreadSegmentEnded); return OK; } |
