This commit is contained in:
Anders Sandstrom
2022-01-25 14:31:11 +01:00
parent 11c3e5c5b5
commit fa957a8bec
6 changed files with 891 additions and 1863 deletions

View File

@@ -151,8 +151,7 @@ ecmcGrbl::ecmcGrbl(char* configStr,
delay_ms(100);
printf(".");
}
delay_ms(100);
testGrbl();
delay_ms(100);
}
ecmcGrbl::~ecmcGrbl() {
@@ -235,20 +234,19 @@ void ecmcGrbl::doWriteWorker() {
printf("%s:%s:%d\n",__FILE__,__FUNCTION__,__LINE__);
for(;;) {
if(grblCommandBuffer_.size()>0 && getEcmcEpicsIOCState()==16 && autoEnableExecuted_) {
printf("%s:%s:%d: Command in buffer!!!\n",__FILE__,__FUNCTION__,__LINE__);
//printf("%s:%s:%d: Command in buffer!!!\n",__FILE__,__FUNCTION__,__LINE__);
epicsMutexLock(grblCommandBufferMutex_);
std::string command = grblCommandBuffer_.front() + '\n';
std::string command = grblCommandBuffer_.front();
grblCommandBuffer_.pop();
epicsMutexUnlock(grblCommandBufferMutex_);
printf("%s:%s:%d: Command length %d!!!\n",__FILE__,__FUNCTION__,__LINE__,strlen(command.c_str()));
printf("%s:%s:%d: Available bytes %d!!!\n",__FILE__,__FUNCTION__,__LINE__,serial_get_rx_buffer_available());
// wait for grbl
ecmc_write_command_serial(strdup(command.c_str()));
while(serial_get_rx_buffer_available()<=strlen(command.c_str())) {
//printf("%s:%s:%d: Command length %d!!!\n",__FILE__,__FUNCTION__,__LINE__,strlen(command.c_str()));
//printf("%s:%s:%d: Available bytes %d!!!\n",__FILE__,__FUNCTION__,__LINE__,serial_get_rx_buffer_available());
// wait for grbl
while(serial_get_rx_buffer_available() <= strlen(command.c_str())+1) {
delay_ms(2);
}
printf("%s:%s:%d: Writing!!\n",__FILE__,__FUNCTION__,__LINE__);
ecmc_write_command_serial(strdup(command.c_str()));
//printf("%s:%s:%d: Writing!!\n",__FILE__,__FUNCTION__,__LINE__);
}
else {
delay_ms(5);
@@ -330,6 +328,7 @@ void ecmcGrbl::doMainWorker() {
if(destructs_) {
return;
}
printf("********************after protocol_main_loop()********************************\n");
delay_ms(1);
}
}
@@ -464,33 +463,8 @@ std::string ecmcGrbl::to_string(int value) {
void ecmcGrbl::addCommand(std::string command) {
printf("%s:%s:%d:\n",__FILE__,__FUNCTION__,__LINE__);
epicsMutexLock(grblCommandBufferMutex_);
epicsMutexLock(grblCommandBufferMutex_);
grblCommandBuffer_.push(command.c_str());
epicsMutexUnlock(grblCommandBufferMutex_);
printf("%s:%s:%d: Buffer size %d\n",__FILE__,__FUNCTION__,__LINE__,grblCommandBuffer_.size());
}
void ecmcGrbl::testGrbl() {
// test some commands
//printf("Test command:$\n");
//ecmc_write_command_serial("$\n");
//sleep(1);
//printf("Test command:G0X10Y100\n");
//ecmc_write_command_serial("G0X10Y100\n");
//sleep(1);
//printf("Test command:$G\n");
//ecmc_write_command_serial("$G\n");
//sleep(1);
//printf("Test command:G4P4\n");
//ecmc_write_command_serial("G4P4\n");
//printf("Test command:G1X20Y200F20\n");
//ecmc_write_command_serial("G1X20Y200F20\n");
//printf("Test command:G4P4\n");
//ecmc_write_command_serial("G4P4\n");
//printf("Test command:G2X40Y220R20\n");
//ecmc_write_command_serial("G2X40Y220R20\n");
//printf("Test command:$\n");
//ecmc_write_command_serial("$\n");
}

View File

@@ -47,7 +47,6 @@ class ecmcGrbl : public asynPortDriver {
void addCommand(std::string command);
private:
void testGrbl();
void parseConfigStr(char *configStr);
void autoEnableAtStart();
bool getEcmcAxisEnabled(int axis_id);

View File

@@ -79,7 +79,7 @@ void protocol_main_loop()
delay_ms(1);
while((c = serial_read()) != SERIAL_NO_DATA) {
if ((c == '\n') || (c == '\r')) { // End of line reached
//printf("NEW_CHAR\n");
protocol_execute_realtime(); // Runtime command check point.
if (sys.abort) { return; } // Bail to calling function upon system abort
@@ -109,7 +109,7 @@ void protocol_main_loop()
// Reset tracking data for next line.
line_flags = 0;
char_counter = 0;
delay_us(100);
} else {
if (line_flags) {

View File

@@ -212,11 +212,12 @@ void ecmc_add_char_to_buffer(char data)
// write direct to serial buffer
void ecmc_write_command_serial(char* line) {
printf("Adding %s to buffer %s\n",line,serial_rx_buffer);
for(int i=0; i<strlen(line);i++) {
ecmc_add_char_to_buffer(line[i]);
ecmc_add_char_to_buffer(line[i]);
}
ecmc_add_char_to_buffer('\n');
printf("Added: %s",line);
printf("to buffer: %s\n",serial_rx_buffer);
free(line);
}

File diff suppressed because it is too large Load Diff

View File

@@ -67,123 +67,123 @@ epicsEnvUnset(ECMC_PLUGIN_CONFIG)
ecmcGrblAddCommand("G1X20Y20F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G2X0Y0R20");
ecmcGrblAddCommand("G0X10Y10");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X10Y0F360");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X50Y50F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X0Y0F360");
ecmcGrblAddCommand("G1X20Y20F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G2X0Y0R20");
ecmcGrblAddCommand("G0X10Y10");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X10Y0F360");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X50Y50F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X0Y0F360");
ecmcGrblAddCommand("G1X20Y20F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G2X0Y0R20");
ecmcGrblAddCommand("G0X10Y10");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X10Y0F360");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X50Y50F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X0Y0F360");
ecmcGrblAddCommand("G1X20Y20F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G2X0Y0R20");
ecmcGrblAddCommand("G0X10Y10");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X10Y0F360");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X50Y50F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X0Y0F360");
ecmcGrblAddCommand("G1X20Y20F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G2X0Y0R20");
ecmcGrblAddCommand("G0X10Y10");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X10Y0F360");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X50Y50F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X0Y0F360");
ecmcGrblAddCommand("G1X20Y20F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G2X0Y0R20");
ecmcGrblAddCommand("G0X10Y10");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X10Y0F360");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X50Y50F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X0Y0F360");
ecmcGrblAddCommand("G1X20Y20F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G2X0Y0R20");
ecmcGrblAddCommand("G0X10Y10");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X10Y0F360");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X50Y50F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X0Y0F360");
ecmcGrblAddCommand("G1X20Y20F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G2X0Y0R20");
ecmcGrblAddCommand("G0X10Y10");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X10Y0F360");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X50Y50F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X0Y0F360");
ecmcGrblAddCommand("G1X20Y20F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G2X0Y0R20");
ecmcGrblAddCommand("G0X10Y10");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X10Y0F360");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X50Y50F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X0Y0F360");
ecmcGrblAddCommand("G1X20Y20F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G2X0Y0R20");
ecmcGrblAddCommand("G0X10Y10");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X10Y0F360");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X50Y50F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X0Y0F360");
ecmcGrblAddCommand("G1X20Y20F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G2X0Y0R20");
ecmcGrblAddCommand("G0X10Y10");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X10Y0F360");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X50Y50F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X0Y0F360");
ecmcGrblAddCommand("G1X20Y20F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G2X0Y0R20");
ecmcGrblAddCommand("G0X10Y10");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X10Y0F360");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X50Y50F180");
ecmcGrblAddCommand("G4P1");
ecmcGrblAddCommand("G1X0Y0F360");
//ecmcGrblAddCommand("G0X10Y10");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X10Y0F360");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X50Y50F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X0Y0F360");
//ecmcGrblAddCommand("G1X20Y20F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G2X0Y0R20");
//ecmcGrblAddCommand("G0X10Y10");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X10Y0F360");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X50Y50F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X0Y0F360");
//ecmcGrblAddCommand("G1X20Y20F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G2X0Y0R20");
//ecmcGrblAddCommand("G0X10Y10");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X10Y0F360");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X50Y50F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X0Y0F360");
//ecmcGrblAddCommand("G1X20Y20F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G2X0Y0R20");
//ecmcGrblAddCommand("G0X10Y10");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X10Y0F360");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X50Y50F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X0Y0F360");
//ecmcGrblAddCommand("G1X20Y20F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G2X0Y0R20");
//ecmcGrblAddCommand("G0X10Y10");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X10Y0F360");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X50Y50F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X0Y0F360");
//ecmcGrblAddCommand("G1X20Y20F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G2X0Y0R20");
//ecmcGrblAddCommand("G0X10Y10");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X10Y0F360");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X50Y50F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X0Y0F360");
//ecmcGrblAddCommand("G1X20Y20F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G2X0Y0R20");
//ecmcGrblAddCommand("G0X10Y10");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X10Y0F360");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X50Y50F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X0Y0F360");
//ecmcGrblAddCommand("G1X20Y20F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G2X0Y0R20");
//ecmcGrblAddCommand("G0X10Y10");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X10Y0F360");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X50Y50F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X0Y0F360");
//ecmcGrblAddCommand("G1X20Y20F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G2X0Y0R20");
//ecmcGrblAddCommand("G0X10Y10");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X10Y0F360");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X50Y50F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X0Y0F360");
//ecmcGrblAddCommand("G1X20Y20F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G2X0Y0R20");
//ecmcGrblAddCommand("G0X10Y10");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X10Y0F360");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X50Y50F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X0Y0F360");
//ecmcGrblAddCommand("G1X20Y20F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G2X0Y0R20");
//ecmcGrblAddCommand("G0X10Y10");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X10Y0F360");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X50Y50F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X0Y0F360");
//ecmcGrblAddCommand("G1X20Y20F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G2X0Y0R20");
//ecmcGrblAddCommand("G0X10Y10");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X10Y0F360");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X50Y50F180");
//ecmcGrblAddCommand("G4P1");
//ecmcGrblAddCommand("G1X0Y0F360");
##############################################################################
## PLC 0