Build text base interface

This commit is contained in:
AlexanderHD27
2025-01-09 03:10:03 +01:00
parent b040662551
commit 2824bdac6e
17 changed files with 53 additions and 18 deletions

View File

@@ -52,12 +52,15 @@ struct BoardMessurements {
int x_num;
int y_num;
int x_offset;
int y_offset;
int cell_x;
int cell_y;
};
BoardMessurements calcBoardMessurements(MotorPosition p0, MotorPosition p1, int grid_x, int grid_y);
MotorPosition calcPosition(BoardMessurements * messurements, int x, int y);
BoardMessurements calcBoardMessurements(MotorPosition p0, MotorPosition p1, int grid_x, int grid_y, MotorPosition offset);
MotorPosition calcPosition(BoardMessurements * messurements, int x, int y, bool offset);
void vTaskInitMotorHome(void *pvParameters);
@@ -94,7 +97,7 @@ public:
bool getMotorEnabled();
void setBoardMessurements(BoardMessurements messurements);
void gotoPosition(int x, int y);
void gotoPosition(int x, int y, bool offset);
};
void homeXY(TMC2209_step_dual * driver, HOME_AXIS_DIRECTION direction, unsigned int speed, unsigned int backupSpace, MotorPosition * last_pos);

View File

@@ -41,9 +41,9 @@ void CoreXYMaschine::setBoardMessurements(BoardMessurements messurements) {
this->boardMessurements = messurements;
}
void CoreXYMaschine::gotoPosition(int x, int y) {
void CoreXYMaschine::gotoPosition(int x, int y, bool offset) {
xSemaphoreTake(xMoveMutex, portMAX_DELAY);
MotorPosition pos = calcPosition(&this->boardMessurements, x, y);
MotorPosition pos = calcPosition(&this->boardMessurements, x, y, offset);
if(posUnknow || untilNextHome == 0) {
homeFast(&current_pos, true);

View File

@@ -2,7 +2,7 @@
#include <math.h>
BoardMessurements calcBoardMessurements(MotorPosition p0, MotorPosition p1, int grid_x, int grid_y) {
BoardMessurements calcBoardMessurements(MotorPosition p0, MotorPosition p1, int grid_x, int grid_y, MotorPosition offset) {
BoardMessurements res;
MotorPosition * smaller;
@@ -16,6 +16,9 @@ BoardMessurements calcBoardMessurements(MotorPosition p0, MotorPosition p1, int
bigger = &p0;
}
res.x_offset = smaller->x - offset.x;
res.y_offset = smaller->y - offset.y;
res.x_num = grid_x;
res.y_num = grid_y;
@@ -31,11 +34,16 @@ BoardMessurements calcBoardMessurements(MotorPosition p0, MotorPosition p1, int
return res;
}
MotorPosition calcPosition(BoardMessurements * messurements, int x, int y) {
MotorPosition calcPosition(BoardMessurements * messurements, int x, int y, bool offset) {
MotorPosition res;
res.x = messurements->x_padding + (x * messurements->cell_x);
res.y = messurements->y_padding + (y * messurements->cell_y);
if(offset) {
res.x -= messurements->x_offset;
res.y -= messurements->y_offset;
}
return res;
}

View File

@@ -155,7 +155,7 @@ void onRxPackage(void * args, char *data, uint16_t len, GobotRPCTypes type, Gobo
uint8_t cellX = data[24];
uint8_t cellY = data[25];
BoardMessurements messurements = calcBoardMessurements(p1, p2, cellX, cellY);
BoardMessurements messurements = calcBoardMessurements(p1, p2, cellX, cellY, p3);
appData->machine->setBoardMessurements(messurements);
g_appData.gobotrpc_ni->sendPackage(txBuffer, 0, GobotRPCTypes::RESPONSE, GobotRPCNumber::SET_PADDING);
break;
@@ -165,7 +165,7 @@ void onRxPackage(void * args, char *data, uint16_t len, GobotRPCTypes type, Gobo
int x = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3];
int y = (data[4] << 24) | (data[5] << 16) | (data[6] << 8) | data[7];
bool offset = data[8] > 0;
appData->machine->gotoPosition(x, y);
appData->machine->gotoPosition(x, y, offset);
g_appData.gobotrpc_ni->sendPackage(txBuffer, 0, GobotRPCTypes::RESPONSE, GobotRPCNumber::GOTO);
break;
}