Init
This commit is contained in:
commit
417bae019b
|
|
@ -0,0 +1,30 @@
|
||||||
|
//
|
||||||
|
// Created by zemon on 10.04.23.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef UVEOS_ON_NATION_ACCELCALIBRATION_H
|
||||||
|
#define UVEOS_ON_NATION_ACCELCALIBRATION_H
|
||||||
|
|
||||||
|
#include "VersionsInfoTable.h"
|
||||||
|
#include "XfcProtProcessorUtilDefines.h"
|
||||||
|
#include "VariablesTable.h"
|
||||||
|
#include "CarFlipDetection.h"
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
tVariablesTable *externTable;
|
||||||
|
tCarFlipDetection *flipDetect;
|
||||||
|
float val_x;
|
||||||
|
float val_y;
|
||||||
|
float val_z;
|
||||||
|
float angleCos;
|
||||||
|
} tAccelCalibData;
|
||||||
|
|
||||||
|
|
||||||
|
void XfcProtMethodsAdd_AccelCalibration(tXfcProtTable *protTab, tAccelCalibData *accelCalibData);
|
||||||
|
|
||||||
|
void XfcProtMethodsInit_AccelCalibration(tAccelCalibData *env, tCarFlipDetection *carFlipDetection, tVariablesTable *varsTab);
|
||||||
|
|
||||||
|
uint8_t XfcProtMethod_AccelCalibration(tXfcArray *request, tXfcArray *response, tAccelCalibData *accelCalibData);
|
||||||
|
|
||||||
|
#endif //UVEOS_ON_NATION_ACCELCALIBRATION_H
|
||||||
|
|
@ -0,0 +1,81 @@
|
||||||
|
//
|
||||||
|
// Created by zemon on 10.04.23.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
#include "ComIntCmd/AccelCalibration.h"
|
||||||
|
|
||||||
|
void XfcProtMethodsAdd_AccelCalibration(tXfcProtTable *protTab, tAccelCalibData *accelCalibData) {
|
||||||
|
XfcProtTable_AddStatic(protTab, "ACCEL_CALIBRATION", XfcProtMethod_AccelCalibration, accelCalibData);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void XfcProtMethodsInit_AccelCalibration(tAccelCalibData *env, tCarFlipDetection *carFlipDetection, tVariablesTable *varsTab) {
|
||||||
|
env->flipDetect = carFlipDetection;
|
||||||
|
env->externTable = varsTab;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t recordVector(tAccelCalibData *accelCalibData) {
|
||||||
|
char *nameFiled;
|
||||||
|
tVariableDescriptor *descriptor;
|
||||||
|
|
||||||
|
if (VariablesTable_RequireChange(accelCalibData->externTable, 10)) {
|
||||||
|
|
||||||
|
nameFiled = "FLIP_DETECT_GRAVITY_X";
|
||||||
|
descriptor = VariablesTable_GetByName(accelCalibData->externTable, nameFiled, strlen(nameFiled));
|
||||||
|
memcpy(descriptor->addr, &accelCalibData->flipDetect->current.value.x,
|
||||||
|
sizeof(accelCalibData->flipDetect->current.value.x));
|
||||||
|
|
||||||
|
nameFiled = "FLIP_DETECT_GRAVITY_Y";
|
||||||
|
descriptor = VariablesTable_GetByName(accelCalibData->externTable, nameFiled, strlen(nameFiled));
|
||||||
|
memcpy(descriptor->addr, &accelCalibData->flipDetect->current.value.y,
|
||||||
|
sizeof(accelCalibData->flipDetect->current.value.y));
|
||||||
|
|
||||||
|
nameFiled = "FLIP_DETECT_GRAVITY_Z";
|
||||||
|
descriptor = VariablesTable_GetByName(accelCalibData->externTable, nameFiled, strlen(nameFiled));
|
||||||
|
memcpy(descriptor->addr, &accelCalibData->flipDetect->current.value.z,
|
||||||
|
sizeof(accelCalibData->flipDetect->current.value.z));
|
||||||
|
|
||||||
|
VariablesTable_VariableChanged(accelCalibData->externTable, descriptor);
|
||||||
|
VariablesTable_ReleaseChange(accelCalibData->externTable);
|
||||||
|
|
||||||
|
//осовбождаем доступ к измененению настроек
|
||||||
|
VariablesTable_ReleaseChange(accelCalibData->externTable);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
//осовбождаем доступ к измененению настроек
|
||||||
|
VariablesTable_ReleaseChange(accelCalibData->externTable);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t recordAngle(tAccelCalibData *accelCalibData) {
|
||||||
|
char *nameFiled;
|
||||||
|
tVariableDescriptor *descriptor;
|
||||||
|
|
||||||
|
if (VariablesTable_RequireChange(accelCalibData->externTable, 10)) {
|
||||||
|
|
||||||
|
nameFiled = "FLIP_DETECT_TRESHOLD_ANGLE_COS";
|
||||||
|
descriptor = VariablesTable_GetByName(accelCalibData->externTable, nameFiled, strlen(nameFiled));
|
||||||
|
memcpy(descriptor->addr, &accelCalibData->angleCos, sizeof(accelCalibData->angleCos));
|
||||||
|
|
||||||
|
VariablesTable_VariableChanged(accelCalibData->externTable, descriptor);
|
||||||
|
|
||||||
|
//осовбождаем доступ к измененению настроек
|
||||||
|
VariablesTable_ReleaseChange(accelCalibData->externTable);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
//осовбождаем доступ к измененению настроек
|
||||||
|
VariablesTable_ReleaseChange(accelCalibData->externTable);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
uint8_t XfcProtMethod_AccelCalibration(tXfcArray *request, tXfcArray *response, tAccelCalibData *accelCalibData) {
|
||||||
|
|
||||||
|
recordVector(accelCalibData);
|
||||||
|
// recordAngle(accelCalibData);
|
||||||
|
|
||||||
|
return XFC_TRANSPORT_PROTOCOL_RESPONSE_RESULT_OK;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"dep": [
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "XfcTransportProtocol"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "BaseTypes"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cmake": {
|
||||||
|
"inc_dirs": [
|
||||||
|
"Inc"
|
||||||
|
],
|
||||||
|
"srcs": [
|
||||||
|
"Src/**.c"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue