[RS485] [Ethernet] [Timer]
- RS485 ㄴ MC9 Address 10 기준 PV? SV? 처리 ㄴ MC9 response time 150~250ms ㄴ 시간 감안하여 현재 PV every 1sec, SV every 5sec ㄴ 마지막 request 저장하여 수신시 데이터 처리 (수신데이터에 데이터 종류 없는 문제 방지) - Ethernet ㄴ 현 명령어 AI? AO! PV? SV? SV! 작성 ㄴ SV! 인 경우 485 send buff 앞에 저장하여 최우선순위 결정main
parent
320d2cee1a
commit
8429349d1b
Binary file not shown.
@ -1,14 +1,14 @@
|
|||||||
int aipin[] = {A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15};
|
const int aipin[] = {A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15};
|
||||||
|
|
||||||
void GPIO_setup(){
|
void GPIO_setup(){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void read_analog(int arr[], int size){
|
void read_analog(){
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
for(i = 0 ; i < size ; i++){
|
for(i = 0 ; i < Size_AI ; i++){
|
||||||
arr[i] = analogRead(aipin[i]);
|
Values_AI[i] = analogRead(aipin[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Binary file not shown.
@ -0,0 +1,54 @@
|
|||||||
|
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) {
|
||||||
|
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, "\r\n");
|
||||||
|
String output = "";
|
||||||
|
if (pos != nullptr) {
|
||||||
|
size_t len = pos - buff;
|
||||||
|
output = String(buff).substring(0, len);
|
||||||
|
|
||||||
|
// Shift remaining string to the start
|
||||||
|
memmove(buff, pos + 2, strlen(pos + 2) + 1);
|
||||||
|
}
|
||||||
|
return output;
|
||||||
|
}
|
Loading…
Reference in New Issue