Hello, after a while i get this error. My hardware setup is a Arduino DUE and Ethernet shield and i use Mysql Connector to get_columns values from Db. (cur_mem1->get_columns())
Below you can see the code:
///// READ THES ROWS FROM DB /////
void readAndBroadcastData() {
// read from the database every loopDelay ms
if (millis() > syncTimer) {
// connect to database if not connected
if (!conn.connected()) {
Ethernet.begin(mac_addr, ip);
Serial.println("Connecting...");
delay(50);
if (!conn.connect(server_addr, 3306, user, password)) {
Serial.println("Connection failed.");
connCounter = connCounter + 1;
Serial.print("connCounter: ");
Serial.println(connCounter);
delay(50);
conn.close();
return;
}
}
MySQL_Cursor* cur_mem = new MySQL_Cursor(&conn);
MySQL_Cursor* cur_mem1 = new MySQL_Cursor(&conn);
//MySQL_Cursor *cur_mem_upd = new MySQL_Cursor(&conn);
//char query[180];
syncTimer = millis() + loopDelay;
sprintf(query, QUERY_READ, dbName_control, room_name_control);
if (conn.connected()) {
cur_mem1->execute(query);
connCounter = 0;
//checkRoom = true;
} else {
Serial.println("Connection failed.");
delay(50);
delete cur_mem1;
conn.close();
return;
}
column_names* cols = cur_mem1->get_columns();
// Read the rows from DB
// Broadcast all data read
row_values* row1 = NULL;
do {
row1 = cur_mem1->get_next_row();
if (row1 != NULL) {
////////Client 1////////
char* mTableCentralComp = row1->values[1];
if (strcmp(mTableCentralComp, "1") == 0) {
cl1[0] = "1";
statusChange1[0] = 1;
} else if (strcmp(mTableCentralComp, "0") == 0) {
cl1[0] = "0";
statusChange1[0] = 0;
}
char* secretPassage = row1->values[2];
if (strcmp(secretPassage, "1") == 0) {
cl2[0] = "1";
statusChange2[0] = 1;
} else if (strcmp(secretPassage, "0") == 0) {
cl2[0] = "0";
statusChange2[0] = 0;
}
char* magicLamp = row1->values[3];
if (strcmp(magicLamp, "1") == 0) {
cl3[0] = "1";
statusChange3[0] = 1;
} else if (strcmp(magicLamp, "0") == 0) {
cl3[0] = "0";
statusChange3[0] = 0;
}
char* magicCarpet = row1->values[4];
if (strcmp(magicCarpet, "1") == 0) {
cl3[1] = "1";
statusChange3[1] = 1;
} else if (strcmp(magicCarpet, "0") == 0) {
cl3[1] = "0";
statusChange3[1] = 0;
}
char* first_chest = row1->values[5];
if (strcmp(first_chest, "1") == 0) {
cl2[1] = "1";
statusChange2[1] = 1;
} else if (strcmp(first_chest, "0") == 0) {
cl2[1] = "0";
statusChange2[1] = 0;
}
char* second_chest = row1->values[6];
if (strcmp(second_chest, "1") == 0) {
cl3[2] = "1";
statusChange3[2] = 1;
cl2[2] = "1";
statusChange2[2] = 1;
cl4[1] = "1";
statusChange4[2] = 1;
} else if (strcmp(second_chest, "0") == 0 && chest2Bp == false) {
cl2[2] = "0";
statusChange2[2] = 0;
}
char* stairsComp = row1->values[7];
if (strcmp(stairsComp, "1") == 0) {
cl4[0] = "1";
statusChange4[0] = 1;
} else if (strcmp(stairsComp, "0") == 0) {
cl4[0] = "0";
statusChange4[0] = 0;
}
char* third_chest = row1->values[8];
if (strcmp(third_chest, "1") == 0) {
cl2[3] = "1";
statusChange2[3] = 1;
} else if (strcmp(third_chest, "0") == 0) {
cl2[3] = "0";
statusChange2[3] = 0;
}
char* risingColumn = row1->values[9];
if (strcmp(risingColumn, "1") == 0) {
cl5[0] = "1";
statusChange5[0] = 1;
} else if (strcmp(risingColumn, "0") == 0) {
cl5[0] = "0";
statusChange5[0] = 0;
}
char* secretPassage2 = row1->values[10];
if (strcmp(secretPassage2, "1") == 0) {
cl5[1] = "1";
statusChange5[1] = 1;
} else if (strcmp(secretPassage2, "0") == 0) {
cl5[1] = "0";
statusChange5[1] = 0;
}
char* bigDrawer = row1->values[11];
if (strcmp(bigDrawer, "1") == 0) {
cl6[0] = "1";
statusChange6[0] = 1;
} else if (strcmp(bigDrawer, "0") == 0) {
cl6[0] = "0";
statusChange6[0] = 0;
}
char* risingComp = row1->values[12];
if (strcmp(risingComp, "1") == 0) {
cl7[0] = "1";
statusChange7[0] = 1;
} else if (strcmp(risingComp, "0") == 0) {
cl7[0] = "0";
statusChange7[0] = 0;
}
char* keyRelease = row1->values[13];
if (strcmp(keyRelease, "1") == 0) {
cl3[3] = "1";
statusChange3[3] = 1;
} else if (strcmp(keyRelease, "0") == 0) {
cl3[3] = "0";
statusChange3[3] = 0;
}
char* exitDoor = row1->values[14];
if (strcmp(exitDoor, "1") == 0) {
cl1[1] = "1";
statusChange1[1] = 1;
} else if (strcmp(exitDoor, "0") == 0) {
cl1[1] = "0";
statusChange1[1] = 0;
}
char* reset_btn = row1->values[15];
if (strcmp(reset_btn, "1") == 0 && checkRst == false) {
rst = "1";
checkRst = true;
checkActiveRst = true;
cl2[4] = "0";
cl3[4] = "0";
cl2[2] = "0";
cl4[1] = "0";
chest2 = "0";
} else if (strcmp(reset_btn, "0") == 0 && checkRst == true) {
rst = "0";
checkRst = false;
//checkActiveRst = true;
}
char* start = row1->values[17];
if (strcmp(start, "1") == 0 && checkAct == false && rst == "0") {
activeSt = "1";
checkActiveRst = true;
checkAct = true;
//Serial.println("Start!");
} else if (strcmp(start, "0") == 0 && checkAct == true) {
activeSt = "0";
checkAct = false;
checkActDb = false;
checkActiveRst = true;
}
// char* test = row1->values[19];
// if (strcmp(test, "1") == 0 && checkTest == false) {
// checkTest = true;
// testMillis = currentMillis;
// activeSt = "1";
// checkActiveRst = true;
// Serial.println("Test Mode");
// } else if (strcmp(test, "0") == 0) {
// checkTest = false;
// }
statusChange();
//cur_mem1->free_row_buffer();
}
} while (row1 != NULL);
delete cur_mem1;
delete cur_mem;
//delete cur_mem_upd;
}
}
//// END OF READ COLUMNS ////
What could be the issue?
Any help woulb be much appreciated!
