333 lines
12 KiB
C
333 lines
12 KiB
C
|
|
|
|||
|
|
#include "DataProcess.h"
|
|||
|
|
|
|||
|
|
GetDataValue MeasurementData_Nearbit; //<2F><><EFBFBD>˲<EFBFBD><CBB2><EFBFBD>ֵ
|
|||
|
|
GetDataValue MeasurementData_Farbit; //Զ<>˲<EFBFBD><CBB2><EFBFBD>ֵ
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>Ȩ<EFBFBD>ط<EFBFBD>Χ
|
|||
|
|
void get_weights_scores_range(GetFeatureValue* feature)
|
|||
|
|
{
|
|||
|
|
// <20><><EFBFBD><EFBFBD> weights_normal
|
|||
|
|
float weights_normal[ROWS][COLS_NORMAL] = {
|
|||
|
|
{0.02782361153708092f, 0.07425339118419849f, 0.12759042354281214f, 0.12291090933910485f, 0.057825758510349136f},
|
|||
|
|
{0.027564071230094304f, 0.034914011597243846f, 0.03428079481697248f, 0.01543479395828397f, 0.07718536996417004f},
|
|||
|
|
{0.019488141538371105f, 0.03279628785143933f, 0.07694254491891732f, 0.010422855733018327f, 0.022348371109245885f},
|
|||
|
|
{0.30791780437151484f, 0.0433871871689603f, 0.03287291407974492f, 0.22075997995717458f, 0.11441410143843696f},
|
|||
|
|
{0.041967380936312006f, 0.03073173344712312f, 0.10570414834976417f, 0.038395937926823887f, 0.4457716705304025f},
|
|||
|
|
{0.08006381221588085f, 0.016748822025924905f, 0.02814835728381258f, 0.06657550807501712f, 8.589391929335013e-15f},
|
|||
|
|
{0.08219625282668795f, 0.010732292674554226f, 0.030018966581668607f, 0.09360232815172899f, 0.081724331840547f},
|
|||
|
|
{0.029540427522817107f, 0.04301860142552467f, 0.02658344150030427f, 0.12924826197604972f, 0.012136341727289321f},
|
|||
|
|
{0.07933570776110352f, 0.014970424884683423f, 0.055678037816256847f, 0.04312882532615478f, 0.01724498153241749f},
|
|||
|
|
{0.13425223325463498f, 0.20821822793072117f, 0.18170578370731505f, 0.07162196775825218f, 0.05237352825266105f},
|
|||
|
|
{0.03346582696060625f, 0.031537897016211264f, 0.07854916838700497f, 0.038058057152586464f, 0.018421685430336208f},
|
|||
|
|
{0.02450787860501228f, 0.020163834961829358f, 0.032592734764566145f, 0.027770217521932265f, 0.06720024464681389f},
|
|||
|
|
{0.02270181024144438f, 0.151882044343984f, 0.05846495235235432f, 0.0692621315241782f, 0.03335361501730471f},
|
|||
|
|
{0.02469783116319416f, 0.24075458769337896f, 0.09324354614973776f, 0.04024389436146122f, 8.589391929335013e-15f},
|
|||
|
|
{0.0644772098352455f, 0.04589065579422297f, 0.03762418574876846f, 0.012564331238233306f, 8.589391929335013e-15f}
|
|||
|
|
};
|
|||
|
|
// <20><><EFBFBD><EFBFBD> weights_abnormal
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7BC><EFBFBD><EFBFBD>
|
|||
|
|
float std_scores_normal[COLS_NORMAL] = { 4.3300748832172875f,1.0124176131894556f,1.2331122890852892f,2.2906345596071116f,1.8271316432346785f };
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>䷶Χֵ
|
|||
|
|
float range_values[COLS_NORMAL] = { 0.14035106713875936f,0.07188706493959258f,0.34388788541653376f,0.6280178217431671f,0.30525313799525955f };
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
float min_values[ROWS] = {
|
|||
|
|
0.0f, // ѹ<><D1B9><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>Сֵ
|
|||
|
|
0.0f, // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ
|
|||
|
|
0.0f, // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ
|
|||
|
|
0.0f, // <20><>ѹ<EFBFBD><D1B9>ֵ<EFBFBD><D6B5>Сֵ
|
|||
|
|
0.0f, // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ
|
|||
|
|
0.0f, // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ
|
|||
|
|
0.0f, // Ť<>ؾ<EFBFBD>ֵ<EFBFBD><D6B5>Сֵ
|
|||
|
|
0.0f, // Ť<>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>Сֵ
|
|||
|
|
0.0f, // Ť<>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>Сֵ
|
|||
|
|
0.0f, // ת<>پ<EFBFBD>ֵ<EFBFBD><D6B5>Сֵ
|
|||
|
|
0.0f, // ת<>ٷ<EFBFBD><D9B7><EFBFBD><EFBFBD><EFBFBD>Сֵ
|
|||
|
|
0.0f, // ת<>ٷ<EFBFBD><D9B7><EFBFBD><EFBFBD><EFBFBD>Сֵ
|
|||
|
|
0.0f, // X<><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ
|
|||
|
|
0.0f // Y<><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
float max_values[ROWS] = {
|
|||
|
|
10.0f, // ѹ<><D1B9><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ֵ
|
|||
|
|
5.0f, // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
5.0f, // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
155.0f, // <20><>ѹ<EFBFBD><D1B9>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ֵ
|
|||
|
|
50.0f, // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
100.0f, // <20><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
10.0f, // Ť<>ؾ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ֵ
|
|||
|
|
20.0f, // Ť<>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
100.0f, // Ť<>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
120.0f, // ת<>پ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ֵ
|
|||
|
|
30.0f, // ת<>ٷ<EFBFBD><D9B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
3150.0f, // ת<>ٷ<EFBFBD><D9B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
5.0f, // X<><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
5.0f // Y<><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|||
|
|
for (int i = 0; i < ROWS; i++) {
|
|||
|
|
feature->min_values[i] = min_values[i];
|
|||
|
|
feature->max_values[i] = max_values[i];
|
|||
|
|
for (int j = 0; j < COLS_NORMAL; j++) {
|
|||
|
|
feature->weights_normal[i][j] = weights_normal[i][j];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
for (int i = 0; i < COLS_NORMAL; i++) {
|
|||
|
|
feature->std_scores_normal[i] = std_scores_normal[i];
|
|||
|
|
feature->range_values[i] = range_values[i];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
// <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void normalize_data(float* data, float* min_values, float* max_values, float* data_nor, int size)
|
|||
|
|
{
|
|||
|
|
for (int i = 0; i < size; i++) {
|
|||
|
|
data_nor[i] = 1 + 9 * (data[i] - min_values[i]) / (max_values[i] - min_values[i]);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>˷<EFBFBD><CBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Ȩ<>ؾ<EFBFBD><D8BE><EFBFBD>
|
|||
|
|
void matrix_multiply(float* data, float weights[ROWS][COLS_NORMAL], float* result, int rows, int cols)
|
|||
|
|
{
|
|||
|
|
for (int i = 0; i < cols; i++) {
|
|||
|
|
result[i] = 0.0f;
|
|||
|
|
for (int j = 0; j < rows; j++) {
|
|||
|
|
result[i] += data[j] * weights[j][i];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
float relative_error(float value, float standard) {
|
|||
|
|
return fabs((value - standard) / standard);
|
|||
|
|
}
|
|||
|
|
// <20>ж<EFBFBD><D0B6><EFBFBD>
|
|||
|
|
int Zuanjin_weights_judge(float* data, GetFeatureValue* dataFeature) {
|
|||
|
|
float data_nor[ROWS];
|
|||
|
|
normalize_data(data, dataFeature->min_values, dataFeature->max_values, data_nor, ROWS);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD> normal <20>ķ<EFBFBD><C4B7><EFBFBD>
|
|||
|
|
float scores_normal[COLS_NORMAL];
|
|||
|
|
matrix_multiply(data_nor, dataFeature->weights_normal, scores_normal, ROWS, COLS_NORMAL);
|
|||
|
|
|
|||
|
|
float min_error = 1000000;
|
|||
|
|
int con_index = -1;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
for (int i = 0; i < COLS_NORMAL; i++) {
|
|||
|
|
float error = relative_error(scores_normal[i], dataFeature->std_scores_normal[i]);
|
|||
|
|
if (error < min_error) {
|
|||
|
|
min_error = error;
|
|||
|
|
con_index = i;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
float con_value = scores_normal[con_index];
|
|||
|
|
float range_normal = dataFeature->range_values[con_index];
|
|||
|
|
float value_big = dataFeature->std_scores_normal[con_index] * (1 + range_normal);
|
|||
|
|
float value_small = dataFeature->std_scores_normal[con_index] * (1 - range_normal);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ڷ<EFBFBD>Χ<EFBFBD><CEA7>
|
|||
|
|
if (value_small < con_value && con_value < value_big)
|
|||
|
|
{
|
|||
|
|
return con_index;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
return -1;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
unsigned char Get_MeasureData(GetDataValue DataValeNear) {
|
|||
|
|
unsigned char Temp; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
GetFeatureValue dataFeature;
|
|||
|
|
get_weights_scores_range(&dataFeature);
|
|||
|
|
|
|||
|
|
float InPress = DataValeNear.Mean_InPress; //<2F><>ѹƽ<D1B9><C6BD>ֵ
|
|||
|
|
float OutPress = DataValeNear.Mean_OutPress; //<2F><>ѹƽ<D1B9><C6BD>ֵ
|
|||
|
|
float Mean_WOB = DataValeNear.Mean_WOB; //<2F><>ѹƽ<D1B9><C6BD>ֵ
|
|||
|
|
float Mean_Torque = DataValeNear.Mean_Torque; //Ť<><C5A4>ƽ<EFBFBD><C6BD>ֵ
|
|||
|
|
float Mean_RPM = DataValeNear.Mean_RPM; //ת<><D7AA>ƽ<EFBFBD><C6BD>ֵ
|
|||
|
|
float Mean_InTemprature = DataValeNear.Mean_InTemprature; //<2F><><EFBFBD><EFBFBD><EFBFBD>¶<EFBFBD>ƽ<EFBFBD><C6BD>ֵ
|
|||
|
|
float Mean_OutTemprature = DataValeNear.Mean_OutTemprature; //<2F><><EFBFBD><EFBFBD><EFBFBD>¶<EFBFBD>ƽ<EFBFBD><C6BD>ֵ
|
|||
|
|
float Mean_AxisX = DataValeNear.Mean_AxisX; //X<><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>ֵ
|
|||
|
|
float Mean_AxisY = DataValeNear.Mean_AxisY; //Y<><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>ֵ
|
|||
|
|
float Mean_AxisZ = DataValeNear.Mean_AxisZ; //Z<><5A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>ֵ
|
|||
|
|
float Mean_InDielectric = DataValeNear.Mean_InDielectric; //<2F><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD>ƽ<EFBFBD><C6BD>ֵ
|
|||
|
|
float Mean_OutDielectric = DataValeNear.Mean_OutDielectric; //<2F><><EFBFBD>ս<EFBFBD><D5BD><EFBFBD>ƽ<EFBFBD><C6BD>ֵ
|
|||
|
|
|
|||
|
|
float Different_Press = DataValeNear.Different_Press; //ѹ<><D1B9><EFBFBD><EFBFBD>ֵ
|
|||
|
|
float Energy_InPress = DataValeNear.Energy_InPress; //<2F><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>ֵ
|
|||
|
|
float Energy_OutPress = DataValeNear.Energy_OutPress; //<2F><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>ֵ
|
|||
|
|
float Amplitude_WOB = DataValeNear.Amplitude_WOB; //<2F><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>ֵ
|
|||
|
|
float Variance_WOB = DataValeNear.Variance_WOB; //<2F><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>
|
|||
|
|
float Amplitude_Torque = DataValeNear.Amplitude_Torque; //Ť<>ط<EFBFBD><D8B7><EFBFBD>ֵ
|
|||
|
|
float Variance_Torque = DataValeNear.Variance_Torque; //Ť<>ط<EFBFBD><D8B7><EFBFBD>
|
|||
|
|
float Amplitude_RPM = DataValeNear.Amplitude_RPM; //ת<>ٷ<EFBFBD><D9B7><EFBFBD>ֵ
|
|||
|
|
float Variance_RPM = DataValeNear.Variance_RPM; //ת<>ٷ<EFBFBD><D9B7><EFBFBD>
|
|||
|
|
float Vibration_AxisX = DataValeNear.Vibration_AxisX; //X<><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
float Vibration_AxisY = DataValeNear.Vibration_AxisY; //Y<><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
float Vibration_AxisZ = DataValeNear.Vibration_AxisZ; //Z<><5A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
float Variance_Vibration = DataValeNear.Variance_Vibration; //<2F><EFBFBD><F1B6AFB7><EFBFBD>
|
|||
|
|
|
|||
|
|
float data[15];
|
|||
|
|
data[0] = Different_Press;
|
|||
|
|
data[1] = Energy_InPress;
|
|||
|
|
data[2] = Energy_OutPress;
|
|||
|
|
data[3] = Mean_WOB;
|
|||
|
|
data[4] = Amplitude_WOB;
|
|||
|
|
data[5] = Variance_WOB;
|
|||
|
|
data[6] = Mean_Torque;
|
|||
|
|
data[7] = Amplitude_Torque;
|
|||
|
|
data[8] = Variance_Torque;
|
|||
|
|
data[9] = Mean_RPM;
|
|||
|
|
data[10] = Amplitude_RPM;
|
|||
|
|
data[11] = Variance_RPM;
|
|||
|
|
data[12] = Vibration_AxisX;
|
|||
|
|
data[13] = Vibration_AxisY;
|
|||
|
|
data[14] = Vibration_AxisZ;
|
|||
|
|
|
|||
|
|
int con_result = Zuanjin_weights_judge(data, &dataFeature);
|
|||
|
|
|
|||
|
|
if (con_result == 1)
|
|||
|
|
{
|
|||
|
|
Temp = 'A';
|
|||
|
|
};
|
|||
|
|
if (con_result == 2)
|
|||
|
|
{
|
|||
|
|
Temp = 'B';
|
|||
|
|
}
|
|||
|
|
if (con_result == 3)
|
|||
|
|
{
|
|||
|
|
Temp = 'C';
|
|||
|
|
}
|
|||
|
|
if (con_result == 4)
|
|||
|
|
{
|
|||
|
|
Temp = 'D';
|
|||
|
|
}
|
|||
|
|
if (con_result == 5)
|
|||
|
|
{
|
|||
|
|
Temp = 'E';
|
|||
|
|
}
|
|||
|
|
if (con_result == -1)
|
|||
|
|
{
|
|||
|
|
Temp = 'F';
|
|||
|
|
}
|
|||
|
|
return Temp; // <20><><EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void DataCompute(void)
|
|||
|
|
{
|
|||
|
|
uint8_t i;
|
|||
|
|
GetDataValue DataValeNear = {
|
|||
|
|
.Mean_InPress = 0.f, //<2F><>ѹƽ<D1B9><C6BD>ֵ
|
|||
|
|
.Mean_OutPress = 0.f, //<2F><>ѹƽ<D1B9><C6BD>ֵ
|
|||
|
|
.Mean_WOB = 0.f, //<2F><>ѹƽ<D1B9><C6BD>ֵ
|
|||
|
|
.Mean_Torque = 2.399f,
|
|||
|
|
.Mean_RPM = 4.293f,
|
|||
|
|
.Mean_InTemprature = 22.74f,
|
|||
|
|
.Mean_OutTemprature = 0.93f,
|
|||
|
|
.Mean_AxisX = 1.08f,
|
|||
|
|
.Mean_AxisY = 0.32f,
|
|||
|
|
.Mean_AxisZ = 0.3f,
|
|||
|
|
.Mean_InDielectric = 4.2f,
|
|||
|
|
.Mean_OutDielectric = 3.8f,
|
|||
|
|
.Different_Press = 2.5f,
|
|||
|
|
.Energy_InPress = 10.0f,
|
|||
|
|
.Energy_OutPress = 8.5f,
|
|||
|
|
.Amplitude_WOB = 5.0f,
|
|||
|
|
.Variance_WOB = 0.8f,
|
|||
|
|
.Amplitude_Torque = 2.3f,
|
|||
|
|
.Variance_Torque = 1.0f,
|
|||
|
|
.Amplitude_RPM = 150.0f,
|
|||
|
|
.Variance_RPM = 2.5f,
|
|||
|
|
.Vibration_AxisX = 0.1f,
|
|||
|
|
.Vibration_AxisY = 0.15f,
|
|||
|
|
.Vibration_AxisZ = 0.2f,
|
|||
|
|
.Variance_Vibration = 0.05f
|
|||
|
|
};
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
for(i = 0;i < DATALENG;i++)
|
|||
|
|
{
|
|||
|
|
DataValeNear.DataValue[i] = MeasurementData_Nearbit.DataValue[i];
|
|||
|
|
}
|
|||
|
|
unsigned char con_index = Get_MeasureData(DataValeNear);
|
|||
|
|
// <20><>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD>
|
|||
|
|
// printf("The integer is: %d\n", con_index);
|
|||
|
|
UART_SendByte(con_index);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
void Get_Data_Process(void)
|
|||
|
|
{
|
|||
|
|
if(g_Data.Tim1Count1sFlag)//<2F><>ʱ<EFBFBD><CAB1>־
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־Ϊ1,<2C><><EFBFBD>ߵȴ<DFB5><C8B4><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>͵ڶ<CDB5><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷֱ<DAB7><D6B1>ж<EFBFBD>
|
|||
|
|
if(g_Data.GetUart1OverFlag) //<2F><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
switch(g_Data.Uart1SendCommendFlag)
|
|||
|
|
{
|
|||
|
|
case 0:
|
|||
|
|
Send_Slave(1); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD>˹<EFBFBD><CBB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
g_Data.Uart1SendCommendFlag = 1;
|
|||
|
|
g_Data.Uart1OverCount = 0; //<2F><>ʱ<EFBFBD><CAB1>ʱ<EFBFBD><CAB1>־
|
|||
|
|
g_Data.GetUart1OverFlag = 0; //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
break;
|
|||
|
|
case 1:
|
|||
|
|
Send_Slave(2); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD>˹<EFBFBD><CBB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
g_Data.Uart1SendCommendFlag = 2;
|
|||
|
|
g_Data.Uart1OverCount = 0; //<2F><>ʱ<EFBFBD><CAB1>ʱ<EFBFBD><CAB1>־
|
|||
|
|
g_Data.GetUart1OverFlag = 0; //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
break;
|
|||
|
|
default:
|
|||
|
|
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if(g_Data.GetUart3OverFlag) //<2F><><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
switch(g_Data.Uart3SendCommendFlag)
|
|||
|
|
{
|
|||
|
|
case 0:
|
|||
|
|
Send_Slave(3); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD>˹<EFBFBD><CBB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
g_Data.Uart3SendCommendFlag = 1;
|
|||
|
|
g_Data.Uart3OverCount = 0; //<2F><>ʱ<EFBFBD><CAB1>ʱ<EFBFBD><CAB1>־
|
|||
|
|
g_Data.GetUart3OverFlag = 0; //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
break;
|
|||
|
|
case 1:
|
|||
|
|
Send_Slave(4); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD>˹<EFBFBD><CBB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
g_Data.Uart3SendCommendFlag = 2;
|
|||
|
|
g_Data.Uart3OverCount = 0; //<2F><>ʱ<EFBFBD><CAB1>ʱ<EFBFBD><CAB1>־
|
|||
|
|
g_Data.GetUart3OverFlag = 0; //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
break;
|
|||
|
|
default:
|
|||
|
|
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//1s<31>ڶ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD><EFBFBD><EFBFBD>1s<31><73>־
|
|||
|
|
if((g_Data.Uart1SendCommendFlag==2)&&(g_Data.Uart3SendCommendFlag==2))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
g_Data.Tim1Count1sFlag = _FALSE;
|
|||
|
|
g_Data.Uart1SendCommendFlag = 0;
|
|||
|
|
g_Data.Uart3SendCommendFlag = 0;
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD>
|
|||
|
|
g_Data.GetComplate_Flag = 1;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if(g_Data.GetComplate_Flag)
|
|||
|
|
{
|
|||
|
|
if((g_Data.GetUart1OverFlag)&&(g_Data.GetUart3OverFlag))
|
|||
|
|
{
|
|||
|
|
DataCompute();
|
|||
|
|
g_Data.GetComplate_Flag = 0;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|