aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Embedded_SW')
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.c107
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.h45
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_ */