diff options
| author | Avi Levkovich <avi@twine-s.com> | 2020-12-28 16:45:42 +0200 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2020-12-28 16:45:42 +0200 |
| commit | 7304ec47c65430cf4202a02b54ca18fbc0d6a646 (patch) | |
| tree | 101507896edc350f8d9fbbeb37be4ba21eb0ffd0 /Software/Embedded_SW/Embedded | |
| parent | 1cb99b7e98491a9064eb4c87b89991b5301528c1 (diff) | |
| download | Tango-7304ec47c65430cf4202a02b54ca18fbc0d6a646.tar.gz Tango-7304ec47c65430cf4202a02b54ca18fbc0d6a646.zip | |
update btsr
Diffstat (limited to 'Software/Embedded_SW/Embedded')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.c | 107 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.h | 45 |
2 files changed, 100 insertions, 52 deletions
diff --git a/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.c b/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.c index dfc2c6cfc..93d6b2cc4 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.c +++ b/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.c @@ -138,7 +138,6 @@ void InitConsole_BTSR_UART4(int32_t ui32SysClock) SysCtlPeripheralEnable(SYSCTL_PERIPH_UART4); // // Enable GPIO port A which is used for UART4 pins. - // TODO: change this to whichever GPIO port you are using. // SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); @@ -888,9 +887,14 @@ uint8_t BTSR_State_Machine(UFeeder_Index UFeeder_i) BTSR[UFeeder_i].Command[i] = BTSR_RX_Buff[0]; //print response + command ID } - else if(((i == METERS_TOTAL_COUNTER_RESET_LOW_38) && (BTSR_RX_Buff[1] != 0x06)) || - ((i == METERS_TOTAL_COUNTER_RESET_HIGH_40) && (BTSR_RX_Buff[1] != 0x1E)) || - ((i == METERS_TOTAL_COUNTER_RESET_HIGHEST_42) && (BTSR_RX_Buff[1] != 0x48)) ) +// else if(((i == METERS_TOTAL_COUNTER_RESET_LOW_38) && (BTSR_RX_Buff[1] != 0x06)) || +// ((i == METERS_TOTAL_COUNTER_RESET_HIGH_40) && (BTSR_RX_Buff[1] != 0x1E)) || +// ((i == METERS_TOTAL_COUNTER_RESET_HIGHEST_42) && (BTSR_RX_Buff[1] != 0x48)) ) +// { + else if( (i == METERS_TOTAL_COUNTER_RESET_38_40_42) && + ( ((BTSR[UFeeder_i].Length_Resolution == LOW) && (BTSR_RX_Buff[1] != 0x06)) || + ((BTSR[UFeeder_i].Length_Resolution == HIGH) && (BTSR_RX_Buff[1] != 0x1E)) || + ((BTSR[UFeeder_i].Length_Resolution == HIGHEST) && (BTSR_RX_Buff[1] != 0x48)) ) ) { status = ERROR; BTSR[UFeeder_i].Command[i] = BTSR_RX_Buff[1]; @@ -919,14 +923,17 @@ uint8_t BTSR_State_Machine(UFeeder_Index UFeeder_i) case RESETS_ALL_THE_COUNTERS_36: BTSR_Errors_Counter_Reset(UFeeder_i); break; - case METERS_TOTAL_COUNTER_RESET_LOW_38: - BTSR_Meters_Total_Counter_Reset(UFeeder_i, LOW); - break; - case METERS_TOTAL_COUNTER_RESET_HIGH_40: - BTSR_Meters_Total_Counter_Reset(UFeeder_i, HIGH); - break; - case METERS_TOTAL_COUNTER_RESET_HIGHEST_42: - BTSR_Meters_Total_Counter_Reset(UFeeder_i, HIGHEST); +// case METERS_TOTAL_COUNTER_RESET_LOW_38: +// BTSR_Meters_Total_Counter_Reset(UFeeder_i, LOW); +// break; +// case METERS_TOTAL_COUNTER_RESET_HIGH_40: +// BTSR_Meters_Total_Counter_Reset(UFeeder_i, HIGH); +// break; +// case METERS_TOTAL_COUNTER_RESET_HIGHEST_42: +// BTSR_Meters_Total_Counter_Reset(UFeeder_i, HIGHEST); +// break; + case METERS_TOTAL_COUNTER_RESET_38_40_42: + BTSR_Meters_Total_Counter_Reset(UFeeder_i, BTSR[UFeeder_i].Length_Resolution); break; } BTSR[UFeeder_i].Command[i] = Get_Set_resp; @@ -954,17 +961,20 @@ uint8_t BTSR_State_Machine(UFeeder_Index UFeeder_i) ReportWithPackageFilter(ThreadFilter,"BTSR VERSION",__FILE__,UFeeder_i,(BTSR[UFeeder_i].Info.Byte.BOARD_HW_VERSION << 8) | BTSR[UFeeder_i].Info.Byte.BOOTLOADER_SW_VERSION,RpMessage,(BTSR[UFeeder_i].Info.Byte.SW_VERSION << 8) | BTSR[UFeeder_i].Info.Byte.SW_UNDER_VERSION,0); } else - if((i == METERS_TOTAL_COUNTER_READ_LOW_37) || (i == METERS_TOTAL_COUNTER_READ_HIGH_39) || (i == METER_TOTAL_COUNTER_READ_HIGHEST_41)) + //if((i == METERS_TOTAL_COUNTER_READ_LOW_37) || (i == METERS_TOTAL_COUNTER_READ_HIGH_39) || (i == METER_TOTAL_COUNTER_READ_HIGHEST_41)) + if(METER_TOTAL_COUNTER_READ_37_39_41) { for(j = 0; j < 6; j++) BTSR_Meters.Buf[j] = BTSR_RX_Buff[j]; status |= Check_Received_CheckSum(BTSR[UFeeder_i].ID, 0x16, BTSR_Meters.Buf, 6); temp = (float)(BTSR_Meters.Data.Uint32) * PI * BTSR[UFeeder_i].Radius_Meter; - if(i == METERS_TOTAL_COUNTER_READ_HIGH_39) + //if(i == METERS_TOTAL_COUNTER_READ_HIGH_39) + if(BTSR[UFeeder_i].Length_Resolution == HIGH) temp /=12.0; else - if(i == METER_TOTAL_COUNTER_READ_HIGHEST_41) + //if(i == METER_TOTAL_COUNTER_READ_HIGHEST_41) + if(BTSR[UFeeder_i].Length_Resolution == HIGHEST) temp /=750.0; BTSR[UFeeder_i].LengthInMeter = temp; @@ -985,14 +995,17 @@ uint8_t BTSR_State_Machine(UFeeder_Index UFeeder_i) case DEVICE_INFORMATION_READ_10: BTSR_Info_Read(UFeeder_i); break; - case METERS_TOTAL_COUNTER_READ_LOW_37: - BTSR_Meters_Total_Counter_Read(UFeeder_i, LOW); - break; - case METERS_TOTAL_COUNTER_READ_HIGH_39: - BTSR_Meters_Total_Counter_Read(UFeeder_i, HIGH); - break; - case METER_TOTAL_COUNTER_READ_HIGHEST_41: - BTSR_Meters_Total_Counter_Read(UFeeder_i, HIGHEST); +// case METERS_TOTAL_COUNTER_READ_LOW_37: +// BTSR_Meters_Total_Counter_Read(UFeeder_i, LOW); +// break; +// case METERS_TOTAL_COUNTER_READ_HIGH_39: +// BTSR_Meters_Total_Counter_Read(UFeeder_i, HIGH); +// break; +// case METER_TOTAL_COUNTER_READ_HIGHEST_41: +// BTSR_Meters_Total_Counter_Read(UFeeder_i, HIGHEST); +// break; + case METER_TOTAL_COUNTER_READ_37_39_41: + BTSR_Meters_Total_Counter_Read(UFeeder_i, BTSR[UFeeder_i].Length_Resolution); break; } @@ -1004,30 +1017,54 @@ uint8_t BTSR_State_Machine(UFeeder_Index UFeeder_i) return status; } +void BTSR_Read_Errors_Status(UFeeder_Index UFeeder_i)//Every 1 second. 3 seconds debouce for on/off +{ + BTSR[UFeeder_i].Command[ALARM_AND_ENABLING_STATUS_READ_30] = Read_Command; +} + +void BTSR_Read_Length(UFeeder_Index UFeeder_i, uint8_t Length_Resolution)//Every 100msec during thread movement +{ + BTSR[UFeeder_i].Length_Resolution = Length_Resolution; + + BTSR[UFeeder_i].Command[METER_TOTAL_COUNTER_READ_37_39_41] = Set_Command; +} + +void BTSR_Reset_Length(UFeeder_Index UFeeder_i, uint8_t Length_Resolution)//before job +{ + BTSR[UFeeder_i].Length_Resolution = Length_Resolution; + + BTSR[UFeeder_i].Command[METERS_TOTAL_COUNTER_RESET_38_40_42] = Set_Command; +} + +void BTSR_Reset_Status(UFeeder_Index UFeeder_i)// +{ + + BTSR[UFeeder_i].Command[ALARM_STATUS_RESET_35] = Set_Command; +} + +void BTSR_Reset_Counters(UFeeder_Index UFeeder_i)// +{ + + BTSR[UFeeder_i].Command[RESETS_ALL_THE_COUNTERS_36] = Set_Command; +} -void BTSR_Settings(UFeeder_Index UFeeder_i, uint8_t Application, uint8_t Yarn_Type, uint16_t Tension, uint16_t Tension_Err, uint16_t Alarm_Time, uint8_t Length_Resolution ) +void BTSR_RML_Settings(UFeeder_Index UFeeder_i, uint8_t Application, uint8_t Yarn_Type, uint16_t Tension, uint16_t Tension_Err, uint16_t Alarm_Time ) { BTSR[UFeeder_i].Application = Application; BTSR[UFeeder_i].Yarn_Type = Yarn_Type; BTSR[UFeeder_i].Tension = Tension; BTSR[UFeeder_i].Tension_Err = Tension_Err; BTSR[UFeeder_i].Alarm_Time = Alarm_Time; - BTSR[UFeeder_i].Length_Resolution = Length_Resolution; BTSR[UFeeder_i].Command[ADVANCED_TENSION_PROGRAMMING_21] = Set_Command; BTSR[UFeeder_i].Command[APPLICATION_AND_YARN_TYPOLOGY_SET_27] = Set_Command; - BTSR[UFeeder_i].Command[ALARM_AND_ENABLING_STATUS_READ_30] = Read_Command; - BTSR[UFeeder_i].Command[ALARM_STATUS_RESET_35] = Set_Command; - BTSR[UFeeder_i].Command[RESETS_ALL_THE_COUNTERS_36] = Set_Command; - BTSR[UFeeder_i].Command[METER_TOTAL_COUNTER_READ_HIGHEST_41] = Set_Command; - BTSR[UFeeder_i].Command[METERS_TOTAL_COUNTER_RESET_HIGHEST_42] = Set_Command; } void BTSR_Init() { - uint8_t i = RUFeeder1; + UFeeder_Index i = RUFeeder1; for(i = RUFeeder1; i < MaxUFeeders; i++) { @@ -1038,8 +1075,14 @@ void BTSR_Init() BTSR[i].Command[CONFIGURATION_SET_15] = Set_Command; BTSR[i].Command[DEVICE_INFORMATION_READ_10] = Read_Command; + + BTSR_Reset_Status(i); + BTSR_Reset_Counters(i); + BTSR_Reset_Length(i,LOW); + BTSR_Reset_Length(i,HIGH); + BTSR_Reset_Length(i,HIGHEST); } - BTSR_Settings(RUFeeder1, SHOES, ALL_YARNS3, 1000, 10, 5, HIGHEST);//Test!!! --- need to move to RML + BTSR_RML_Settings(RUFeeder1, SHOES, ALL_YARNS3, 1000, 10, 5);//Test!!! --- need to move to RML } diff --git a/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.h b/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.h index 27ff8a525..28441b4d5 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.h +++ b/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.h @@ -60,30 +60,28 @@ typedef enum APPLICATION_AND_YARN_TYPOLOGY_READ_28 ,//3 ALARM_AND_ENABLING_STATUS_READ_30 ,//4 PC_LINK_READ_32 ,//5 - METERS_TOTAL_COUNTER_READ_LOW_37 ,//6 - METERS_TOTAL_COUNTER_READ_HIGH_39 ,//7 - METER_TOTAL_COUNTER_READ_HIGHEST_41 ,//8 - MAX_BTSR_READ ,//9 + METER_TOTAL_COUNTER_READ_37_39_41 ,//6 + + MAX_BTSR_READ ,//7 //BTSR_SET //return 0xFA/0xFB/0xF9 - DEVICE_CALIBRATION_11 ,//10 - BAUDRATE_SET_13 ,//11 - DISPLAY_LANGUAGE_SET_14 ,//12 - CONFIGURATION_SET_15 ,//13 - ADVANCED_CONFIGURATION_SET_17 ,//14 - INPUT_CURRENT_CONTROL_SET_20 ,//15 - ADVANCED_TENSION_PROGRAMMING_21 ,//16 - ADVANCED_STYLE_LOAD_25 ,//17 - APPLICATION_AND_YARN_TYPOLOGY_SET_27 ,//18 - WORK_TENSION_AND_OPERATION_STATUS_SET_29 ,//19 - ALARM_STATUS_RESET_35 ,//20 - RESETS_ALL_THE_COUNTERS_36 ,//21 + DEVICE_CALIBRATION_11 ,//8 + BAUDRATE_SET_13 ,//9 + DISPLAY_LANGUAGE_SET_14 ,//10 + CONFIGURATION_SET_15 ,//11 + ADVANCED_CONFIGURATION_SET_17 ,//12 + INPUT_CURRENT_CONTROL_SET_20 ,//13 + ADVANCED_TENSION_PROGRAMMING_21 ,//14 + ADVANCED_STYLE_LOAD_25 ,//15 + APPLICATION_AND_YARN_TYPOLOGY_SET_27 ,//16 + WORK_TENSION_AND_OPERATION_STATUS_SET_29 ,//17 + ALARM_STATUS_RESET_35 ,//18 + RESETS_ALL_THE_COUNTERS_36 ,//19 //return device + Function code - METERS_TOTAL_COUNTER_RESET_LOW_38 ,//22 - METERS_TOTAL_COUNTER_RESET_HIGH_40 ,//23 - METERS_TOTAL_COUNTER_RESET_HIGHEST_42 ,//24 - MAX_BTSR_SET //25 + METERS_TOTAL_COUNTER_RESET_38_40_42 ,//20 + + MAX_BTSR_SET //21 }BTSR_CMD; typedef enum @@ -171,6 +169,13 @@ uint8_t BTSR_Send_Buf_3xADD1(uint8_t *Buf, uint8_t size);//Only for commands wit void InitConsole_BTSR_UART4(int32_t ui32SysClock); uint8_t BTSR_State_Machine(UFeeder_Index UFeeder_i); + void BTSR_Init(); +void BTSR_RML_Settings(UFeeder_Index UFeeder_i, uint8_t Application, uint8_t Yarn_Type, uint16_t Tension, uint16_t Tension_Err, uint16_t Alarm_Time ); +void BTSR_Reset_Counters(UFeeder_Index UFeeder_i);//After errors +void BTSR_Reset_Status(UFeeder_Index UFeeder_i);//After errors +void BTSR_Reset_Length(UFeeder_Index UFeeder_i, uint8_t Length_Resolution);//Before job +void BTSR_Read_Length(UFeeder_Index UFeeder_i, uint8_t Length_Resolution);//Every 100msec during thread movement +void BTSR_Read_Errors_Status(UFeeder_Index UFeeder_i);//Every 1 second. 3 seconds debouce for on/off #endif /* DRIVERS_UART_COMM_BTSR_BTSR_H_ */ |
