aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-06-06 18:39:40 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-06-06 18:39:40 +0300
commit7ec6d80f838749faa39fec5eb838a34ebdd3e411 (patch)
treee8b6593d9365d098f5f7fab28d850a26e02ce5b9 /Software/Embedded_SW/Embedded/Modules
parentcff4a8079c4d352cfd47793c701650e62337ed6e (diff)
parent0561aaa7f26f42c421fd653f2899c1f7a551efe5 (diff)
downloadTango-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.c295
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/StubRealTimeUsage.h2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_I2C.c55
-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.h1
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Stub_MotorEncoder.c86
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c56
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;
}