int write_buff_c(char* buff, char c) { size_t len = strlen(buff); if (len + 1 < BUFF_SIZE) { buff[len] = c; buff[len + 1] = '\0'; // 문자열의 끝을 나타내는 null 문자를 추가해야 합니다. return 1; } else { Serial.println("Not enough space in buffer! (write c)"); return 0; } } int write_buff(char* buff, String str) { // check if last characters are not CRLF and append if not if (!str.endsWith(CRLF)) { str += CRLF; } const char* cstr = str.c_str(); size_t len = strlen(cstr); if (strlen(buff) + len < BUFF_SIZE) { strcat(buff, cstr); numOf485++; return 1; } else { Serial.println("Not enough space in buffer! (write)"); return 0; } } int write_buff_first(char* buff, String str) { const char* cstr = str.c_str(); size_t len = strlen(cstr); if (strlen(buff) + len < BUFF_SIZE) { char temp[BUFF_SIZE]; strcpy(temp, buff); // copy existing content to temp buffer strcpy(buff, cstr); // copy new string to buffer strcat(buff, temp); // append old content to buffer numOf485++; return 1; } else { Serial.println("Not enough space in buffer! (prepend)"); return 0; } } String read_buff(char* buff) { char* pos = strstr(buff, CRLF); String output = ""; if (pos != nullptr) { size_t len = pos - buff; output = String(buff).substring(0, len); //output += CRLF; // Shift remaining string to the start memmove(buff, pos + 2, strlen(pos + 2) + 1); } return output; }