Build text base interface
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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(¤t_pos, true);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user