From 0268cfdbfeb55fd970199130d98658845d55eb66 Mon Sep 17 00:00:00 2001 From: Avi Levkovich Date: Wed, 29 Jul 2020 13:51:16 +0300 Subject: RFID: Uptade the function ReadValue + Add CRC - based on alon negni fix from 06-04-2020 --- .../I2C_Communication/RFID_NFC/logi-tag/LT_RFID.c | 45 +++++++++++++++++----- .../I2C_Communication/RFID_NFC/logi-tag/LT_RFID.h | 8 +++- 2 files changed, 42 insertions(+), 11 deletions(-) (limited to 'Software/Embedded_SW') diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/logi-tag/LT_RFID.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/logi-tag/LT_RFID.c index 30a6d6f16..4171a62a6 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/logi-tag/LT_RFID.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/logi-tag/LT_RFID.c @@ -381,27 +381,29 @@ RFID_RETURN_CODE WriteValue( uint32_t readerID, NxpNci_RfIntf_t *tagInfo, uint8_ return retCode; } -RFID_RETURN_CODE ReadValue( uint32_t readerID, NxpNci_RfIntf_t *tagInfo, uint8_t *value, uint8_t valueIndex, uint32_t *valueNum ) + + +uint32_t ReadValue( uint32_t readerID, NxpNci_RfIntf_t *tagInfo, uint8_t *value, uint8_t valueIndex, RFID_RETURN_CODE *rfidCode ) { - RFID_RETURN_CODE retCode; + uint32_t retCode = 0; uint8_t i, data[512]; uint16_t succeededSize = 0; + uint8_t startBlock = GetBlockLocation( Fields[valueIndex].fieldLocation ); - retCode = RFID_CardModeReceive( readerID, tagInfo, data, startBlock, Fields[valueIndex].fieldLength + BLOCK_SIZE, &succeededSize); - if ( retCode != SUCCESS ) + *rfidCode = RFID_CardModeReceive( readerID, tagInfo, data, startBlock, Fields[valueIndex].fieldLength + BLOCK_SIZE, &succeededSize); + if ( *rfidCode != SUCCESS ) return retCode; memcpy( value, &data[ Fields[valueIndex].fieldLocation % BLOCK_SIZE], Fields[valueIndex].fieldLength ) ; if ( Fields[valueIndex].isNum == true ) { - *valueNum = 0; + retCode = 0; for ( i = 0; i < Fields[valueIndex].fieldLength; i++ ) { - *valueNum *= 10; - *valueNum += value[i] - '0'; - //*valueNum += value[i]; - //if ( i < Fields[valueIndex].fieldLength - 1 ) - // *valueNum <<= 8; + retCode *= 10; + retCode += value[i] - '0'; + } + } return retCode; } @@ -956,6 +958,29 @@ int incrementCounterAndCompare( uint32_t readerID, NxpNci_RfIntf_t *tagInfo, int return 1; } +void crc_ccitt_init(void) +{ + m_crc = 0xffff; +} + +void crc_ccitt_update(unsigned char * buf, int len) +{ + int i, j; + + for ( i = 0; i < len; i++ ) + { + m_crc ^= buf[i]; + for ( j = 0; j < 8; j++ ) + { + if ( m_crc & 0x0001 ) + m_crc = (m_crc >> 1) ^ 0x8408; + else + m_crc = (m_crc >> 1); + } + } +} + + void RFID_Test() { diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/logi-tag/LT_RFID.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/logi-tag/LT_RFID.h index 90860ea50..b07c79f4f 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/logi-tag/LT_RFID.h +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/logi-tag/LT_RFID.h @@ -56,6 +56,7 @@ typedef struct{ } FIELDS_LOCATIONS; FIELDS_LOCATIONS Fields[NUMBER_OF_FIELDS]; +unsigned int m_crc; RFID_RETURN_CODE RFID_Connect(uint32_t readerID); RFID_RETURN_CODE RFID_Disconnect(uint32_t readerID); @@ -70,7 +71,8 @@ RFID_RETURN_CODE RFID_CardModeSend(uint32_t readerID, NxpNci_RfIntf_t *tagInfo, bool IsTagValid(uint32_t readerID, NxpNci_RfIntf_t *tagInfo); uint32_t GetCounter (uint32_t readerID, NxpNci_RfIntf_t *tagInfo); RFID_RETURN_CODE WriteValue( uint32_t readerID, NxpNci_RfIntf_t *tagInfo, uint8_t *value, uint8_t valueIndex, uint32_t valueNum ); -RFID_RETURN_CODE ReadValue( uint32_t readerID, NxpNci_RfIntf_t *tagInfo, uint8_t *value, uint8_t valueIndex, uint32_t *valueNum ); + +uint32_t ReadValue( uint32_t readerID, NxpNci_RfIntf_t *tagInfo, uint8_t *value, uint8_t valueIndex, RFID_RETURN_CODE *rfidCode ); RFID_RETURN_CODE getUID( uint32_t readerID, NxpNci_RfIntf_t *tagInfo, uint8_t *uid ); void calcHash( uint8_t *input, uint16_t inputLen, uint8_t *output ); bool setHashValue( uint32_t readerID, NxpNci_RfIntf_t *tagInfo, uint8_t *uid, uint16_t inputLen ); @@ -89,6 +91,10 @@ void MD5Update( MD5_CTX *, unsigned char *, unsigned int ); void MD5Final( unsigned char results[16], MD5_CTX * ); ////////////////////////////////////// +void crc_ccitt_init(void); +void crc_ccitt_update(unsigned char * buf, int len); +////////////////////////////////////// + // helpers void InitFields(); void SetFieldsLocationLen(); -- cgit v1.3.1 From bf989bcfa848e20f8bd27aa71acc2fbdee38f57b Mon Sep 17 00:00:00 2001 From: Avi Levkovich Date: Wed, 29 Jul 2020 16:13:11 +0300 Subject: Add support of LS for ARC: - I2C_HEADCARD_ARC_LS_ACTUATOR - I2C_HEADCARD_COVER_LS_ARC - I2C_HEADCARD_COVER_LS_TUNNEL_ARC --- .../Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c | 12 ++++++---- .../Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h | 3 +++ .../I2C_Communication/Head_Card/IO_Ports/Head_IO.h | 26 +++++++++++----------- 3 files changed, 24 insertions(+), 17 deletions(-) (limited to 'Software/Embedded_SW') diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c index 6069c78ff..626ad9293 100644 --- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c +++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c @@ -433,17 +433,21 @@ bool FPGA_Read_limit_Switches(FPGA_GPI_ENUM Limit_Switch) LM_Status = LS_Left.bits.F1_LS_LSPARE2; break; case I2C_HEADCARD_COVER_LS_FRONT: - if(Head_Type == HEAD_TYPE_SYLKO) - LM_Status = !(Head_I2C_EXP4_0x46.bits.INPUT_LS_FRONT); + case I2C_HEADCARD_ARC_LS_ACTUATOR: + LM_Status = !(Head_I2C_EXP4_0x46.bits.INPUT_LS_FRONT_ARC_ACT); break; case I2C_HEADCARD_COVER_LS_REAR: - if(Head_Type == HEAD_TYPE_SYLKO) - LM_Status = !(Head_I2C_EXP4_0x46.bits.INPUT_LS_REAR); + case I2C_HEADCARD_COVER_LS_ARC: + LM_Status = !(Head_I2C_EXP4_0x46.bits.INPUT_LS_REAR_ARC_COVER); break; case I2C_HEADCARD_COVER_LS_UPPER: if(Head_Type == HEAD_TYPE_SYLKO) LM_Status = !(Head_I2C_EXP4_0x46.bits.INPUT_LS_UP); break; + case I2C_HEADCARD_COVER_LS_TUNNEL_ARC: + if(Head_Type == HEAD_TYPE_STAPLE_SPUN) + LM_Status = !(Head_I2C_EXP4_0x46.bits.INPUT_LS_ARC_TUNNEL_COVER); + break; default : LM_Status = NO_LIMIT; break; diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h index 0ff0fa2de..a7999ea2e 100644 --- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h +++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h @@ -162,6 +162,9 @@ typedef enum I2C_HEADCARD_COVER_LS_FRONT, I2C_HEADCARD_COVER_LS_REAR, I2C_HEADCARD_COVER_LS_UPPER, + I2C_HEADCARD_ARC_LS_ACTUATOR, + I2C_HEADCARD_COVER_LS_ARC, + I2C_HEADCARD_COVER_LS_TUNNEL_ARC, //----------------------- MAX_GPI diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.h index 33187d1f6..bfaf5937d 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.h +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.h @@ -138,19 +138,19 @@ typedef union bool IN_ACTLOW_OCUR_BREAK_HTOT2 : 1; //P01 bool IN_ACTLOW_OCUR_BREAK_HTOT3 : 1; //P02 bool IN_ACTLOW_OCUR_BREAK_HTOT4 : 1; //P03 - bool INPUT_BREAK_MIX : 1; //P04 - bool INPUT_ACTLOW_LIMIT_740W : 1; //P05 - bool INPUT_FAN_ALERT : 1; //P06 - bool OUTPUT_ACT_DIR : 1; //P07 - - bool INPUT_ACTIN_EN : 1; //p10 - bool INPUT_ACTOT_EN : 1; //p11 - bool OUTPUT_ACTLOW_ACTIN_ON : 1; //p12 - bool OUTPUT_ACTLOW_ACTOT_ON : 1; //p13 - bool INPUT_LS_FRONT : 1; //p14 - bool INPUT_LS_REAR : 1; //p15 - bool INPUT_LS_UP : 1; //p16 - bool INPUT_LS_SPARE : 1; //p17 + bool INPUT_BREAK_MIX : 1; //P04 + bool INPUT_ACTLOW_LIMIT_740W : 1; //P05 + bool INPUT_FAN_ALERT : 1; //P06 + bool OUTPUT_ACT_DIR : 1; //P07 + + bool INPUT_ACTIN_EN : 1; //p10 + bool INPUT_ACTOT_EN : 1; //p11 + bool OUTPUT_ACTLOW_ACTIN_ON : 1; //p12 + bool OUTPUT_ACTLOW_ACTOT_ON : 1; //p13 + bool INPUT_LS_FRONT_ARC_ACT : 1; //p14 + bool INPUT_LS_REAR_ARC_COVER : 1; //p15 + bool INPUT_LS_UP : 1; //p16 + bool INPUT_LS_ARC_TUNNEL_COVER : 1; //p17 }bits; unsigned char uchar[2]; unsigned short ushort; -- cgit v1.3.1 From 657b300c5f28c2cbf93ed66b0c315f9fb72caa08 Mon Sep 17 00:00:00 2001 From: Avi Levkovich Date: Thu, 30 Jul 2020 17:13:20 +0300 Subject: Fix bug in the function HeadCard_Actuators_Stub --- Software/Embedded_SW/Embedded/DataDef.h | 8 +++--- .../Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c | 10 ++++---- .../Embedded_SW/Embedded/Drivers/Heater/Heater.c | 6 ++--- .../Embedded/Drivers/Heater/TemperatureSensor.c | 10 ++++---- .../Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c | 8 +++--- .../Head_Card/EEPROM/Head_EEPROM.c | 12 ++++----- .../I2C_Communication/Head_Card/I2C_Head_Mux.c | 2 +- .../I2C_Communication/Head_Card/IO_Ports/Head_IO.c | 21 ++++++++------- .../Head_Card/PT100/Head_PT100_ADC.c | 14 +++++----- .../Embedded/Drivers/I2C_Communication/I2C_Task.c | 2 +- .../Drivers/I2C_Communication/RFID_NFC/NFC.c | 14 ++++++++-- .../Embedded/Drivers/Motors/MotorActions.c | 2 +- .../Embedded_SW/Embedded/Drivers/Valves/Valve.c | 2 +- Software/Embedded_SW/Embedded/Main.c | 4 +-- .../Embedded/Modules/Control/MillisecTask.c | 2 +- .../Modules/Diagnostics/DiagnosticActions.c | 4 +-- .../Embedded/Modules/Diagnostics/Diagnostics.c | 30 +++++++++++----------- .../Embedded_SW/Embedded/Modules/General/process.c | 6 ++--- .../Embedded/Modules/Heaters/Heaters_print.c | 20 +++++++-------- .../Embedded/Modules/IDS/IDS_Cleaning.c | 4 +-- .../Embedded/Modules/Stubs_Handler/Progress.c | 7 +++++ .../Embedded/Modules/Thread/ThreadLoad.c | 10 ++++---- .../Embedded/Modules/Thread/Thread_print.c | 2 +- .../Initialization/PowerOffSequence.c | 2 +- 24 files changed, 111 insertions(+), 91 deletions(-) (limited to 'Software/Embedded_SW') diff --git a/Software/Embedded_SW/Embedded/DataDef.h b/Software/Embedded_SW/Embedded/DataDef.h index 64717ec0c..7ae727e09 100644 --- a/Software/Embedded_SW/Embedded/DataDef.h +++ b/Software/Embedded_SW/Embedded/DataDef.h @@ -28,7 +28,7 @@ //#define EMC_FORCE_MOT_CLOCK_INTERNAL -//#define VAC_TEST +//#define VAC_TESTHeadCard_Actuators_Stub //#define SPECIAL_DISPENSERS extern bool Special_Dispensers; @@ -385,10 +385,10 @@ typedef union typedef enum { HEAD_TYPE_UNKNOWN, - HEAD_TYPE_SYLKO_WITHOUT_CARD, + HEAD_TYPE_FLAT_WITHOUT_CARD, HEAD_TYPE_UNKNOWN_WITH_CARD, - HEAD_TYPE_SYLKO, - HEAD_TYPE_STAPLE_SPUN, + HEAD_TYPE_FLAT, + HEAD_TYPE_ARC, }HEAD_TYPE; extern uint8_t Head_Type; diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c index 626ad9293..303d5a43d 100644 --- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c +++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c @@ -441,11 +441,11 @@ bool FPGA_Read_limit_Switches(FPGA_GPI_ENUM Limit_Switch) LM_Status = !(Head_I2C_EXP4_0x46.bits.INPUT_LS_REAR_ARC_COVER); break; case I2C_HEADCARD_COVER_LS_UPPER: - if(Head_Type == HEAD_TYPE_SYLKO) + if(Head_Type == HEAD_TYPE_FLAT) LM_Status = !(Head_I2C_EXP4_0x46.bits.INPUT_LS_UP); break; case I2C_HEADCARD_COVER_LS_TUNNEL_ARC: - if(Head_Type == HEAD_TYPE_STAPLE_SPUN) + if(Head_Type == HEAD_TYPE_ARC) LM_Status = !(Head_I2C_EXP4_0x46.bits.INPUT_LS_ARC_TUNNEL_COVER); break; default : @@ -532,7 +532,7 @@ uint32_t MagnetControlId = 0xFF; uint32_t MagnetCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag) { - if(Head_Type == HEAD_TYPE_SYLKO) + if(Head_Type == HEAD_TYPE_FLAT) Trigger_Head_Magnet(DISABLE_MAGNET); //HeadCard_HeadMagnet_Disable(); else @@ -551,7 +551,7 @@ uint32_t ActivateHeadMagnet() Report("ActivateHeadMagnet - Close the lid magnet",__FILE__,__LINE__,(int)HARDWARE_MOTOR_TYPE__MOTO_RLOADARM,RpWarning,(int)DH_LID_OPEN,0); //WHS_Start_Blower_Control_Closed_Loop(BlowerSetPoint); //Task_sleep(500); - if(Head_Type == HEAD_TYPE_SYLKO) + if(Head_Type == HEAD_TYPE_FLAT) //HeadCard_ActivateHeadMagnet(); Trigger_Head_Magnet(CLOSE_MAGNET); else @@ -582,7 +582,7 @@ uint32_t DeActivateHeadMagnet() //WHS_Start_Blower_Control_Closed_Loop(0.0); - if(Head_Type == HEAD_TYPE_SYLKO) + if(Head_Type == HEAD_TYPE_FLAT) { Trigger_Head_Magnet(OPEN_MAGNET); //HeadCard_DeActivateHeadMagnet(); diff --git a/Software/Embedded_SW/Embedded/Drivers/Heater/Heater.c b/Software/Embedded_SW/Embedded/Drivers/Heater/Heater.c index 824858dfd..960e6cfae 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Heater/Heater.c +++ b/Software/Embedded_SW/Embedded/Drivers/Heater/Heater.c @@ -125,7 +125,7 @@ uint32_t ActivateHeater (int HeaterId) } else { //F2_CTRL |= portMap[HeaterId].m_pin; - if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) + if(Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD) HeadCard_Control_Heaters(HeaterTypetoHeadHeater[HeaterId],ON); else { @@ -194,7 +194,7 @@ uint32_t DeActivateHeater (int HeaterId) } else { - if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) + if(Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD) HeadCard_Control_Heaters(HeaterTypetoHeadHeater[HeaterId],OFF); else { @@ -252,7 +252,7 @@ bool GetHeaterState (int HeaterId) } else { - if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) + if(Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD) { return(Get_HeadCard_Heater_State(HeaterTypetoHeadHeater[HeaterId])); } diff --git a/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c b/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c index 23accb66a..68392c72f 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c +++ b/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c @@ -180,7 +180,7 @@ int TemperatureSensorRead(TEMPERATURE_SENSOR_ID_ENUM SensorId) int TemperatureListString(char* str) { int len; - if(Head_Type == HEAD_TYPE_SYLKO) + if(Head_Type == HEAD_TYPE_FLAT) { len = usnprintf(str, 160, "Prepare H1: ,%d, H2: ,%d, H3: ,%d, H4: ,%d, H5: ,%d, H6: ,%d, H7: ,%d, H8: ,%d, H9: ,%d, H10: ,%d, H11: ,%d, H12: ,%d, M: ,%d, D: ,%d,", TempSensorResponse[HEAD_PT100_ZONE_1_0X80_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_2_0X80_1].Temperature_C_mult_by_100/100, @@ -192,7 +192,7 @@ int TemperatureListString(char* str) TempSensorResponse[HEAD_PT100_MIXER_0X8E_0].Temperature_C_mult_by_100/100, TempSensorResponse[TEMP_SENSE_ANALOG_DRYER_TEMP1].Temperature_C_mult_by_100/100); } - else if(Head_Type == HEAD_TYPE_SYLKO_WITHOUT_CARD) + else if(Head_Type == HEAD_TYPE_FLAT_WITHOUT_CARD) { len = usnprintf(str, 150, "Prepare H1: %d H2: %d H3: %d H4: %d H5: %d H6: %d D1: %d D2: %d D3: %d M: %d",TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP1].Temperature_C_mult_by_100/100, TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP2].Temperature_C_mult_by_100/100,TempSensorResponse[TEMP_SENSE_ANALOG_DYEINGH_TEMP3].Temperature_C_mult_by_100/100, @@ -202,7 +202,7 @@ int TemperatureListString(char* str) ,TempSensorResponse[MIXER_PT100].Temperature_C_mult_by_100/100); //Prepare H1: 78 H2: 111 H3: 137 H4: 135 H5: 144 H6: 75 D1: 120 D2: 167 D3: 158 M: 129 } - else if(Head_Type == HEAD_TYPE_STAPLE_SPUN) + else if(Head_Type == HEAD_TYPE_ARC) { len = usnprintf(str, 160, "Prepare H1: ,%d, H2: ,%d, H3: ,%d, AL1: AR1: M: ,%d, D: ,%d,", TempSensorResponse[HEAD_PT100_ZONE_1_0X80_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_2_0X80_1].Temperature_C_mult_by_100/100, @@ -457,8 +457,8 @@ uint32_t CalculateTemperatures(TEMPERATURE_SENSOR_ID_ENUM SensorId, uint32_t Dat uint32_t NoOfAvrSamples = 5;//TODO - how many Samples Status = Filter_Temparature_Measurement(SensorId, Current_Measurement_C, NoOfAvrSamples); #else - if((Head_Type == HEAD_TYPE_STAPLE_SPUN) && (( SensorId == HEAD_PT100_ZONE_6_0X84_1) || ( SensorId == HEAD_PT100_ZONE_8_0X86_1) || ( SensorId == HEAD_PT100_ZONE_5_0X84_0) || ( SensorId == HEAD_PT100_ZONE_7_0X86_0)))//pressure sensors - //if((Head_Type == HEAD_TYPE_STAPLE_SPUN) && (( SensorId == HEAD_PT100_ZONE_5_0X84_0) || ( SensorId == HEAD_PT100_ZONE_7_0X86_0)))//pressure sensors + if((Head_Type == HEAD_TYPE_ARC) && (( SensorId == HEAD_PT100_ZONE_6_0X84_1) || ( SensorId == HEAD_PT100_ZONE_8_0X86_1) || ( SensorId == HEAD_PT100_ZONE_5_0X84_0) || ( SensorId == HEAD_PT100_ZONE_7_0X86_0)))//pressure sensors + //if((Head_Type == HEAD_TYPE_ARC) && (( SensorId == HEAD_PT100_ZONE_5_0X84_0) || ( SensorId == HEAD_PT100_ZONE_7_0X86_0)))//pressure sensors { //Head Staple spun pressure sensors //bits to mvolts diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c index 9f2e929d5..2d2de930b 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c @@ -418,7 +418,7 @@ uint32_t Heaters_Current_Bits[9];//just for debug void Enable_Reading_Heaters_Current(HEATERS_CURRENT Heater_ID) //0-8 { - if((Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD)&&(Heater_ID>=HEATER_DRYER_CURRENT_3)) + if((Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD)&&(Heater_ID>=HEATER_DRYER_CURRENT_3)) return; if (Heater_ID>=NUM_OF_CURRENT_HEATERS) return; @@ -426,7 +426,7 @@ void Enable_Reading_Heaters_Current(HEATERS_CURRENT Heater_ID) //0-8 } void Disable_Reading_Heaters_Current(HEATERS_CURRENT Heater_ID) //0-8 { - if((Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD)&&(Heater_ID>=HEATER_DRYER_CURRENT_3)) + if((Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD)&&(Heater_ID>=HEATER_DRYER_CURRENT_3)) return; if (Heater_ID>=NUM_OF_CURRENT_HEATERS) return; @@ -434,7 +434,7 @@ void Disable_Reading_Heaters_Current(HEATERS_CURRENT Heater_ID) //0-8 } bool Get_Heater_Current_Reading_State(HEATERS_CURRENT Heater_ID) //0-8 { - if((Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD)&&(Heater_ID>=HEATER_DRYER_CURRENT_3)) + if((Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD)&&(Heater_ID>=HEATER_DRYER_CURRENT_3)) return false; if (Heater_ID>=NUM_OF_CURRENT_HEATERS) return false; @@ -444,7 +444,7 @@ bool Get_Heater_Current_Reading_State(HEATERS_CURRENT Heater_ID) //0-8 uint32_t Read_Heaters_Current(HEATERS_CURRENT Heater_ID) //0-8 { uint32_t Status = OK; - if((Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD)&&(Heater_ID>=HEATER_DRYER_CURRENT_3)) + if((Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD)&&(Heater_ID>=HEATER_DRYER_CURRENT_3)) return 0; if (Heater_ID>=NUM_OF_CURRENT_HEATERS) diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.c index 0d767b864..af0c5511d 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/EEPROM/Head_EEPROM.c @@ -126,29 +126,29 @@ uint32_t Check_Head_Type_Via_EEPROM() if((Head_i2c_status == I2C_MASTER_ERR_ADDR_ACK)||(status == 0xFF)) { - Head_Type = HEAD_TYPE_SYLKO_WITHOUT_CARD; + Head_Type = HEAD_TYPE_FLAT_WITHOUT_CARD; } else { - if(Read_Buf[1] == HEAD_TYPE_STAPLE_SPUN) + if(Read_Buf[1] == HEAD_TYPE_ARC) { - Head_struct.Read_Head_EEPROM.bytes.HeadType = HEAD_TYPE_STAPLE_SPUN; + Head_struct.Read_Head_EEPROM.bytes.HeadType = HEAD_TYPE_ARC; } else { - Head_struct.Read_Head_EEPROM.bytes.HeadType = HEAD_TYPE_SYLKO; + Head_struct.Read_Head_EEPROM.bytes.HeadType = HEAD_TYPE_FLAT; } Head_struct.Read_Head_EEPROM.bytes.Head_SN = Read_Buf[0]; - //Head_struct.Read_Head_EEPROM.bytes.HeadType = Read_Buf[1]; //HEAD_TYPE_SYLKO / HEAD_TYPE_STAPLE_SPUN + //Head_struct.Read_Head_EEPROM.bytes.HeadType = Read_Buf[1]; //HEAD_TYPE_SYLKO / HEAD_TYPE_ARC Head_Type = Head_struct.Read_Head_EEPROM.bytes.HeadType; //Head_Type = HEAD_TYPE_UNKNOWN_WITH_CARD; - if identify the type by reading the PT100 } #else - Head_Type = HEAD_TYPE_SYLKO_WITHOUT_CARD; + Head_Type = HEAD_TYPE_FLAT_WITHOUT_CARD; #endif return status; diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/I2C_Head_Mux.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/I2C_Head_Mux.c index f8a425e36..0a53550e7 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/I2C_Head_Mux.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/I2C_Head_Mux.c @@ -18,7 +18,7 @@ uint32_t Select_Main_Head_Mux_Channel() { uint32_t status= OK; - if (Head_Type == HEAD_TYPE_SYLKO_WITHOUT_CARD) + if (Head_Type == HEAD_TYPE_FLAT_WITHOUT_CARD) return OK; uint8_t Write_Buf[1]; diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c index 1ac0e439b..2ce1ac909 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c @@ -117,7 +117,7 @@ uint32_t Head_IO_Init() Head_I2C_EXP2_0x42.bits.OUTPUT_ACTLOW_HTIN_LATCH_RST = 0x01; Head_I2C_EXP2_0x42.bits.OUTPUT_ACTLOW_HTOT_LATCH_RST = 0x01; - if(Head_Type == HEAD_TYPE_STAPLE_SPUN)// Set 24 to pressure sensor in arc head + if(Head_Type == HEAD_TYPE_ARC)// Set 24 to pressure sensor in arc head { Head_I2C_EXP2_0x42.bits.OUTPUT_MAG_EN = ENABLE; Head_I2C_EXP2_0x42.bits.OUTPUT_MAG_DIR = 0x00; @@ -329,7 +329,7 @@ uint32_t HeadCard_ActivateHeadMagnet() { uint32_t status = OK; - if(Head_Type == HEAD_TYPE_SYLKO) + if(Head_Type == HEAD_TYPE_FLAT) { Head_I2C_EXP2_0x42.bits.OUTPUT_MAG_EN = ENABLE; Head_I2C_EXP2_0x42.bits.OUTPUT_MAG_DIR = 0x01;//? @@ -343,7 +343,7 @@ uint32_t HeadCard_DeActivateHeadMagnet() { uint32_t status = OK; - if(Head_Type == HEAD_TYPE_SYLKO) + if(Head_Type == HEAD_TYPE_FLAT) { Head_I2C_EXP2_0x42.bits.OUTPUT_MAG_EN = ENABLE; Head_I2C_EXP2_0x42.bits.OUTPUT_MAG_DIR = 0x00;//? @@ -356,7 +356,7 @@ uint32_t HeadCard_DeActivateHeadMagnet() uint32_t HeadCard_HeadMagnet_Disable() { uint32_t status = OK; - if(Head_Type == HEAD_TYPE_SYLKO) + if(Head_Type == HEAD_TYPE_FLAT) { Head_I2C_EXP2_0x42.bits.OUTPUT_MAG_EN = DISABLE; status |= Head_Write_IO_Reg(0x42,LOW); @@ -368,7 +368,7 @@ uint32_t HeadCard_ActivateHeadPressureArcBlowers() { uint32_t status = OK; //MAG_EN<=’1’, MAG_DIR<=’0’ - Board is powered by 24V. - if(Head_Type == HEAD_TYPE_STAPLE_SPUN) + if(Head_Type == HEAD_TYPE_ARC) { Head_I2C_EXP2_0x42.bits.OUTPUT_MAG_EN = ENABLE; Head_I2C_EXP2_0x42.bits.OUTPUT_MAG_DIR = 0x00; @@ -381,7 +381,7 @@ uint32_t HeadCard_DeActivateHeadPressureArcBlowers() { uint32_t status = OK; //MAG_EN<=’0’, MAG_DIR<=’0’ -- no 24V on the board - if(Head_Type == HEAD_TYPE_STAPLE_SPUN) + if(Head_Type == HEAD_TYPE_ARC) { Head_I2C_EXP2_0x42.bits.OUTPUT_MAG_EN = DISABLE; Head_I2C_EXP2_0x42.bits.OUTPUT_MAG_DIR = 0x00; @@ -586,6 +586,9 @@ uint32_t HeadCard_Actuators_Stub(ACTUATORS Act_ID, bool Enable, bool Direction)/ Head_I2C_EXP4_0x46.bits.OUTPUT_ACTLOW_ACTOT_ON = LOW; } + status |= Head_Write_IO_Reg(0x42,HIGH); + status |= Head_Write_IO_Reg(0x46,LOW_AND_HIGH); + //100msec delay - (need short command - Active LOW ) if (ActControlId == 0xFF) ActControlId = AddControlCallback("ctuatorControl", HeadCard_ActStubCallBackFunction, (eHundredMillisecond), TemplateDataReadCBFunction,Act_ID,0, 0 ); @@ -606,10 +609,10 @@ uint32_t HeadCard_Actuators_Stub(ACTUATORS Act_ID, bool Enable, bool Direction)/ ActControlId = 0xFF; else Report("Remove control callback failed",__FILE__,__LINE__,(int)ActControlId,RpWarning,(int)HeadCard_ActStubCallBackFunction,0); - } - status |= Head_Write_IO_Reg(0x42,HIGH); - status |= Head_Write_IO_Reg(0x46,LOW_AND_HIGH); + status |= Head_Write_IO_Reg(0x42,HIGH); + status |= Head_Write_IO_Reg(0x46,HIGH); + } return status; } diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c index 108676b47..ec27b4f57 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c @@ -263,7 +263,7 @@ uint8_t HeadADCPT100_InitConfigReg() for(i=HEAD_PT100_ZONE_1_0X80_0;i < MAX_HEAD_CARD_TEMP_SENS_ID;i++) // for now we are using the same configuration to all of them { - if((Head_Type == HEAD_TYPE_STAPLE_SPUN) && (( i == HEAD_PT100_ZONE_6_0X84_1) || ( i == HEAD_PT100_ZONE_8_0X86_1) || ( i == HEAD_PT100_ZONE_5_0X84_0) || ( i == HEAD_PT100_ZONE_7_0X86_0)))//pressure sensors + if((Head_Type == HEAD_TYPE_ARC) && (( i == HEAD_PT100_ZONE_6_0X84_1) || ( i == HEAD_PT100_ZONE_8_0X86_1) || ( i == HEAD_PT100_ZONE_5_0X84_0) || ( i == HEAD_PT100_ZONE_7_0X86_0)))//pressure sensors { // - - - - - - - - - - Reg0 - - - - - - - - - - HeadTempSensConfig[i].Reg0.bits.PGA_BYPASS = ADS122X_PGA_BYPASS ;//Bit 0 @@ -335,7 +335,7 @@ uint8_t HeadADCPT100_InitConfigReg() for(i=HEAD_PT100_ZONE_2_0X80_1;i < HEAD_PT100_RESERVE_0X8E_1;i++) { - if((Head_Type == HEAD_TYPE_STAPLE_SPUN) && (( i == HEAD_PT100_ZONE_6_0X84_1) || ( i == HEAD_PT100_ZONE_8_0X86_1)))//pressure sensors + if((Head_Type == HEAD_TYPE_ARC) && (( i == HEAD_PT100_ZONE_6_0X84_1) || ( i == HEAD_PT100_ZONE_8_0X86_1)))//pressure sensors { HeadTempSensConfig[i].Reg0.bits.MUX = HEAD_CONFIG_ODD_PT100_MUX ;//Bits 4-7 } @@ -762,7 +762,7 @@ uint32_t control_HeadCard_PT100(uint8_t HEAD_CONFIG_PT100_MUX) //delayms(5); for(SensorId = HEAD_PT100_ZONE_2_0X80_1; SensorId < HEAD_PT100_RESERVE_0X8E_1; SensorId++) { - if((Head_Type == HEAD_TYPE_STAPLE_SPUN) && (( SensorId == HEAD_PT100_ZONE_6_0X84_1) || ( SensorId == HEAD_PT100_ZONE_8_0X86_1)))//pressure sensors + if((Head_Type == HEAD_TYPE_ARC) && (( SensorId == HEAD_PT100_ZONE_6_0X84_1) || ( SensorId == HEAD_PT100_ZONE_8_0X86_1)))//pressure sensors { //Config_Mux } @@ -818,7 +818,7 @@ uint32_t control_HeadCard_PT100(uint8_t HEAD_CONFIG_PT100_MUX) //delayms(5); for(SensorId = HEAD_PT100_ZONE_1_0X80_0; SensorId < HEAD_PT100_ZONE_2_0X80_1; SensorId++) { - if((Head_Type == HEAD_TYPE_STAPLE_SPUN) && (( SensorId == HEAD_PT100_ZONE_5_0X84_0) || ( SensorId == HEAD_PT100_ZONE_7_0X86_0)))//pressure sensors + if((Head_Type == HEAD_TYPE_ARC) && (( SensorId == HEAD_PT100_ZONE_5_0X84_0) || ( SensorId == HEAD_PT100_ZONE_7_0X86_0)))//pressure sensors { } @@ -1004,12 +1004,12 @@ uint32_t Detect_Head_PT100_Faults(TEMPERATURE_SENSOR_ID_ENUM SensorId) if((ERR_Couner >= 9) && (ERR_Couner < 14) || ((Detect_PT100_Faults[HEAD_PT100_AIR_HEATER_1_0X8C_0] == OK ) || (Detect_PT100_Faults[HEAD_PT100_AIR_HEATER_2_0X8C_1] == OK )) ) { - //Head_Type = HEAD_TYPE_STAPLE_SPUN; + //Head_Type = HEAD_TYPE_ARC; if(ERR_Couner==9) - ReportWithPackageFilter(GeneralFilter,"HEAD_TYPE_STAPLE_SPUN",__FILE__,__LINE__,ERR_Couner,RpMessage,0,0); + ReportWithPackageFilter(GeneralFilter,"HEAD_TYPE_ARC",__FILE__,__LINE__,ERR_Couner,RpMessage,0,0); else - ReportWithPackageFilter(HeatersFilter,"HEAD_TYPE_STAPLE_SPUN with PT100 not working",__FILE__,__LINE__,ERR_Couner,RpError, Detect_PT100_Faults[HEAD_PT100_AIR_HEATER_1_0X8C_0] +2*(Detect_PT100_Faults[HEAD_PT100_AIR_HEATER_2_0X8C_1]),0); + ReportWithPackageFilter(HeatersFilter,"HEAD_TYPE_ARC with PT100 not working",__FILE__,__LINE__,ERR_Couner,RpError, Detect_PT100_Faults[HEAD_PT100_AIR_HEATER_1_0X8C_0] +2*(Detect_PT100_Faults[HEAD_PT100_AIR_HEATER_2_0X8C_1]),0); } else if((ERR_Couner >= 2) && (ERR_Couner < 9)) { diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c index 90f197587..7d2cf7868 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Task.c @@ -631,7 +631,7 @@ void I2C_ReadingTask(UArg arg0, UArg arg1) break; case Heater_Current_Reading: //Report("Read_Heaters_Current",__FILE__,__LINE__,255,RpWarning,0,0); - if((Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD)&&(I2C_ReadingMessage.parameter>=HEATER_DRYER_CURRENT_3)) + if((Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD)&&(I2C_ReadingMessage.parameter>=HEATER_DRYER_CURRENT_3)) Read_Head_ADC(I2C_ReadingMessage.parameter); // else // Read_Heaters_Current(I2C_ReadingMessage.parameter); diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/NFC.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/NFC.c index 877f0a32b..8da522961 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/NFC.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/NFC.c @@ -175,6 +175,12 @@ RFID_RETURN_CODE TagReadData() return SUCCESS; } +RFID_RETURN_CODE WriteCRCValue() +{ + + return SUCCESS; +} + uint32_t RFIDTagComm_StateMachine(StateMachineMode Mode) { uint32_t Status = OK; @@ -184,7 +190,7 @@ uint32_t RFIDTagComm_StateMachine(StateMachineMode Mode) switch(TagStage) { case Tag_Idle: - //Not Active + //Tag Not Active break; case Tag_PrepareForDiscovery: @@ -245,7 +251,11 @@ uint32_t RFIDTagComm_StateMachine(StateMachineMode Mode) break; case Tag_UpdateCheckSum: - break; + crc_ccitt_init(); + //crc_ccitt_update(buf,len); + WriteCRCValue(); + + break; case Tag_DisconnectComm: RFIDRetValue = RFID_StopDiscovery(readerID); diff --git a/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c b/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c index e505ac017..90ac22e7d 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c +++ b/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c @@ -878,7 +878,7 @@ void MotorActionsInit(void) MotorDriverResponse[i].Status = 0xFFFFFFFF; StoredMotorPosition[i] = 0; } - if (Head_Type == HEAD_TYPE_SYLKO)//adjust the limit switches + if (Head_Type == HEAD_TYPE_FLAT)//adjust the limit switches { Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DH_LID] = I2C_HEADCARD_COVER_LS_FRONT; Motor_Id_to_LS_IdUp [HARDWARE_MOTOR_TYPE__MOTO_DH_LID] = I2C_HEADCARD_COVER_LS_REAR ; diff --git a/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c b/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c index 3f43e5243..96c7702bb 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c +++ b/Software/Embedded_SW/Embedded/Drivers/Valves/Valve.c @@ -181,7 +181,7 @@ void Valve_Command(Valves_t Valve_Id) //1 - OPEN, 0 - CLOSE F1_GPO_Reg.bits.F1_VALVE_WASTE_TANK = ValveRequest[Valve_Id].Direction; break; case VALVE_MIXCHIP_WASTECH: - if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) + if(Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD) Trigger_Head_MixerValve(ValveRequest[Valve_Id].Direction); else F1_GPO_Reg.bits.F1_VALVE_MIXCHIP_WASTECH = ValveRequest[Valve_Id].Direction; diff --git a/Software/Embedded_SW/Embedded/Main.c b/Software/Embedded_SW/Embedded/Main.c index 45059e9c4..da103cced 100644 --- a/Software/Embedded_SW/Embedded/Main.c +++ b/Software/Embedded_SW/Embedded/Main.c @@ -280,11 +280,11 @@ int main(void) { PP_Machine = true; } - if ((Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD)||(WHS_Type == WHS_TYPE_NEW)) + if ((Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD)||(WHS_Type == WHS_TYPE_NEW)) { I2C_ReadingTask_Init(); } - if (Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) + if (Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD) { Trigger_Head_io_Init();//Head_IO_Init();//moved to set 24 to pressure sensor in arc earlier } diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c index 27fc8a707..242bdc3ce 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c +++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c @@ -621,7 +621,7 @@ uint32_t MillisecLowLoop(uint32_t tick) //ROM_IntMasterDisable(); int StartPT100 = 0; //Screw_ENC_Velocity_to_DAC(); - for testing the screw enc - if (Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) + if (Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD) StartPT100 = TEMP_SENSE_ANALOG_DRYER_TEMP1; if (Ten_msTick) { diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c index d872b30b5..79e84ebca 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c @@ -378,7 +378,7 @@ uint32_t SetBlowerStateRequestFunc(MessageContainer* requestContainer) Turn_the_Blower_Off(); break; case HARDWARE_BLOWER_TYPE__HeadBlower1: - if (Head_Type == HEAD_TYPE_STAPLE_SPUN) + if (Head_Type == HEAD_TYPE_ARC) { if ((request->has_voltage)&&(request->isactive == true)) Trigger_Head_Fan_Control(HEAD_FAN_RIGHT,request->voltage); @@ -390,7 +390,7 @@ uint32_t SetBlowerStateRequestFunc(MessageContainer* requestContainer) break; case HARDWARE_BLOWER_TYPE__HeadBlower2: - if (Head_Type == HEAD_TYPE_STAPLE_SPUN) + if (Head_Type == HEAD_TYPE_ARC) { if ((request->has_voltage)&&(request->isactive == true)) Trigger_Head_Fan_Control(HEAD_FAN_LEFT,request->voltage); diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c index 1f5093601..4d20ddb70 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c @@ -423,8 +423,8 @@ void CopyTemperaturesToMonitor(void) HeaterCounterIndex[HEATER_TYPE__HeaterZone2]; DiagnosticsMonitor.n_headzone3temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone3]; - if ((Head_Type == HEAD_TYPE_SYLKO) - || (Head_Type == HEAD_TYPE_SYLKO_WITHOUT_CARD)) + if ((Head_Type == HEAD_TYPE_FLAT) + || (Head_Type == HEAD_TYPE_FLAT_WITHOUT_CARD)) { DiagnosticsMonitor.headzone4temperature = HeaterTemperature[HEATER_TYPE__HeaterZone4]; @@ -439,7 +439,7 @@ void CopyTemperaturesToMonitor(void) DiagnosticsMonitor.n_headzone6temperature = HeaterCounterIndex[HEATER_TYPE__HeaterZone6]; } - if (Head_Type == HEAD_TYPE_SYLKO) + if (Head_Type == HEAD_TYPE_FLAT) { DiagnosticsMonitor.headzone7temperature = HeaterTemperature[HEATER_TYPE__HeaterZone7]; @@ -476,7 +476,7 @@ void CopyTemperaturesToMonitor(void) HeaterCounterIndex[HEATER_TYPE__HeadCoverHeater2]; } //if ((Head_Type == HEAD_TYPE_SYLKO)||(Head_Type == HEAD_TYPE_STAPLE_SPUN)) - if (Head_Type == HEAD_TYPE_STAPLE_SPUN) + if (Head_Type == HEAD_TYPE_ARC) { DiagnosticsMonitor.headcoverheater1temperature = HeaterTemperature[HEATER_TYPE__HeadCoverHeater1]; @@ -601,7 +601,7 @@ void DiagnosticOneMinuteCollection(void) DiagnosticsMonitor.midtank7level = MidTankpressure[6]; DiagnosticsMonitor.n_midtank8level = 1; DiagnosticsMonitor.midtank8level = MidTankpressure[7]; - if (Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) //rapid/pp machines + if (Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD) //rapid/pp machines { /*DiagnosticsMonitor.n_drierzone1heatercurrent = 1; DiagnosticsMonitor.drierzone1heatercurrent = HeatersCurrent[HEATER_DRYER_CURRENT_1]; @@ -610,7 +610,7 @@ void DiagnosticOneMinuteCollection(void) Get_Head_Current(HEAD_CURRENT_MIXER,&HeadCurrent[HEAD_CURRENT_ZONE_12+1][0]); DiagnosticsMonitor.n_mixer1heatercurrent = 1; DiagnosticsMonitor.mixer1heatercurrent = HeadCurrent[HEAD_CURRENT_ZONE_12+1]; - if (Head_Type == HEAD_TYPE_SYLKO) + if (Head_Type == HEAD_TYPE_FLAT) { for (i=0;i HEAD_TYPE_SYLKO_WITHOUT_CARD) //rapid/pp machines + if (Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD) //rapid/pp machines { AcVoltage = ReadVAC(); DiagnosticsMonitor.whsblower2voltage = &AcVoltage; @@ -886,7 +886,7 @@ void DiagnosticOneSecCollection(void) DiagnosticsMonitor.n_drierzone2heatercurrent = 1; DiagnosticsMonitor.drierzone2heatercurrent = HeatersCurrent[HEATER_DRYER_CURRENT_2]; - if (Head_Type == HEAD_TYPE_SYLKO_WITHOUT_CARD) + if (Head_Type == HEAD_TYPE_FLAT_WITHOUT_CARD) { DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__MixerHeater, MillisecGetTemperatures( MIXER_PT100)); DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ1, MillisecGetTemperatures(TEMP_SENSE_ANALOG_DYEINGH_TEMP1)); @@ -896,7 +896,7 @@ void DiagnosticOneSecCollection(void) DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ5, MillisecGetTemperatures(TEMP_SENSE_ANALOG_DYEINGH_TEMP5)); DiagnosticLoadTemperature(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ6, MillisecGetTemperatures(HEAD6_PT100)); } - if (Head_Type == HEAD_TYPE_SYLKO) + if (Head_Type == HEAD_TYPE_FLAT) { DiagnosticLoadTemperature(HEATER_TYPE__MixerHeater, MillisecGetTemperatures( HEAD_PT100_MIXER_0X8E_0)); DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone1, MillisecGetTemperatures(HEAD_PT100_ZONE_1_0X80_0)); @@ -915,7 +915,7 @@ void DiagnosticOneSecCollection(void) DiagnosticLoadTemperature(HEATER_TYPE__HeadCoverHeater1, MillisecGetTemperatures(HEAD_PT100_AIR_HEATER_2_0X8C_1)); DiagnosticLoadTemperature(HEATER_TYPE__HeadCoverHeater2, MillisecGetTemperatures(HEAD_PT100_AIR_HEATER_1_0X8C_0)); } - if (Head_Type == HEAD_TYPE_STAPLE_SPUN) + if (Head_Type == HEAD_TYPE_ARC) { DiagnosticLoadTemperature(HEATER_TYPE__MixerHeater, MillisecGetTemperatures( HEAD_PT100_MIXER_0X8E_0)); DiagnosticLoadTemperature(HEATER_TYPE__HeaterZone1, MillisecGetTemperatures(HEAD_PT100_ZONE_1_0X80_0)); @@ -1196,22 +1196,22 @@ void SendDiagnostics(void) LoadHeaterState(HEATER_TYPE__HeaterZone2,&HeaterInfo[i++]); LoadHeaterState(HEATER_TYPE__HeaterZone3,&HeaterInfo[i++]); - if ((Head_Type == HEAD_TYPE_SYLKO)||(Head_Type == HEAD_TYPE_SYLKO_WITHOUT_CARD)) + if ((Head_Type == HEAD_TYPE_FLAT)||(Head_Type == HEAD_TYPE_FLAT_WITHOUT_CARD)) { LoadHeaterState(HEATER_TYPE__HeaterZone4,&HeaterInfo[i++]); } LoadHeaterState(HEATER_TYPE__HeaterZone5,&HeaterInfo[i++]); //LoadHeaterState(HEATER_TYPE__HeaterZone6,&HeaterInfo[i++]); - if ((Head_Type == HEAD_TYPE_SYLKO)||(Head_Type == HEAD_TYPE_SYLKO_WITHOUT_CARD)) + if ((Head_Type == HEAD_TYPE_FLAT)||(Head_Type == HEAD_TYPE_FLAT_WITHOUT_CARD)) { LoadHeaterState(HEATER_TYPE__HeaterZone6,&HeaterInfo[i++]); } - if ((Head_Type == HEAD_TYPE_SYLKO)||(Head_Type == HEAD_TYPE_STAPLE_SPUN)) + if ((Head_Type == HEAD_TYPE_FLAT)||(Head_Type == HEAD_TYPE_ARC)) { LoadHeaterState(HEATER_TYPE__HeaterZone7,&HeaterInfo[i++]); //LoadHeaterState(HEATER_TYPE__HeaterZone8,&HeaterInfo[i++]); } - if (Head_Type == HEAD_TYPE_SYLKO) + if (Head_Type == HEAD_TYPE_FLAT) { LoadHeaterState(HEATER_TYPE__HeaterZone8,&HeaterInfo[i++]); LoadHeaterState(HEATER_TYPE__HeaterZone9,&HeaterInfo[i++]); @@ -1219,7 +1219,7 @@ void SendDiagnostics(void) LoadHeaterState(HEATER_TYPE__HeaterZone11,&HeaterInfo[i++]); LoadHeaterState(HEATER_TYPE__HeaterZone12,&HeaterInfo[i++]); } - if ((Head_Type == HEAD_TYPE_SYLKO)||(Head_Type == HEAD_TYPE_STAPLE_SPUN)) + if ((Head_Type == HEAD_TYPE_FLAT)||(Head_Type == HEAD_TYPE_ARC)) //if (Head_Type == HEAD_TYPE_STAPLE_SPUN) { LoadHeaterState(HEATER_TYPE__HeadCoverHeater1,&HeaterInfo[i++]); diff --git a/Software/Embedded_SW/Embedded/Modules/General/process.c b/Software/Embedded_SW/Embedded/Modules/General/process.c index 30a99ac86..7530408c9 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/process.c +++ b/Software/Embedded_SW/Embedded/Modules/General/process.c @@ -198,7 +198,7 @@ uint32_t HandleProcessParameters(ProcessParameters* ProcessParams,bool saveData) { status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ3, false,ProcessParams->headzone3temp); } - if(Head_Type != HEAD_TYPE_STAPLE_SPUN) + if(Head_Type != HEAD_TYPE_ARC) { Trigger_HeaterWriting(); if (ProcessParams->headzone4temp>1) @@ -230,7 +230,7 @@ uint32_t HandleProcessParameters(ProcessParameters* ProcessParams,bool saveData) status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__DryerAirTemperature, true,ProcessParams->dryerzone1temp); else status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__DryerAirTemperature, false,ProcessParams->dryerzone1temp); - if(Head_Type == HEAD_TYPE_SYLKO) + if(Head_Type == HEAD_TYPE_FLAT) { if (ProcessParams->headzone7temp>1) { @@ -283,7 +283,7 @@ uint32_t HandleProcessParameters(ProcessParameters* ProcessParams,bool saveData) status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ12, false,ProcessParams->headzone12temp); } } - if(Head_Type == HEAD_TYPE_STAPLE_SPUN) + if(Head_Type == HEAD_TYPE_ARC) { Trigger_HeaterWriting(); if (ProcessParams->rblowertemp>1) diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index ec743ea4a..52e9a6e85 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -113,7 +113,7 @@ void initializeArrays(void) HeaterId2PT100Id[i] = 0xFF; HeaterId2CurrentId[i] = NUM_OF_CURRENT_HEATERS; } - if (Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) + if (Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD) { HeaterId2PT100Id[HEATER_TYPE__DryerAirHeater] = DRYER_AIR_PT100; HeaterId2PT100Id[HEATER_TYPE__DryerMainHeater] = DRYER_MAIN_PT100; @@ -466,7 +466,7 @@ uint32_t HeatersSingleHeaterEnd(int HeaterId) HeaterCmd[HeaterId].targettemperatue = 0; HeaterReady[HeaterId] = true; HeaterAtTemp[HeaterId] = true; - if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) + if(Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD) Disable_Reading_Heaters_ADC(HeaterId2CurrentId[HeaterId]); else Disable_Reading_Heaters_Current(HeaterId2CurrentId[HeaterId]); @@ -722,7 +722,7 @@ void PrepareACHeater(int HeaterId,uint32_t Frequency, uint32_t SetTemperatue) HeaterAtTemp[HeaterId] = false; if (BlowerCfg.enabled == true) { - if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) + if(Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD) { WHS_Set_SetPoint_Q_value(headairflow*2/3); } @@ -786,7 +786,7 @@ int PrepareDCHeater(int HeaterId, uint32_t Frequency, uint32_t SetTemperatue) if (HeaterPreviousRead[HeaterId] < HeaterCmd[HeaterId].targettemperatue ) { - if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) + if(Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD) Enable_Reading_Heaters_ADC(HeaterId2CurrentId[HeaterId]); else Enable_Reading_Heaters_Current(HeaterId2CurrentId[HeaterId]); @@ -1244,7 +1244,7 @@ uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue) AlarmHandlingSetAlarm(HeaterUnderEventType[index], false); /*if (BlowerCfg.enabled == true) { - if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) + if(Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD) { WHS_Set_SetPoint_Q_value(headairflow); } @@ -1281,7 +1281,7 @@ uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue) IncreaseBlower = true; if (BlowerCfg.enabled == true) { - if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) + if(Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD) { WHS_Set_SetPoint_Q_value(headairflow); } @@ -1454,7 +1454,7 @@ uint32_t DCHeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue) //DCInitialHeating[index] = false; HeatersControlStart(); AlarmHandlingSetAlarm(HeaterUnderEventType[index], false); - if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) + if(Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD) Disable_Reading_Heaters_ADC(HeaterId2CurrentId[index]); else Disable_Reading_Heaters_Current(HeaterId2CurrentId[index]); @@ -1560,9 +1560,9 @@ void EightMilliSecondHeatersInterrupt(UArg arg0) ROM_TimerLoadSet(Heater_timerBase, TIMER_A,OutputProportionalSingleStep); } else - { + { TimerDisable(Heater_timerBase, TIMER_A); - } + } // // Enable all interrupts. // @@ -1649,7 +1649,7 @@ uint32_t DrierHeaterVoltageSetup(void) } Histeresis = 0; #ifndef VAC_TEST - if (Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) //rapid/pp machines + if (Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD) //rapid/pp machines #endif { DrierAcVoltage = ReadVAC(); diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c index c9e9afdde..8347c5ee9 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c @@ -51,7 +51,7 @@ int Tup = 4,Tdelay1 = 9,Tdelay2 = 29; uint32_t IDS_Cleaning_Move_Actuators() { - if(Head_Type != HEAD_TYPE_SYLKO) + if(Head_Type != HEAD_TYPE_FLAT) return OK; if (CleaningStageCounter == 1) { @@ -128,7 +128,7 @@ uint32_t IDS_Cleaning_Stop_Cleaning_Solution (callback_fptr callback) uint32_t status = OK; status = IDS_Dispenser_Close_Valve_And_Stop_Motor(CLEANER_DISPENSER,callback); Report("IDS_Cleaning_Stop_Cleaning_Solution", __FILE__, __LINE__, CLEANER_DISPENSER, RpWarning, status, 0); - if(Head_Type == HEAD_TYPE_SYLKO) + if(Head_Type == HEAD_TYPE_FLAT) { Trigger_Head_Actuators_Control(ACTIN, LOW,false); Report("IDS_Cleaning_MoveDown cleaning stop", __FILE__, __LINE__, Tdelay1, RpWarning, CleaningStageCounter, 0); diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c index e14053ae3..f61eebfa8 100644 --- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c @@ -87,6 +87,13 @@ void Stub_ProgressRequest(MessageContainer* requestContainer) uint8_t ReadBackReg[1]; + + if(request->amount == 0xacc1e) + { + response.progress = IDS_Cleaning_Move_Actuators(); + response.has_progress = true; + } + else if(request->amount == 0xC04f) { diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c index 01c70d42f..b81c2e602 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c @@ -209,7 +209,7 @@ } else { - if(Head_Type > HEAD_TYPE_SYLKO_WITHOUT_CARD) + if(Head_Type > HEAD_TYPE_FLAT_WITHOUT_CARD) { WHS_Set_SetPoint_Q_value(headairflow*2/3); } @@ -349,7 +349,7 @@ //HARDWARE_MOTOR_TYPE__MOTO_DH_LID = 2, //HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID = 4, //DeActivateHeadMagnet(); - if (Head_Type != HEAD_TYPE_STAPLE_SPUN) + if (Head_Type != HEAD_TYPE_ARC) { CallbackCounter++; MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_DH_LID,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DH_LID].directionthreadwize, 200, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DH_LID], Thread_Load_HomingCallback,10000); @@ -366,7 +366,7 @@ direction = DRIER_LID_OPEN; } MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID, direction, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000); - if (Head_Type == HEAD_TYPE_SYLKO) + if (Head_Type == HEAD_TYPE_FLAT) { Report("Thread_Load_Lift_actuators",__FILE__,__LINE__,LOW,RpMessage,false,0); Trigger_Head_Actuators_Control(ACTOT, LOW,true); @@ -500,7 +500,7 @@ //Close Dyeing Head Cover And Dryer Lid //HARDWARE_MOTOR_TYPE__MOTO_DH_LID = 2, //HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID = 4, - if (Head_Type != HEAD_TYPE_STAPLE_SPUN) + if (Head_Type != HEAD_TYPE_ARC) { CallbackCounter++; MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_DH_LID,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DH_LID].directionthreadwize, 200, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DH_LID], Thread_Load_HomingCallback,10000); @@ -517,7 +517,7 @@ direction = DRIER_LID_CLOSE; } MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID, direction, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000); - if (Head_Type == HEAD_TYPE_SYLKO) + if (Head_Type == HEAD_TYPE_FLAT) { Report("Thread_Load_Close_actuators",__FILE__,__LINE__,LOW,RpMessage,true,0); Trigger_Head_Actuators_Control(ACTOT, LOW,false); diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index c67619e20..77ab1521a 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -1037,7 +1037,7 @@ uint32_t ThreadPrepareState(void *JobDetails) // if ((FPGA_Read_limit_Switches(Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DH_LID]) == LIMIT)&&(JoggingJobActive == false)) if ((FPGA_Read_limit_Switches(Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DH_LID]) != LIMIT)&&(JoggingJobActive == false)) { - if(Head_Type != HEAD_TYPE_STAPLE_SPUN) + if(Head_Type != HEAD_TYPE_ARC) { ReportWithPackageFilter(ThreadFilter,"Dyeing head is wide open!!!",__FILE__,__LINE__,HARDWARE_MOTOR_TYPE__MOTO_DH_LID,RpError,LIMIT,0); if (SkipOpenLids == false) diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c index dfd9ffaa5..776d55080 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c @@ -409,7 +409,7 @@ uint32_t PowerOffWaitForTemperatureCallback(uint32_t IfIndex, uint32_t BusyFlag) readTemp = MillisecGetTemperatures(HEAD_PT100_ZONE_12_0X8A_1); if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; } - if (Head_Type == HEAD_TYPE_STAPLE_SPUN) + if (Head_Type == HEAD_TYPE_ARC) { readTemp = MillisecGetTemperatures( HEAD_PT100_MIXER_0X8E_0); if ((readTemp>= MaxTemp)&&(readTemp < 27000)) MaxTemp = readTemp; -- cgit v1.3.1 From d113295a432e33e6b7ccbcc948342d7f570d461c Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Sun, 2 Aug 2020 08:26:40 +0300 Subject: Version 1.4.6.36 and procedures --- .../I2C_Communication/Head_Card/IO_Ports/Head_IO.c | 22 ++++++++++----- .../Embedded/Modules/AlarmHandling/AlarmHandling.c | 4 +++ .../Embedded/Modules/Diagnostics/Diagnostics.c | 12 +++++++++ Software/Embedded_SW/Embedded/Modules/IDS/IDS.h | 4 +-- .../Embedded/Modules/IDS/IDS_Cleaning.c | 13 +++++---- .../Embedded_SW/Embedded/Modules/IDS/IDS_print.c | 13 ++++----- Software/Embedded_SW/Embedded/Modules/IFS/ifs.h | 2 +- .../Embedded/Modules/Thread/Thread_init.c | 4 +++ .../Embedded/Modules/Thread/Thread_print.c | 2 +- .../Embedded_SW/Embedded/Modules/Waste/Waste_ex.h | 1 + .../Embedded/Modules/Waste/Waste_maint.c | 14 ++++++---- .../StateMachines/Initialization/InitSequence.c | 1 + .../Embedded/StateMachines/Printing/JobSTM.c | 8 +++--- .../Procedures/ConnectionType.pproj | 1 + .../Procedures/Dancers calibration.pproj | 2 +- .../Procedures/EmbeddedParametersBuild.pproj | 2 +- .../Procedures/Selection Input.pproj | 1 + .../Procedures/WHS Loop Disable.pproj | 2 +- Software/Stubs Collection/Procedures/demo.pproj | 1 + Software/Stubs Collection/WHS_EEPROM.cs | 31 ---------------------- .../Stubs Collection/stubs/Set CleaningSequence.cs | 23 ++++++++++++++++ Software/Stubs Collection/stubs/WHS_EEPROM.cs | 31 ++++++++++++++++++++++ .../stubs/embeddedparametersbuild_w_cleaning.cs | 2 +- 23 files changed, 128 insertions(+), 68 deletions(-) create mode 100644 Software/Stubs Collection/Procedures/ConnectionType.pproj create mode 100644 Software/Stubs Collection/Procedures/Selection Input.pproj create mode 100644 Software/Stubs Collection/Procedures/demo.pproj delete mode 100644 Software/Stubs Collection/WHS_EEPROM.cs create mode 100644 Software/Stubs Collection/stubs/Set CleaningSequence.cs create mode 100644 Software/Stubs Collection/stubs/WHS_EEPROM.cs (limited to 'Software/Embedded_SW') diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c index 1ac0e439b..c222521e7 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c @@ -552,7 +552,7 @@ uint32_t HeadCard_ActStubCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag) / else Report("Remove control callback failed",__FILE__,__LINE__,(int)ActControlId,RpWarning,(int)HeadCard_ActStubCallBackFunction,0); - Report("HeadCard_ActStubCallBackFunction",__FILE__,__LINE__,(int)ActControlId,RpWarning,(int)Act_ID,0); + //Report("HeadCard_ActStubCallBackFunction",__FILE__,__LINE__,(int)ActControlId,RpWarning,(int)Act_ID,0); if(Act_ID == ACTIN)//0 { Head_I2C_EXP4_0x46.bits.OUTPUT_ACTLOW_ACTIN_ON = HIGH; @@ -602,10 +602,13 @@ uint32_t HeadCard_Actuators_Stub(ACTUATORS Act_ID, bool Enable, bool Direction)/ { Head_I2C_EXP4_0x46.bits.OUTPUT_ACTLOW_ACTOT_ON = HIGH; } - if (RemoveControlCallback(ActControlId, HeadCard_ActStubCallBackFunction )==OK) - ActControlId = 0xFF; - else - Report("Remove control callback failed",__FILE__,__LINE__,(int)ActControlId,RpWarning,(int)HeadCard_ActStubCallBackFunction,0); + if (ActControlId != 0xFF) + { + if (RemoveControlCallback(ActControlId, HeadCard_ActStubCallBackFunction )==OK) + ActControlId = 0xFF; + else + Report("Remove control callback failed",__FILE__,__LINE__,(int)ActControlId,RpWarning,(int)HeadCard_ActStubCallBackFunction,0); + } } status |= Head_Write_IO_Reg(0x42,HIGH); @@ -737,7 +740,7 @@ bool isActuatorOnLowestLocation(void) // Give indication if the actuator stopped uint32_t HeadCard_Actuators_Relocate_callback(uint32_t IfIndex, uint32_t BusyFlag) // use IfIndex for Act_ID { count_time++; - //ReportWithPackageFilter(ThreadFilter,"actuators relocation",__FILE__,msec_millisecondCounter,ActuatorLocating,RpMessage,count_time,0); + ReportWithPackageFilter(ThreadFilter,"actuators relocation",__FILE__,msec_millisecondCounter,ActuatorLocating,RpMessage,count_time,0); switch (ActuatorLocating) { case ActuatorIdle: @@ -784,13 +787,18 @@ uint32_t HeadCard_Actuators_Relocate_callback(uint32_t IfIndex, uint32_t BusyFla } uint32_t HeadCard_Actuators_Relocate(void) { - if ((ActuatorLocating == ActuatorIdle)||(ActuatorLocating == ActuatorLocated)) + //if ((ActuatorLocating == ActuatorIdle)||(ActuatorLocating == ActuatorLocated)) { + Trigger_Head_Actuators_Stub(ACTIN, DISABLE, DONTCARE); ActuatorLocating = ActuatorMoveDown; count_time = 0; ReportWithPackageFilter(ThreadFilter,"actuators relocation",__FILE__,msec_millisecondCounter,ActuatorLocating,RpMessage,count_time,0); ActuatorLocatingControl = AddControlCallback("Actuator Location", HeadCard_Actuators_Relocate_callback, eTenMillisecond, TemplateDataReadCBFunction,0,0, 0 ); } + /*else + { + ReportWithPackageFilter(ThreadFilter,"actuators relocation FAILED",__FILE__,__LINE__,ActuatorLocating,RpMessage,count_time,0); + }*/ return ActuatorLocatingControl; } diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c index cc8ae5be8..07df07309 100644 --- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c +++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c @@ -967,6 +967,10 @@ JobEndReasonEnum AlarmHandlingPrepareJob(void *CurrentJob) } } } + if (Configured[Module_Waste]) + { + FoundReason = Waste_Prepare(); + } if ((AlarmState[Alarm_i].Status == true)&&(FoundReason == JOB_OK)) { if(AlarmItem[Alarm_i].Severity>=DEBUG_LOG_CATEGORY__Error) diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c index 1f5093601..0e91f4211 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c @@ -147,6 +147,7 @@ double dispenser8motorfrequency[DIAGNOSTICS_LIMIT+1]; Task_Handle Diagnostics_Task_Handle; Mailbox_Handle DiagnosticsMsgQ = NULL; +extern uint8_t Head_Fan_PWM_Command[2] ; bool blowervolatgedisplay = false; bool midtankDisplay = false; double diagvoltage = 0; @@ -262,6 +263,7 @@ uint8_t MotorCounterIndex[MAX_THREAD_MOTORS_NUM]= {0,0,0}; double MotorValue[MAX_THREAD_MOTORS_NUM][DIAGNOSTICS_LIMIT+1]; uint8_t SpeedCounterIndex= 0; double SpeedValue[DIAGNOSTICS_DANCER_LIMIT+1]; +double headblowervoltage1 = 0.0, headblowervoltage2 = 0.0; void DiagnosticLoadMotor(int MotorId, int frequency) { @@ -499,6 +501,16 @@ void CopyTemperaturesToMonitor(void) DiagnosticsMonitor.headblower1airflow = HeaterTemperature[HEATER_TYPE__HeaterZone5]; DiagnosticsMonitor.headblower2airflow = HeaterTemperature[HEATER_TYPE__HeaterZone7]; } + DiagnosticsMonitor.n_headblower1airflow = HeaterCounterIndex[HEATER_TYPE__HeaterZone5]; + DiagnosticsMonitor.n_headblower2airflow = HeaterCounterIndex[HEATER_TYPE__HeaterZone7]; + DiagnosticsMonitor.headblower1airflow = HeaterTemperature[HEATER_TYPE__HeaterZone5]; + DiagnosticsMonitor.headblower2airflow = HeaterTemperature[HEATER_TYPE__HeaterZone7]; + headblowervoltage1 =(double )Head_Fan_PWM_Command[HEAD_FAN_RIGHT]; + headblowervoltage2 =(double )Head_Fan_PWM_Command[HEAD_FAN_LEFT]; + DiagnosticsMonitor.headblowervoltage1 = &headblowervoltage1; + DiagnosticsMonitor.headblowervoltage2 = &headblowervoltage2; + DiagnosticsMonitor.n_headblowervoltage1 = 1; + DiagnosticsMonitor.n_headblowervoltage2 = 1; DiagnosticsMonitor.dryerzone1temperature = HeaterTemperature[HEATER_TYPE__DryerAirHeater]; DiagnosticsMonitor.dryerzone2temperature = diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS.h b/Software/Embedded_SW/Embedded/Modules/IDS/IDS.h index 647797b69..a48e0df0c 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS.h +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS.h @@ -49,8 +49,8 @@ void IDS_Dispenser_RefillEnded (char DispenserId,char MicroSteps); //uint32_t IDS_Dispenser_Build_Pressure(int DispenserId, callback_fptr callback); uint32_t IDS_Cleaning_Move_Actuators(void); -uint32_t IDS_Cleaning_Move_Rockers (int LeftRockerSpeed,int RightRockerSpeed); -uint32_t IDS_Cleaning_Center_And_Stop_Rockers (int timeout,callback_fptr callback); +//uint32_t IDS_Cleaning_Move_Rockers (int LeftRockerSpeed,int RightRockerSpeed); +//uint32_t IDS_Cleaning_Center_And_Stop_Rockers (int timeout,callback_fptr callback); uint32_t IDS_Cleaning_Spray_Cleaning_Solution (int dispenserSpeed,callback_fptr callback); uint32_t IDS_Cleaning_Stop_Cleaning_Solution (callback_fptr callback); diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c index c9e9afdde..c6be46bca 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c @@ -83,7 +83,7 @@ uint32_t IDS_Cleaning_Move_Actuators() return OK; } -uint32_t IDS_Cleaning_Move_Rockers (int LeftRockerSpeed,int RightRockerSpeed) +/*uint32_t IDS_Cleaning_Move_Rockers (int LeftRockerSpeed,int RightRockerSpeed) { uint32_t status = OK; SaveLeftRockerSpeed = LeftRockerSpeed; @@ -109,7 +109,7 @@ uint32_t IDS_Cleaning_Center_And_Stop_Rockers (int timeout,callback_fptr callbac Report("IDS_Cleaning_Center_And_Stop_Rockers actuator down", __FILE__, __LINE__, timeout, RpWarning, 123456, 0); return status; -} +}*/ uint32_t IDS_Cleaning_Spray_Cleaning_Solution (int dispenserSpeed,callback_fptr callback) { uint32_t status = OK; @@ -128,11 +128,10 @@ uint32_t IDS_Cleaning_Stop_Cleaning_Solution (callback_fptr callback) uint32_t status = OK; status = IDS_Dispenser_Close_Valve_And_Stop_Motor(CLEANER_DISPENSER,callback); Report("IDS_Cleaning_Stop_Cleaning_Solution", __FILE__, __LINE__, CLEANER_DISPENSER, RpWarning, status, 0); - if(Head_Type == HEAD_TYPE_SYLKO) - { - Trigger_Head_Actuators_Control(ACTIN, LOW,false); - Report("IDS_Cleaning_MoveDown cleaning stop", __FILE__, __LINE__, Tdelay1, RpWarning, CleaningStageCounter, 0); - } + HeadCard_Actuators_Relocate(); + CleaningStageCounter = 0; + CleaningStage = CleaningStageIdle; + Report("IDS_Cleaning_Stop_Cleaning_Solution actuator relocate", __FILE__, __LINE__, CleaningStage, RpWarning, CleaningStageCounter, 0); return status; diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c index 311f16a19..c8e3d267e 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c @@ -583,7 +583,7 @@ uint32_t InactiveDispenserHome(uint32_t DispenserId, uint32_t ReadValue) HW_Motor_Id = DispenserIdToMotorId[CLEANER_DISPENSER]; MotorStop(HW_Motor_Id, Hard_Hiz); CurrentDispenserSpeed[CLEANER_DISPENSER] = 0; - Report("IDS stop cleaner",__FILE__,CLEANER_DISPENSER,(int)(GetDispenserPressure(CLEANER_DISPENSER)*100),RpWarning,(int)CurrentDispenserSpeed[CLEANER_DISPENSER] ,0); + //Report("IDS stop cleaner",__FILE__,CLEANER_DISPENSER,(int)(GetDispenserPressure(CLEANER_DISPENSER)*100),RpWarning,(int)CurrentDispenserSpeed[CLEANER_DISPENSER] ,0); } if ((NumofReadyDispensers)&&(DispenserBuildTimeCounter%1000 == 0)) @@ -1605,7 +1605,8 @@ uint32_t IDSSegmentState(void *SegmentDetails, int SegmentId) #else Valve_Set(VALVE_MIXCHIP_WASTECH, Mixer_Head); #endif - IDS_Cleaning_Stop_Cleaning_Solution(NULL); + if (CurrentDispenserSpeed[CLEANER_DISPENSER]>0) + IDS_Cleaning_Stop_Cleaning_Solution(NULL); SegmentNumOfBrushStops = Segment->n_brushstops; BrushStopTime = Segment->length*1000/(double)SegmentNumOfBrushStops; //brushstop in meters //brushstop in millisecond BrushStopTime = ((BrushStopTime*100)/dyeingspeed);//brushstop in seconds @@ -1632,7 +1633,6 @@ uint32_t IDSSegmentState(void *SegmentDetails, int SegmentId) if (DispenserPreSegmentControlId != 0xFF) { Report("IDS presegment not yet ended!!",__FILE__,DispenserPreSegmentControlId,(int)InterSegmentStepsCount,RpWarning,(int)lInterSegmentLength,0); - //IDS_Cleaning_Stop_Cleaning_Solution (NULL); RemoveControlCallback(DispenserPreSegmentControlId, IDSPreSegmentStateCallbackRunner ); DispenserPreSegmentControlId = 0xFF; } @@ -1751,8 +1751,8 @@ uint32_t IDSSegmentState(void *SegmentDetails, int SegmentId) { Report("IDS_Valve_EndValveReady start homing",__FILE__,deviceID,(int)AutoHoming_Config,RpWarning,(int)AutoHoming_JobEnd_PowerOn_off,0); - //if (deviceID!=LUBRICANT_DISPENSER) - IDS_HomeDispenser (deviceID, 1000 , NULL); + if (deviceID!=LUBRICANT_DISPENSER) + IDS_HomeDispenser (deviceID, 1000 , NULL); } return OK; } @@ -1826,6 +1826,7 @@ uint32_t IDS_StopLubrication(void) Lubricant_2Way_Valve (STOP); IDS_Dispenser_Close_Valve_And_Stop_Motor(LUBRICANT_DISPENSER,IDS_Valve_EndValveReady); CurrentDispenserSpeed[LUBRICANT_DISPENSER] = 0; - REPORT_MSG (lubricant_speed, "IDS_StopLubrication"); + IDS_HomeDispenser (LUBRICANT_DISPENSER, 1000 , NULL); + REPORT_MSG (lubricant_speed, "IDS_StopLubrication and home dispenser"); return OK; } diff --git a/Software/Embedded_SW/Embedded/Modules/IFS/ifs.h b/Software/Embedded_SW/Embedded/Modules/IFS/ifs.h index 55d712412..1edc03264 100644 --- a/Software/Embedded_SW/Embedded/Modules/IFS/ifs.h +++ b/Software/Embedded_SW/Embedded/Modules/IFS/ifs.h @@ -12,7 +12,7 @@ #define MODULES_IFS_IFS_H_ #define CARTRIDGE_INK_TIMEOUT 420 -#define MidTank_Pressure_EMPTY 0.5 +#define MidTank_Pressure_EMPTY 0.3 #define CARTRIDGE_CAPATICY 1500 typedef enum{ diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_init.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_init.c index 39ff91558..bbb3e4040 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_init.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_init.c @@ -146,6 +146,10 @@ uint32_t MotorPidRequestMessage(HardwarePidControl* request) // uint32_t MotorSamples[MAX_THREAD_MOTORS_NUM][MAX_CONTROL_SAMPLES]; temp = 1<<(DancersCfg[ThreadMotorIdToDancerId[Motor_i]].resolutionbits); temp = (temp*DancersCfg[ThreadMotorIdToDancerId[Motor_i]].maximalmovementmm);//*3/2); + if (Motor_i == WINDER_MOTOR) + { + temp = temp*3/2; + } DancerStopActivityLimit[Motor_i] = temp/(2*PI*DancersCfg[ThreadMotorIdToDancerId[Motor_i]].armlength); return OK; } diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index c67619e20..f403eeeab 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -723,7 +723,7 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue) { if (calculated_speed>(CurrentControlledSpeed[index]+100)) { - ReportWithPackageFilter(ThreadFilter,"limit acceleration",__FILE__,calculated_speed,CurrentControlledSpeed[index],RpError,CurrentControlledSpeed[index]+100,0); + ReportWithPackageFilter(ThreadFilter,"limit acceleration",__FILE__,calculated_speed,CurrentControlledSpeed[index],RpError,index,0); calculated_speed=CurrentControlledSpeed[index]+100; } CurrentControlledSpeed[index] = calculated_speed; diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_ex.h b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_ex.h index af4bd5e08..ee9f668db 100644 --- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_ex.h +++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_ex.h @@ -44,6 +44,7 @@ bool WHS_IsContainerFull(); bool WHS_WasteCartridgeLowerPresent(); bool WHS_WasteCartridgeMiddlePresent(); bool WHS_IsEmptying(); +uint32_t Waste_Prepare(void); #endif diff --git a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_maint.c b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_maint.c index d87ebd1a2..c0e51a143 100644 --- a/Software/Embedded_SW/Embedded/Modules/Waste/Waste_maint.c +++ b/Software/Embedded_SW/Embedded/Modules/Waste/Waste_maint.c @@ -500,27 +500,31 @@ void Waste_StateMachine(void) break; } } -void Waste_Prepare(void) +uint32_t Waste_Prepare(void) { //check if the waste is ready to run - waste level not above overflow level and no cartridge in the slots if (wasteLevel > wasteLevelOverflow) { Report("cannot start a job with waste tank overflow", __FILE__, __LINE__, wasteLevel, RpMessage, wasteLevelOverflow, 0); JobEndReason = JOB_SAFETY_CRITICAL_ALARM; + usnprintf(AlarmReasonStr, 100, "cannot start a job with waste tank overflow"); AlarmHandlingSetAlarm( EVENT_TYPE__WASTE_CONTAINER_OVERFLOW, true); - PrepareReady(Module_Waste,ModuleFail); - return; + //PrepareReady(Module_Waste,ModuleFail); + return JOB_SAFETY_CRITICAL_ALARM; } if ((WHS_IsEmptying())||(NoCartAvailable())) { - PrepareReady(Module_Waste,ModuleDone); + //PrepareReady(Module_Waste,ModuleDone); + return JOB_OK; } else { Report("cannot start a job with cartridges in the IFS", __FILE__, __LINE__, wasteLevel, RpMessage, wasteLevelOverflow, 0); JobEndReason = JOB_OTHER_ALARM; AlarmHandlingSetAlarm( EVENT_TYPE__ALL_WASTE_CARTRIDGES_FULL, true); - PrepareReady(Module_Waste,ModuleFail); + usnprintf(AlarmReasonStr, 100, "cannot start a job with cartridges in the IFS"); + //PrepareReady(Module_Waste,ModuleFail); + return JOB_OTHER_ALARM; } return; diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c index 1dd81d011..30e43fe99 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/InitSequence.c @@ -590,6 +590,7 @@ void InitSequenceSetStartHeating(bool StartHeating) uint32_t InitSequenceStartHeating(void) { SetMachineReadyForHeating(true); + HeadCard_Actuators_Relocate(); //SetMachineStatus(MACHINE_STATE__Ready); //prevent job while waiting for the cooler if (InitialHeating) diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c index 106d515ad..33face713 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c @@ -207,10 +207,10 @@ static ReturnCode PrepareState(void *JobDetails) { PrepareWaiting[Module_Thread] = ModuleWaiting; } - if (Configured[Module_Waste]) + /*if (Configured[Module_Waste]) { PrepareWaiting[Module_Waste] = ModuleWaiting; - } + }*/ if (Configured[Module_Winder]) { PrepareWaiting[Module_Winder] = ModuleWaiting; @@ -243,8 +243,8 @@ static ReturnCode PrepareState(void *JobDetails) SendJobProgress(0.0, 0, false, "Winder prepare failed !!!!"); } } - if (Configured[Module_Waste]) - Waste_Prepare(); + //if (Configured[Module_Waste]) + // Waste_Prepare(); return retcode; } diff --git a/Software/Stubs Collection/Procedures/ConnectionType.pproj b/Software/Stubs Collection/Procedures/ConnectionType.pproj new file mode 100644 index 000000000..9f87f5e00 --- /dev/null +++ b/Software/Stubs Collection/Procedures/ConnectionType.pproj @@ -0,0 +1 @@ +{"$id":"1","Name":"untitled","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Name":"Program.csx","IsEntryPoint":true,"Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\t\t\r\n //Connection check example.\r\n \r\n if (context.IsConnected) //Check if there is an active machine connection.\r\n {\r\n \tif (context.ConnectionType == MachineConnectionTypes.Wifi) //Check enumeration of the active connection type.\r\n \t{\r\n \t\tcontext.WriteLine(\"The machine is connected via WiFi\");\t\r\n \t}\r\n }\r\n\r\n }\r\n}"},{"$id":"4","Name":"Service.csx","IsEntryPoint":false,"Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}"}]},"Inputs":{"$id":"5","$values":[]},"ReferenceAssemblies":{"$id":"6","$values":[{"$id":"7","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"8","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"11","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"17","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Dialogs":{"$id":"18","$values":[]},"ID":"d6aaf6ec-2a05-4edb-b150-fef4487acd80","ApartmentState":"STA"} \ No newline at end of file diff --git a/Software/Stubs Collection/Procedures/Dancers calibration.pproj b/Software/Stubs Collection/Procedures/Dancers calibration.pproj index e906c6329..42ce82244 100644 --- a/Software/Stubs Collection/Procedures/Dancers calibration.pproj +++ b/Software/Stubs Collection/Procedures/Dancers calibration.pproj @@ -1 +1 @@ -{"$id":"1","Name":"Dancers calibration","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n\t\tvar response1 = context.ShowQuestion(\"Please Enter Password:\");\r\n\t\tif (response1. \"Aa123456\")\r\n\t\t{\r\n\t\t\tcontext.WriteLine(response1);\r\n\t\t\t\r\n\t\t\t\r\n\t\t\tcontext.RequestTimeout = 2000;\r\n\t\t\t//for (int i = 0; i < 100; i++)\r\n\t\t\t{\r\n\t\t\t\tvar response = context.Send(\"StubDancerPositionRequest\" ,0);\r\n\t\t\t\tThread.Sleep(1000);\r\n\t\t\t\t response = context.Send(\"StubDancerPositionRequest\" ,1);\r\n\t\t\t\tThread.Sleep(1000);\r\n\t\t\t\t response = context.Send(\"StubDancerPositionRequest\" ,2);\r\n\t\t\t\tThread.Sleep(1000);\r\n\t\t\t}\r\n\t }\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"ReferenceAssemblies":{"$id":"6","$values":[{"$id":"7","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"8","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"17","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"ApartmentState":"MTA"} \ No newline at end of file +{"$id":"1","Name":"Dancers calibration","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n\t\tstring response1 = context.GetInput(\"ValidationPassword\");\r\n List list = new List();\r\n\t\tif (response1 == \"Aa123456\")\r\n\t\t{\r\n\t\t\tcontext.WriteLine(response1);\r\n\t\t\t\r\n\t\t\t\tStubDancerPositionResponse response = context.Send(\"StubDancerPositionRequest\" ,0);\r\n\t\t\t\tThread.Sleep(100);\r\n\t\t\t\tlist.Add (response.Position);\r\n\t\t\t\t response = context.Send(\"StubDancerPositionRequest\" ,1);\r\n\t\t\t\tThread.Sleep(100);\r\n\t\t\t\tThread.Sleep(100);\r\n\t\t\t\t response = context.Send(\"StubDancerPositionRequest\" ,2);\r\n\t\t\t\tThread.Sleep(100);\r\n\t\t\t\tThread.Sleep(100);\r\n\r\n context.AddResult(ResultType.Passed, \"Array Result\", list);\r\n\r\n\t }\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Default","SelectionInputs":{"$id":"7","$values":[]},"DisplayName":"Validation Password","Description":"Validation Password","Key":"ValidationPassword","Value":"0"}]},"ReferenceAssemblies":{"$id":"8","$values":[{"$id":"9","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"19","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Dialogs":{"$id":"20","$values":[]},"ID":"23b690b1-bd08-45ba-807b-3faa244ed8c3","ApartmentState":"MTA"} \ No newline at end of file diff --git a/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj b/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj index 0b1371bbb..baaa990cc 100644 --- a/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj +++ b/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj @@ -1 +1 @@ -{"$id":"1","Name":"EmbeddedParametersBuild","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.IO;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.PMR.EmbeddedParameters;\r\nusing Tango.PMR.IO;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n context.AddResult(ResultType.Passed, \"My Value Name\", \"Test for this value has passed.\");\r\n\t\tConfigurationParameters configurationParameters = new ConfigurationParameters();\r\n\r\n\t\tconfigurationParameters.BreakSensorLimit = 10;\r\n\r\n\t\t//how many samples to collect in diagnostics before sending\r\n\t\tconfigurationParameters.DiagnosticCollectionLimit = 3;\r\n\r\n\t\t//how many consecutive readout before declaring DC over/underheat alarm\r\n\t\tconfigurationParameters.OverHeatCountLimit = 3;\r\n\t\tconfigurationParameters.UnderHeatCountLimit = 3;\r\n\r\n\t\t// time of motor activity before opening the valve or after closing the valve, in milliseconds\r\n\t\tconfigurationParameters.CloseValveTimeout = 20;\r\n\t\tconfigurationParameters.OpenValveTimeout = 20;\r\n\r\n\t\t//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters)\r\n\t\tconfigurationParameters.InitialDispenserPressure = 0.25; \r\n\t\tconfigurationParameters.InitialDispenserTimeout = 60000; //20 seconds\r\n\t\tconfigurationParameters.InitialDispenserTimeLag = 100;\r\n\r\n\t\t//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed\r\n\t\tconfigurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000\r\n\t\tconfigurationParameters.DispenserBuildPressureLimit = 0.85; \r\n\t\tconfigurationParameters.DispenserBuildPressureTimeout = 180000;\r\n\t\tconfigurationParameters.DispenserBuildPressureLag = 100;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - AC\r\n\t\tconfigurationParameters.ACHeatersLowerOperationLimit = 995;\r\n\t\tconfigurationParameters.ACHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - DC\r\n\t\tconfigurationParameters.DCHeatersLowerOperationLimit = 978;\r\n\t\tconfigurationParameters.DCHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t// mid tank reading offset to add to the readout (OBSOLETE!)\r\n\t\tconfigurationParameters.MidTankPressureCorrection = 0.0;\r\n\r\n\t\t//waste factor for intersegment pressure building\r\n\t\tconfigurationParameters.DispenserPresegmentWFCF = 40;\r\n\t\t//how much time to start the WFCF process (pressure buildup) before segment start\r\n\t\tconfigurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 12000;\r\n\r\n\t\t//flag: start heaters according to saved process parameters upon init?\r\n\t\tconfigurationParameters.StartHeatingOnInitSequence = true;\r\n\r\n\t\t// current test for the heaters - alarm thresholds\r\n\t\tconfigurationParameters.CurrentAlarmLowLimit = 0.78;\r\n\t\tconfigurationParameters.CurrentAlarmHighLimit = 1.07;\r\n\r\n\t\t//currently not in use\r\n\t\tconfigurationParameters.IDSSegmentRefillTimeout = 5000;\r\n\t\tconfigurationParameters.IDSPreSegmentBuildupTime = 5000;\r\n\t\t//cleaning!!!!!!!!!!\r\n\t\tconfigurationParameters.IDSCleaningSpeed = 800;\r\n\t\tconfigurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt\r\n\t\tconfigurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment\r\n\r\n\t\tint Tup = 6,Tdelay1 = 26,Tdelay2 = 65;//300 milli up, stay 1 sec, stay down 2 sec\r\n\t\t// Tup = LeftRockerSpeed/100;\r\n\t\t// Tdelay1 = LeftRockerSpeed%100;\r\n\t\t// Tdelay2 = RightRockerSpeed;\r\n\t\tint LeftRockerSpeed = Tup*100+Tdelay1;\r\n\t\tint RightRockerSpeed = Tdelay2;\r\n\r\n\t\tconfigurationParameters.IDSLeftCleaningMotorSpeed = LeftRockerSpeed;\r\n\t\tconfigurationParameters.IDSRightCleaningMotorSpeed = RightRockerSpeed;\r\n\r\n\t\tconfigurationParameters.SwitchToIdleTimeinSeconds = 3600;\r\n\t\tconfigurationParameters.IdleDrierTemperature = 80;\r\n\t\tconfigurationParameters.IdleHeadTemperature = 80;\r\n\t\tconfigurationParameters.IdleMixerTemperature = 0;\r\n\t\tconfigurationParameters.PowerOffTemperatureLimit = 60;\r\n\r\n\t\t//general parameters, ORDER MUST BE PRESERVED!!!!\r\n\t\t//check the dispensers hard limit alarms\r\n\t\t/*1*/\r\n\t\tDouble checkHardLimitAlarms = new Double();\r\n\r\n\t\tcheckHardLimitAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkHardLimitAlarms);\r\n\r\n\t\t/*2*/\r\n\t\tDouble checkCurrentAlarms = new Double();\r\n\t\tcheckCurrentAlarms = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkCurrentAlarms);\r\n\t\t//check the tamper alarms\r\n\r\n\t\t/*3*/\r\n\t\tDouble checkTamperAlarms = new Double();\r\n\t\tcheckTamperAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkTamperAlarms);\r\n\r\n\t\t/*4*/\r\n\t\tDouble checkMotorAlarms = new Double();\r\n\t\tcheckMotorAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkMotorAlarms);\r\n\r\n\t\t/*5*/\r\n\t\tDouble WinderBackToBaseTime = new Double();\r\n\t\tWinderBackToBaseTime = 820.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(WinderBackToBaseTime);\r\n\r\n\t\t/*6*/\r\n\t\tDouble DispenserInitialPressureSpeed = new Double();\r\n\t\tDispenserInitialPressureSpeed = 1050.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed);\r\n\r\n\t\t/*7*/\r\n\t\tDouble SetDiagnosticMode = new Double();\r\n\t\tSetDiagnosticMode = 3.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetDiagnosticMode);\r\n\r\n\t\t/*8*/\r\n\t\tDouble SetAutoFill = new Double();\r\n\t\tSetAutoFill = 3.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetAutoFill);\r\n\r\n\t\tFile.WriteAllBytes(\"C:/temp/EmbParam.cfg\",configurationParameters.ToBytes());\r\n\r\n\t\tbyte[] fileBytes = File.ReadAllBytes(\"C:/temp/EmbParam.cfg\");\r\n\r\n\r\n\t\tvar config = ConfigurationParameters.Parser.ParseFrom(fileBytes);\r\n\r\n\t\tcontext.Write( config);\r\n\t\tThread.Sleep(1000);\r\n\r\n\r\n\t\tcontext.Write(\"\\n\\n Deleting old file\");\r\n\r\n\t\tDeleteRequest deleteRequest = new DeleteRequest();\r\n\t\tdeleteRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tdeleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified;\r\n\t\tDeleteResponse response5 = context.Send(deleteRequest);\r\n\r\n\r\n\t\tThread.Sleep(1000);\r\n\t\tcontext.Write(\"\\n\\n Loading new file file\");\r\n\r\n\t\tFileUploadRequest fileUploadRequest = new FileUploadRequest();\r\n\t\tfileUploadRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tfileUploadRequest.Length = (int)fileBytes.Length;\r\n\t\tFileUploadResponse response2 = context.Send(fileUploadRequest);\r\n\t\tThread.Sleep(1000);\r\n\t\tlong chunk_size = response2.MaxChunkLength;\r\n\r\n\t\tFileStream fs = new FileStream(\"C:/temp/EmbParam.cfg\",FileMode.Open);\r\n\r\n\t\twhile (fs.Position < fs.Length)\r\n\t\t{\r\n\t\t\t\tcontext.Write(\"Position \"+ fs.Position+ \" Length \"+ fs.Length +\"\\n\\n\");\r\n\t\t\t\tFileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest();\r\n\t\t\t\tfileChunkUploadRequest.UploadID = response2.UploadID;\r\n\t\t\t\tbyte[] chunk = new byte[Math.Min(chunk_size,fs.Length - fs.Position)];\r\n\t\t\t\tfs.Read(chunk,0,chunk.Length);\r\n\t\t\t\tfileChunkUploadRequest.Buffer = ByteString.CopyFrom(chunk);\t\r\n\t\t\t\tvar response3 = context.Send(fileChunkUploadRequest);\r\n\t\t\t\tThread.Sleep(2000);\r\n\r\n\t\t}\r\n\r\n\t\t// activating the new file\r\n\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\tprogressRequest.Amount = 0xCD;\r\n\t\tprogressRequest.Delay = 0xCD;\r\n\t\tvar response1 = context.Send(progressRequest);\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"ReferenceAssemblies":{"$id":"6","$values":[{"$id":"7","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"8","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"17","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"ApartmentState":"MTA"} \ No newline at end of file +{"$id":"1","Name":"EmbeddedParametersBuild","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.IO;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.PMR.EmbeddedParameters;\r\nusing Tango.PMR.IO;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\npublic class Cleaning\r\n{\r\n\t[Description(\"Actuator Going up time\")]\r\n\tpublic int Tup;\r\n\t[Description(\"Actuator Wait up time\")]\r\n\tpublic int Tdelay1;\r\n\t[Description(\"Actuator Wait Down time\")]\r\n\tpublic int Tdelay2;\r\n}\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n context.AddResult(ResultType.Passed, \"My Value Name\", \"Test for this value has passed.\");\r\n\t\tConfigurationParameters configurationParameters = new ConfigurationParameters();\r\n\r\n\t\tconfigurationParameters.BreakSensorLimit = 10;\r\n\r\n\t\t//how many samples to collect in diagnostics before sending\r\n\t\tconfigurationParameters.DiagnosticCollectionLimit = 3;\r\n\r\n\t\t//how many consecutive readout before declaring DC over/underheat alarm\r\n\t\tconfigurationParameters.OverHeatCountLimit = 3;\r\n\t\tconfigurationParameters.UnderHeatCountLimit = 3;\r\n\r\n\t\t// time of motor activity before opening the valve or after closing the valve, in milliseconds\r\n\t\tconfigurationParameters.CloseValveTimeout = 20;\r\n\t\tconfigurationParameters.OpenValveTimeout = 20;\r\n\r\n\t\t//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters)\r\n\t\tconfigurationParameters.InitialDispenserPressure = 0.25; \r\n\t\tconfigurationParameters.InitialDispenserTimeout = 60000; //20 seconds\r\n\t\tconfigurationParameters.InitialDispenserTimeLag = 100;\r\n\r\n\t\t//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed\r\n\t\tconfigurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000\r\n\t\tconfigurationParameters.DispenserBuildPressureLimit = 0.85; \r\n\t\tconfigurationParameters.DispenserBuildPressureTimeout = 180000;\r\n\t\tconfigurationParameters.DispenserBuildPressureLag = 100;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - AC\r\n\t\tconfigurationParameters.ACHeatersLowerOperationLimit = 995;\r\n\t\tconfigurationParameters.ACHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - DC\r\n\t\tconfigurationParameters.DCHeatersLowerOperationLimit = 978;\r\n\t\tconfigurationParameters.DCHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t// mid tank reading offset to add to the readout (OBSOLETE!)\r\n\t\tconfigurationParameters.MidTankPressureCorrection = 0.0;\r\n\r\n\t\t//waste factor for intersegment pressure building\r\n\t\tconfigurationParameters.DispenserPresegmentWFCF = context.GetInput(\"WCF_Value\");\r\n\r\n\t\t//how much time to start the WFCF process (pressure buildup) before segment start\r\n\t\tconfigurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 12000;\r\n\r\n\t\t//flag: start heaters according to saved process parameters upon init?\r\n\t\tconfigurationParameters.StartHeatingOnInitSequence = context.GetInput(\"InitialHeating\");\r\n\r\n\t\t// current test for the heaters - alarm thresholds\r\n\t\tconfigurationParameters.CurrentAlarmLowLimit = 0.78;\r\n\t\tconfigurationParameters.CurrentAlarmHighLimit = 1.07;\r\n\r\n\t\t//currently not in use\r\n\t\tconfigurationParameters.IDSSegmentRefillTimeout = 5000;\r\n\t\tconfigurationParameters.IDSPreSegmentBuildupTime = 5000;\r\n\t\t//cleaning!!!!!!!!!!\r\n\t\tconfigurationParameters.IDSCleaningSpeed = 800;\r\n\t\tconfigurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt\r\n\t\tconfigurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment\r\n\r\n Cleaning Clean = new Cleaning();\r\n\t\tClean.Tup = 10;\r\n\t\tClean.Tdelay1 = 98;\r\n\t\tClean.Tdelay2 = 198;//300 milli up, stay 1 sec, stay down 2 sec\r\n Clean =\tcontext.RequestUserInputFor(Clean,\"Cleaning Input Required\",\"Please fill in the form\");\r\n\r\n\t\t// Tup = LeftRockerSpeed/100;\r\n\t\t// Tdelay1 = LeftRockerSpeed%100;\r\n\t\t// Tdelay2 = RightRockerSpeed;\r\n\t\tint LeftRockerSpeed = Clean.Tup*100+Clean.Tdelay1;\r\n\t\tint RightRockerSpeed = Clean.Tdelay2;\r\n\r\n\t\tconfigurationParameters.IDSLeftCleaningMotorSpeed = LeftRockerSpeed;\r\n\t\tconfigurationParameters.IDSRightCleaningMotorSpeed = RightRockerSpeed;\r\n\r\n\t\tconfigurationParameters.SwitchToIdleTimeinSeconds = 3600;\r\n\t\tconfigurationParameters.IdleDrierTemperature = 80;\r\n\t\tconfigurationParameters.IdleHeadTemperature = 80;\r\n\t\tconfigurationParameters.IdleMixerTemperature = 0;\r\n\t\tconfigurationParameters.PowerOffTemperatureLimit = 60;\r\n\r\n\t\t//general parameters, ORDER MUST BE PRESERVED!!!!\r\n\t\t//check the dispensers hard limit alarms\r\n\t\t/*1*/\r\n\r\n\t\tconfigurationParameters\t= context.RequestUserInputFor(configurationParameters,\"ConfigurationParameters Input Required\",\"Please fill in the form\");\r\n\r\n\t\tDouble checkHardLimitAlarms = new Double();\r\n\r\n\t\tcheckHardLimitAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkHardLimitAlarms);\r\n\r\n\t\t/*2*/\r\n\t\tDouble checkCurrentAlarms = new Double();\r\n\t\tcheckCurrentAlarms = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkCurrentAlarms);\r\n\t\t//check the tamper alarms\r\n\r\n\t\t/*3*/\r\n\t\tDouble checkTamperAlarms = new Double();\r\n\t\tcheckTamperAlarms = context.GetInput(\"CheckTampers\");\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkTamperAlarms);\r\n\r\n\t\t/*4*/\r\n\t\tDouble checkMotorAlarms = new Double();\r\n\t\tcheckMotorAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkMotorAlarms);\r\n\r\n\t\t/*5*/\r\n\t\tDouble WinderBackToBaseTime = new Double();\r\n\t\tWinderBackToBaseTime = 820.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(WinderBackToBaseTime);\r\n\t\t/*6*/\r\n\t\tDouble DispenserInitialPressureSpeed = new Double();\r\n\t\tDispenserInitialPressureSpeed = 1050.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed);\r\n\r\n\t\t/*7*/\r\n\t\tDouble SetDiagnosticMode = new Double();\r\n\t\tSetDiagnosticMode = 3.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetDiagnosticMode);\r\n\r\n\t\t/*8*/\r\n\t\tDouble SetAutoFill = new Double();\r\n\t\tSetAutoFill = context.GetInput(\"AutoFillMode\");\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetAutoFill);\r\n\t\tFile.WriteAllBytes(\"C:/temp/EmbParam.cfg\",configurationParameters.ToBytes());\r\n\r\n\t\tbyte[] fileBytes = File.ReadAllBytes(\"C:/temp/EmbParam.cfg\");\r\n\r\n\r\n\t\tvar config = ConfigurationParameters.Parser.ParseFrom(fileBytes);\r\n\r\n\t\tcontext.Write( config);\r\n\t\tThread.Sleep(1000);\r\n\r\n\t\r\n\t\tcontext.Write(\"\\n\\n Deleting old file\");\r\n\r\n\t\tDeleteRequest deleteRequest = new DeleteRequest();\r\n\t\tdeleteRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tdeleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified;\r\n\t\tDeleteResponse response5 = context.Send(deleteRequest);\r\n\r\n\r\n\t\tThread.Sleep(1000);\r\n\t\tcontext.Write(\"\\n\\n Loading new file file\");\r\n\r\n\t\tFileUploadRequest fileUploadRequest = new FileUploadRequest();\r\n\t\tfileUploadRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tfileUploadRequest.Length = (int)fileBytes.Length;\r\n\t\tFileUploadResponse response2 = context.Send(fileUploadRequest);\r\n\t\tThread.Sleep(1000);\r\n\t\tlong chunk_size = response2.MaxChunkLength;\r\n\r\n\t\tFileStream fs = new FileStream(\"C:/temp/EmbParam.cfg\",FileMode.Open);\r\n\r\n\t\twhile (fs.Position < fs.Length)\r\n\t\t{\r\n\t\t\t\tcontext.Write(\"Position \"+ fs.Position+ \" Length \"+ fs.Length +\"\\n\\n\");\r\n\t\t\t\tFileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest();\r\n\t\t\t\tfileChunkUploadRequest.UploadID = response2.UploadID;\r\n\t\t\t\tbyte[] chunk = new byte[Math.Min(chunk_size,fs.Length - fs.Position)];\r\n\t\t\t\tfs.Read(chunk,0,chunk.Length);\r\n\t\t\t\tfileChunkUploadRequest.Buffer = ByteString.CopyFrom(chunk);\t\r\n\t\t\t\tvar response3 = context.Send(fileChunkUploadRequest);\r\n\t\t\t\tThread.Sleep(2000);\r\n\r\n\t\t}\r\n\r\n\t\t// activating the new file\r\n\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\tprogressRequest.Amount = 0xCD;\r\n\t\tprogressRequest.Delay = 0xCD;\r\n\t\tvar response1 = context.Send(progressRequest);\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Default","SelectionInputs":{"$id":"7","$values":[]},"DisplayName":"Check Tamper / Fan alarms","Description":"Check Tamper / Fan alarms","Key":"CheckTampers","Value":"1.0"},{"$id":"8","Type":"Default","SelectionInputs":{"$id":"9","$values":[]},"DisplayName":"Initial Heating on startup","Description":"Initial Heating on startup","Key":"InitialHeating","Value":"true"},{"$id":"10","Type":"Default","SelectionInputs":{"$id":"11","$values":[]},"DisplayName":"WCF Value","Description":"WCF Value","Key":"WCF_Value","Value":"40"},{"$id":"12","Type":"Default","SelectionInputs":{"$id":"13","$values":[]},"DisplayName":"AutoFill Mode","Description":"Controls the AutoFill Mode","Key":"AutoFillMode","Value":"3.0"}]},"ReferenceAssemblies":{"$id":"14","$values":[{"$id":"15","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"16","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"17","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"18","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"20","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"21","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"22","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"23","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"24","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"25","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Dialogs":{"$id":"26","$values":[]},"ID":"2bd29884-5eb9-4d27-be4e-6cfa31dc9f66","ApartmentState":"MTA"} \ No newline at end of file diff --git a/Software/Stubs Collection/Procedures/Selection Input.pproj b/Software/Stubs Collection/Procedures/Selection Input.pproj new file mode 100644 index 000000000..dfe8b2553 --- /dev/null +++ b/Software/Stubs Collection/Procedures/Selection Input.pproj @@ -0,0 +1 @@ +{"$id":"1","Name":"Selection Input","Description":"Selection Input Demonstration","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n context.AddResult(ResultType.Passed, \"Selection\", context.GetInput(\"select\"));\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Key":"select","Type":"Selection","DisplayName":"Parameter 1","Description":"Controls the 1 parameter.","Value":"Value1","SelectionInputs":{"$id":"7","$values":[{"$id":"8","Name":"Value 1 Name","Value":"Value1"},{"$id":"9","Name":"Value 2 Name","Value":"Value2"}]}},{"$id":"10","Key":"param2","Type":"Default","DisplayName":"Parameter 2","Description":"Controls the 2 parameter.","Value":"0","SelectionInputs":{"$id":"11","$values":[]}}]},"ReferenceAssemblies":{"$id":"12","$values":[{"$id":"13","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"14","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"15","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"16","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"19","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"20","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"21","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"22","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"23","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Dialogs":{"$id":"24","$values":[]},"ID":"9c8ea90a-47ea-45d8-a5b6-06da13e8ddde","ApartmentState":"STA"} \ No newline at end of file diff --git a/Software/Stubs Collection/Procedures/WHS Loop Disable.pproj b/Software/Stubs Collection/Procedures/WHS Loop Disable.pproj index 046c188a1..f279b5f09 100644 --- a/Software/Stubs Collection/Procedures/WHS Loop Disable.pproj +++ b/Software/Stubs Collection/Procedures/WHS Loop Disable.pproj @@ -1 +1 @@ -{"$id":"1","Name":"WHS Loop Disable","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n\t\tint ControlLoopEnable = 0x1000;\r\n\t\tint ControlLoopDisable = 0x0000;\r\n\t\t\r\n\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\tprogressRequest.Amount = 0x3e8;\r\n\t\tprogressRequest.Delay = ControlLoopDisable+2700;\r\n\r\n\tvar response = context.Send(progressRequest);\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"ReferenceAssemblies":{"$id":"6","$values":[{"$id":"7","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"8","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"17","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"ApartmentState":"MTA"} \ No newline at end of file +{"$id":"1","Name":"WHS Loop Disable","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n\t\tint ControlLoopEnable = context.GetInput(\"WasteControlLoop\");\r\n\t\t\r\n\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\tprogressRequest.Amount = 0x3e8;\r\n\t\tprogressRequest.Delay = ControlLoopEnable*0x1000+2700;\r\n\r\n\tvar response = context.Send(progressRequest);\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Default","SelectionInputs":{"$id":"7","$values":[]},"DisplayName":"Waste Control Loop Enabled","Description":"Waste Control Loop Enabled","Key":"WasteControlLoop","Value":"1"}]},"ReferenceAssemblies":{"$id":"8","$values":[{"$id":"9","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"19","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Dialogs":{"$id":"20","$values":[]},"ID":"eb9234b2-2aa0-4bf2-bfe4-dcc8de49bda6","ApartmentState":"MTA"} \ No newline at end of file diff --git a/Software/Stubs Collection/Procedures/demo.pproj b/Software/Stubs Collection/Procedures/demo.pproj new file mode 100644 index 000000000..b5be39462 --- /dev/null +++ b/Software/Stubs Collection/Procedures/demo.pproj @@ -0,0 +1 @@ +{"$id":"1","Name":"demo","Description":"Demo project for developers.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n context.WriteLine(\"Calculating...\");\r\n context.Sleep(2000);\r\n\r\n double a = context.GetInput(\"n1\");\r\n double b = context.GetInput(\"n2\");\r\n\r\n\r\n double d = context.RequestUserInputFor(20, \"Additional Number\", \"Please provide another value\");\r\n \r\n Person pp = context.RequestUserInputFor(\"Person Input Required\",\"Please fill in the form\");\r\n \r\n if (pp.Name == \"Roy\")\r\n {\r\n \tif (context.ShowWarningQuestion(\"The name Roy is invalid are you sure?\"))\r\n \t{\r\n \t\tcontext.Fail(\"Name Roy is invalid!\");\r\n \t}\r\n }\r\n \r\n\r\n double c = a + b + d;\r\n\r\n\r\n\r\n context.AddResult(ResultType.Passed, \"Calc Result\", c);\r\n context.AddResult(ResultType.Warning, \"Other Value\", \"Some Value\");\r\n\r\n List list = new List();\r\n List persons = new List();\r\n\r\n for (int i = 0; i < 100; i++)\r\n {\r\n list.Add(i);\r\n\r\n Person p = new Person();\r\n p.Age = i;\r\n p.Name = \"Roy \" + i;\r\n persons.Add(p);\r\n }\r\n\r\n double sum = list.Sum();\r\n\r\n context.AddResult(ResultType.Passed, \"Array Result\", list);\r\n context.AddGraphResult(ResultType.Passed, \"Graph Result\", list);\r\n\r\n context.AddResult(ResultType.Passed, \"Persons\", persons);\r\n\r\n Bitmap bitmap = context.CreateBitmap(400, 200);\r\n Graphics g = context.GetDrawingContext(bitmap);\r\n\r\n g.Clear(Color.Blue);\r\n g.FillRectangle(Brushes.Red, 10, 10, 50, 50);\r\n\r\n context.AddBitmapResult(ResultType.Passed, \"Bitmap Demo\", bitmap);\r\n\r\n g.Dispose();\r\n\r\n List dancerValues = new List();\r\n\r\n context.WriteLine(\"Collecting dancer angle...\");\r\n\r\n for (int i = 0; i < 100; i++)\r\n {\r\n DiagnosticsPackage package = context.GetDiagnosticsPackage(true);\r\n double dancerAngle = package.GetMonitorLastValue(TechMonitors.Dancer2Angle);\r\n\r\n dancerValues.Add(dancerAngle);\r\n\r\n context.UpdateProgress(\"Collecting dancer position...\", false, i, 50);\r\n }\r\n\r\n context.AddGraphResult(ResultType.Passed, \"Dancer Angle\", dancerValues);\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n\tpublic const String WORD = \"123\";\r\n\tpublic const int NUM = 1;\r\n}","Name":"Service.csx","IsEntryPoint":false},{"$id":"5","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Person\r\n{\r\n\tpublic int Age;\r\n\t[Description(\"First Name\")]\r\n\tpublic String Name;\r\n}","Name":"Person.csx","IsEntryPoint":false}]},"Inputs":{"$id":"6","$values":[{"$id":"7","DisplayName":"Number A","Description":"First number for calc","Key":"n1","Value":"10"},{"$id":"8","DisplayName":"Number B","Description":"Second number for calc","Key":"n2","Value":"15"}]},"ReferenceAssemblies":{"$id":"9","$values":[{"$id":"10","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"12","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"13","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"19","File":"C:\\DATA\\Development\\Tango\\Software\\Visual_Studio\\Build\\FSE\\Debug\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"20","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Dialogs":{"$id":"21","$values":[]},"ID":"4d95f6b1-ee07-4bc8-85af-18bc12326f29","ApartmentState":"STA"} \ No newline at end of file diff --git a/Software/Stubs Collection/WHS_EEPROM.cs b/Software/Stubs Collection/WHS_EEPROM.cs deleted file mode 100644 index b5c7af2b1..000000000 --- a/Software/Stubs Collection/WHS_EEPROM.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Text; -using System.Linq; -using System.Drawing; -using System.Diagnostics; -using System.Windows.Forms; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using Tango.PMR.Stubs; -using Tango.Stubs; - -public void OnExecute(StubManager stubManager) -{ - - -StubWhsEEpromRequest stubWhsEEpromRequest = new StubWhsEEpromRequest(); -stubWhsEEpromRequest.BurnRequest = false; // false - read, true - write - -StubWhsEEpromData stubWhsEEpromData = new StubWhsEEpromData(); -stubWhsEEpromData.Header = 1; -stubWhsEEpromData.TableLength = 2; -stubWhsEEpromData.Tableversion = 3; -stubWhsEEpromData.Orifice1Flow = 1067 * 8.7433; //mv * 8.7433 convert from mv to ml (1067 * 8.7433 = 9,329.1011) -stubWhsEEpromData.CheckSum = 5; - -stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData; - -var response = stubManager.Run(stubWhsEEpromRequest); - -} \ No newline at end of file diff --git a/Software/Stubs Collection/stubs/Set CleaningSequence.cs b/Software/Stubs Collection/stubs/Set CleaningSequence.cs new file mode 100644 index 000000000..a73134e7b --- /dev/null +++ b/Software/Stubs Collection/stubs/Set CleaningSequence.cs @@ -0,0 +1,23 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + + +ProgressRequest progressRequest = new ProgressRequest(); +progressRequest.Amount = 0xAD7; +progressRequest.Delay = 0; //disable + +var response = stubManager.Run(progressRequest); + +} \ No newline at end of file diff --git a/Software/Stubs Collection/stubs/WHS_EEPROM.cs b/Software/Stubs Collection/stubs/WHS_EEPROM.cs new file mode 100644 index 000000000..b5c7af2b1 --- /dev/null +++ b/Software/Stubs Collection/stubs/WHS_EEPROM.cs @@ -0,0 +1,31 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + + +StubWhsEEpromRequest stubWhsEEpromRequest = new StubWhsEEpromRequest(); +stubWhsEEpromRequest.BurnRequest = false; // false - read, true - write + +StubWhsEEpromData stubWhsEEpromData = new StubWhsEEpromData(); +stubWhsEEpromData.Header = 1; +stubWhsEEpromData.TableLength = 2; +stubWhsEEpromData.Tableversion = 3; +stubWhsEEpromData.Orifice1Flow = 1067 * 8.7433; //mv * 8.7433 convert from mv to ml (1067 * 8.7433 = 9,329.1011) +stubWhsEEpromData.CheckSum = 5; + +stubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData; + +var response = stubManager.Run(stubWhsEEpromRequest); + +} \ No newline at end of file diff --git a/Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs b/Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs index eaf15b1f6..3b3768310 100644 --- a/Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs +++ b/Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs @@ -76,7 +76,7 @@ configurationParameters.IDSCleaningSpeed = 800; configurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt configurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment -int Tup = 6,Tdelay1 = 26,Tdelay2 = 65;//300 milli up, stay 1 sec, stay down 2 sec +int Tup = 8,Tdelay1 = 98,Tdelay2 = 198; //350nsec up, 1 second delay, 2 seconds before up again // Tup = LeftRockerSpeed/100; // Tdelay1 = LeftRockerSpeed%100; // Tdelay2 = RightRockerSpeed; -- cgit v1.3.1 From 563541739f0e49e29e3848376964f36519839148 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Sun, 2 Aug 2020 13:03:12 +0300 Subject: stop actuator after 2 seconds on relocation. improve cleaning,stop Hiz dancers after RML tension setting --- .../I2C_Communication/Head_Card/IO_Ports/Head_IO.c | 30 ++++++++++++++-------- .../Embedded_SW/Embedded/Drivers/Motors/Motor.c | 2 ++ Software/Embedded_SW/Embedded/Main.c | 8 +++--- .../Embedded/Modules/IDS/IDS_Cleaning.c | 13 +++++----- .../Embedded/Modules/Thread/Thread_print.c | 7 ++--- 5 files changed, 36 insertions(+), 24 deletions(-) (limited to 'Software/Embedded_SW') diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c index 2ce1ac909..7a99b154f 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c @@ -552,7 +552,7 @@ uint32_t HeadCard_ActStubCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag) / else Report("Remove control callback failed",__FILE__,__LINE__,(int)ActControlId,RpWarning,(int)HeadCard_ActStubCallBackFunction,0); - Report("HeadCard_ActStubCallBackFunction",__FILE__,__LINE__,(int)ActControlId,RpWarning,(int)Act_ID,0); + //Report("HeadCard_ActStubCallBackFunction",__FILE__,__LINE__,(int)ActControlId,RpWarning,(int)Act_ID,0); if(Act_ID == ACTIN)//0 { Head_I2C_EXP4_0x46.bits.OUTPUT_ACTLOW_ACTIN_ON = HIGH; @@ -605,15 +605,18 @@ uint32_t HeadCard_Actuators_Stub(ACTUATORS Act_ID, bool Enable, bool Direction)/ { Head_I2C_EXP4_0x46.bits.OUTPUT_ACTLOW_ACTOT_ON = HIGH; } - if (RemoveControlCallback(ActControlId, HeadCard_ActStubCallBackFunction )==OK) - ActControlId = 0xFF; - else - Report("Remove control callback failed",__FILE__,__LINE__,(int)ActControlId,RpWarning,(int)HeadCard_ActStubCallBackFunction,0); - - status |= Head_Write_IO_Reg(0x42,HIGH); - status |= Head_Write_IO_Reg(0x46,HIGH); + if (ActControlId != 0xFF) + { + if (RemoveControlCallback(ActControlId, HeadCard_ActStubCallBackFunction )==OK) + ActControlId = 0xFF; + else + Report("Remove control callback failed",__FILE__,__LINE__,(int)ActControlId,RpWarning,(int)HeadCard_ActStubCallBackFunction,0); + } } + status |= Head_Write_IO_Reg(0x42,HIGH); + status |= Head_Write_IO_Reg(0x46,LOW_AND_HIGH); + return status; } @@ -740,7 +743,7 @@ bool isActuatorOnLowestLocation(void) // Give indication if the actuator stopped uint32_t HeadCard_Actuators_Relocate_callback(uint32_t IfIndex, uint32_t BusyFlag) // use IfIndex for Act_ID { count_time++; - //ReportWithPackageFilter(ThreadFilter,"actuators relocation",__FILE__,msec_millisecondCounter,ActuatorLocating,RpMessage,count_time,0); + ReportWithPackageFilter(ThreadFilter,"actuators relocation",__FILE__,msec_millisecondCounter,ActuatorLocating,RpMessage,count_time,0); switch (ActuatorLocating) { case ActuatorIdle: @@ -755,7 +758,7 @@ uint32_t HeadCard_Actuators_Relocate_callback(uint32_t IfIndex, uint32_t BusyFla } break; case ActuatorWait: - if (isActuatorOnLowestLocation())//read the inputs in Hundred_msTick + if ((isActuatorOnLowestLocation())||(count_time>200))//read the inputs in Hundred_msTick { Trigger_Head_Actuators_Stub(ACTIN, ENABLE, UP); moveuptime = count_time; @@ -787,13 +790,18 @@ uint32_t HeadCard_Actuators_Relocate_callback(uint32_t IfIndex, uint32_t BusyFla } uint32_t HeadCard_Actuators_Relocate(void) { - if ((ActuatorLocating == ActuatorIdle)||(ActuatorLocating == ActuatorLocated)) + //if ((ActuatorLocating == ActuatorIdle)||(ActuatorLocating == ActuatorLocated)) { + Trigger_Head_Actuators_Stub(ACTIN, DISABLE, DONTCARE); ActuatorLocating = ActuatorMoveDown; count_time = 0; ReportWithPackageFilter(ThreadFilter,"actuators relocation",__FILE__,msec_millisecondCounter,ActuatorLocating,RpMessage,count_time,0); ActuatorLocatingControl = AddControlCallback("Actuator Location", HeadCard_Actuators_Relocate_callback, eTenMillisecond, TemplateDataReadCBFunction,0,0, 0 ); } + /*else + { + ReportWithPackageFilter(ThreadFilter,"actuators relocation FAILED",__FILE__,__LINE__,ActuatorLocating,RpMessage,count_time,0); + }*/ return ActuatorLocatingControl; } diff --git a/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c b/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c index cd66c7a16..ad7e91b88 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c +++ b/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c @@ -72,6 +72,7 @@ uint32_t MotorsInit(void) MotorConfigState[i] = false; } +#ifndef EVALUATION_BOARD //option to change itafter initialization (to solve EMC issues) in the function Control_motors_clock_source #ifdef EMC_FORCE_MOT_CLOCK_INTERNAL F3_Moto_Clk_Src_Sel.Motor.LDRIVING = INTERNAL; @@ -86,6 +87,7 @@ uint32_t MotorsInit(void) #endif F3_MOTO_CLK_SRC_SEL = F3_Moto_Clk_Src_Sel.ushort; +#endif return OK; } diff --git a/Software/Embedded_SW/Embedded/Main.c b/Software/Embedded_SW/Embedded/Main.c index da103cced..ccda43cfd 100644 --- a/Software/Embedded_SW/Embedded/Main.c +++ b/Software/Embedded_SW/Embedded/Main.c @@ -271,6 +271,7 @@ int main(void) //OpenLogFile(); Init_All_I2C(); +#ifndef EVALUATION_BOARD Block_Main_MUX_TCA9548A_0xE4();//unused, same i2c as head and whs cards I2C_BUSY_DELAY = 3000; //temporary workaround!!! Check_Head_Type_Via_EEPROM();//without trigger @@ -289,13 +290,12 @@ int main(void) Trigger_Head_io_Init();//Head_IO_Init();//moved to set 24 to pressure sensor in arc earlier } - #ifndef EVALUATION_BOARD STATUS_RED_LED_ON; STATUS_GREEN_LED_ON; FPGA_Init(); - #endif Init_IFS();//must be done after FPGA_Init +#endif MAP_FPULazyStackingEnable(); @@ -329,8 +329,10 @@ int main(void) ControlStart(); Heaters_Init(); +#ifndef EVALUATION_BOARD MotorsInit(); -//Shai WHS_HW_test(); // for WHS sensor test +#endif + //Shai WHS_HW_test(); // for WHS sensor test #ifndef EVALUATION_BOARD Init_Machine_Leds(); diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c index 8347c5ee9..26ba52d76 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_Cleaning.c @@ -83,7 +83,7 @@ uint32_t IDS_Cleaning_Move_Actuators() return OK; } -uint32_t IDS_Cleaning_Move_Rockers (int LeftRockerSpeed,int RightRockerSpeed) +/*uint32_t IDS_Cleaning_Move_Rockers (int LeftRockerSpeed,int RightRockerSpeed) { uint32_t status = OK; SaveLeftRockerSpeed = LeftRockerSpeed; @@ -109,7 +109,7 @@ uint32_t IDS_Cleaning_Center_And_Stop_Rockers (int timeout,callback_fptr callbac Report("IDS_Cleaning_Center_And_Stop_Rockers actuator down", __FILE__, __LINE__, timeout, RpWarning, 123456, 0); return status; -} +}*/ uint32_t IDS_Cleaning_Spray_Cleaning_Solution (int dispenserSpeed,callback_fptr callback) { uint32_t status = OK; @@ -128,11 +128,10 @@ uint32_t IDS_Cleaning_Stop_Cleaning_Solution (callback_fptr callback) uint32_t status = OK; status = IDS_Dispenser_Close_Valve_And_Stop_Motor(CLEANER_DISPENSER,callback); Report("IDS_Cleaning_Stop_Cleaning_Solution", __FILE__, __LINE__, CLEANER_DISPENSER, RpWarning, status, 0); - if(Head_Type == HEAD_TYPE_FLAT) - { - Trigger_Head_Actuators_Control(ACTIN, LOW,false); - Report("IDS_Cleaning_MoveDown cleaning stop", __FILE__, __LINE__, Tdelay1, RpWarning, CleaningStageCounter, 0); - } + HeadCard_Actuators_Relocate(); + CleaningStageCounter = 0; + CleaningStage = CleaningStageIdle; + Report("IDS_Cleaning_Stop_Cleaning_Solution actuator relocate", __FILE__, __LINE__, CleaningStage, RpWarning, CleaningStageCounter, 0); return status; diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index 09ab89f24..ef80d3603 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -898,17 +898,18 @@ uint32_t Adjust_Right_TFU_Tension(double tension) return status; } -uint32_t ThreadPrepare_TensionCallback (int DancerId, double tension) +uint32_t ThreadPrepare_TensionCallback (int MotorId, double tension) { + MotorStop(MotorId,Hard_Hiz); if (PrepareWaitCount) { - ReportWithPackageFilter(ThreadFilter,"ThreadPrepare_TensionCallback",__FILE__,__LINE__,DancerId,RpWarning,PrepareWaitCount,0); + ReportWithPackageFilter(ThreadFilter,"ThreadPrepare_TensionCallback",__FILE__,__LINE__,MotorId,RpWarning,PrepareWaitCount,0); PrepareWaitCount--; } if ((PrepareWaitCount == 0)&&(PrepareState == true)) { PrepareState = false; - ReportWithPackageFilter(ThreadFilter,"ThreadPrepare_TensionCallback Prepare Ready",__FILE__,__LINE__,DancerId,RpWarning,PrepareWaitCount,0); + ReportWithPackageFilter(ThreadFilter,"ThreadPrepare_TensionCallback Prepare Ready",__FILE__,__LINE__,MotorId,RpWarning,PrepareWaitCount,0); PrepareReady(Module_Thread,ModuleDone); } return OK; -- cgit v1.3.1 From 05fc7b1f37ecc809acf65422a799a4d761b78acb Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Sun, 2 Aug 2020 16:34:59 +0300 Subject: Version 1.4.6.37 --- Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c | 2 +- .../Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c | 11 +++++------ .../Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c | 4 ++-- Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c | 5 +---- 4 files changed, 9 insertions(+), 13 deletions(-) (limited to 'Software/Embedded_SW') diff --git a/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c b/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c index 626a4ec8d..6fa7c0fdf 100644 --- a/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c +++ b/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c @@ -20,7 +20,7 @@ typedef struct } TangoVersion_t; -TangoVersion_t _gTangoVersion = {1,4,6,36}; +TangoVersion_t _gTangoVersion = {1,4,6,37}; #define BUILD_DATE __DATE__ char Dat[50] = BUILD_DATE; char _gTangoName [MAX_STRING_LEN] = "Tango01 ";//d diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c index 7a99b154f..800684813 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c @@ -569,6 +569,9 @@ uint32_t HeadCard_ActStubCallBackFunction(uint32_t IfIndex, uint32_t BusyFlag) / uint32_t HeadCard_Actuators_Stub(ACTUATORS Act_ID, bool Enable, bool Direction)//ENABLE/DISABLE, DOWN/UP/DONTCARE { uint32_t status = OK; + if (Head_Type != HEAD_TYPE_FLAT) + return OK; + Report("HeadCard_Actuators_Stub",__FILE__,Act_ID,(int)Enable,RpWarning,(int)Direction,0); if(Enable == true) @@ -586,9 +589,6 @@ uint32_t HeadCard_Actuators_Stub(ACTUATORS Act_ID, bool Enable, bool Direction)/ Head_I2C_EXP4_0x46.bits.OUTPUT_ACTLOW_ACTOT_ON = LOW; } - status |= Head_Write_IO_Reg(0x42,HIGH); - status |= Head_Write_IO_Reg(0x46,LOW_AND_HIGH); - //100msec delay - (need short command - Active LOW ) if (ActControlId == 0xFF) ActControlId = AddControlCallback("ctuatorControl", HeadCard_ActStubCallBackFunction, (eHundredMillisecond), TemplateDataReadCBFunction,Act_ID,0, 0 ); @@ -614,9 +614,6 @@ uint32_t HeadCard_Actuators_Stub(ACTUATORS Act_ID, bool Enable, bool Direction)/ } } - status |= Head_Write_IO_Reg(0x42,HIGH); - status |= Head_Write_IO_Reg(0x46,LOW_AND_HIGH); - return status; } @@ -790,6 +787,8 @@ uint32_t HeadCard_Actuators_Relocate_callback(uint32_t IfIndex, uint32_t BusyFla } uint32_t HeadCard_Actuators_Relocate(void) { + if (Head_Type != HEAD_TYPE_FLAT) + return OK; //if ((ActuatorLocating == ActuatorIdle)||(ActuatorLocating == ActuatorLocated)) { Trigger_Head_Actuators_Stub(ACTIN, DISABLE, DONTCARE); diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c index ed817f9cc..7963a9290 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c @@ -363,10 +363,10 @@ void DiagnosticLoadTemperature(int HeaterId, int temperature) ReportWithPackageFilter(DiagnosticsFilter,"wrong Heater Id",__FILE__,__LINE__,(int)HeaterId,RpError,(int)0,0); return; } - if ((temperature < 1000)||(temperature>28000)) //error read, all 0xF or all 0 + /*if ((temperature < 1000)||(temperature>28000)) //error read, all 0xF or all 0 { return; - } + }*/ HeaterTemperature[HeaterId][HeaterCounterIndex[HeaterId]] = temp/100; if (HeaterCounterIndex[HeaterId]