Browse Source

update

master
tianjialong 2 years ago
parent
commit
343553741c
  1. BIN
      cpp/a.out
  2. 61
      cpp/main.cpp
  3. 2
      cpp/uart.cpp

BIN
cpp/a.out

61
cpp/main.cpp

@ -15,25 +15,66 @@
using namespace iflytop;
class Uart g_uart;
int g_rec_len;
void *thread_uart_send(void *arg) {
while (1) {
if (g_rec_len > 0) {
g_uart.send((char *)arg, g_rec_len);
g_rec_len = 0;
}
usleep(1000);
}
}
void *thread_uart_receive(void *arg) {
while (1) {
if (g_rec_len == 0) {
g_rec_len = g_uart.receive((char *)arg, 128);
}
usleep(1000);
}
}
int main(int argc, char *argv[]) {
int rec_len;
char buffer[128];
char share_buffer[128];
pthread_t pid1, pid2;
pthread_attr_t *pthread_arr1, *pthread_arr2;
pthread_arr1 = NULL;
pthread_arr2 = NULL;
if (argc != 3) {
cout << "input error,please input ttyS and baudrate" << endl;
return 0;
return -1;
}
if (g_uart.open(argv[1], argv[2]) < 0) {
cout << "open uart error" << endl;
return -2;
} else {
cout << "open uart success" << endl;
}
g_uart.open(argv[1], argv[2]);
if (pthread_create(&pid1, pthread_arr1, thread_uart_send, (void *)&share_buffer) != 0) {
cout << "create uart send thread error" << endl;
return -3;
} else {
cout << "create uart send thread success" << endl;
}
if (pthread_create(&pid2, pthread_arr2, thread_uart_receive, (void *)&share_buffer) != 0) {
cout << "create uart receive thread error" << endl;
return -4;
} else {
cout << "create uart receive thread success" << endl;
}
while (1) {
rec_len = g_uart.receive(buffer, sizeof(buffer));
if (rec_len > 0) {
g_uart.send(buffer, rec_len);
memset(buffer, 0, sizeof(buffer));
}
usleep(1000);
usleep(100000);
}
pthread_join(pid1, NULL);
pthread_join(pid2, NULL);
return 0;
}

2
cpp/uart.cpp

@ -35,7 +35,7 @@ int Uart::open(string path, string ratestr) {
}
if (s_baudratemap.find(ratestr) == s_baudratemap.end()) {
return -1;
return -2;
}
m_rate = ratestr;

Loading…
Cancel
Save