mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-03-06 21:00:31 +01:00
port management imporvements
This commit is contained in:
parent
8d8a6c338f
commit
73db5c95c8
1 changed files with 21 additions and 12 deletions
|
@ -112,7 +112,11 @@ int H8300::configureSerialPort(){
|
||||||
|
|
||||||
struct termios options;
|
struct termios options;
|
||||||
tcgetattr(fd, &options);
|
tcgetattr(fd, &options);
|
||||||
|
if (tcgetattr(fd, &options) == -1){
|
||||||
|
printf("H8/300 failed to configure the serial port\n");
|
||||||
|
close(fd);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
//Set walker params. We can potentially make this different if we want to talk to walker EMUS
|
//Set walker params. We can potentially make this different if we want to talk to walker EMUS
|
||||||
|
|
||||||
|
|
||||||
|
@ -129,20 +133,22 @@ int H8300::configureSerialPort(){
|
||||||
options.c_cflag |= CS8;
|
options.c_cflag |= CS8;
|
||||||
options.c_cflag &= ~CRTSCTS;
|
options.c_cflag &= ~CRTSCTS;
|
||||||
options.c_cflag |= CREAD | CLOCAL;
|
options.c_cflag |= CREAD | CLOCAL;
|
||||||
|
options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
|
||||||
|
options.c_iflag &= ~(IXON | IXOFF | IXANY); // Disable software flow control
|
||||||
|
options.c_iflag &= ~(ICRNL | INLCR);
|
||||||
// options.c_cc[VTIME] = 1;
|
// options.c_cc[VTIME] = 1;
|
||||||
// options.c_cc[VMIN] = 0;
|
// options.c_cc[VMIN] = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
options.c_iflag = 0;
|
||||||
|
options.c_oflag = 0;
|
||||||
|
|
||||||
|
tcflush(fd, TCIOFLUSH);
|
||||||
tcflush(fd, TCIFLUSH);
|
tcflush(fd, TCIFLUSH);
|
||||||
tcsetattr(fd, TCSANOW, &options);
|
tcsetattr(fd, TCSANOW, &options);
|
||||||
|
|
||||||
if (tcgetattr(fd, &options) == -1){
|
|
||||||
printf("H8/300 failed to configure the serial port\n");
|
|
||||||
close(fd);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -158,7 +164,10 @@ int H8300::readSerialPort(){
|
||||||
usleep(4000);
|
usleep(4000);
|
||||||
len = read(fd, tempBuf, sizeof(tempBuf));
|
len = read(fd, tempBuf, sizeof(tempBuf));
|
||||||
|
|
||||||
if (len < 0) break;
|
if (len < 0){
|
||||||
|
// perror("err:");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
for(int i = 0; i < len; i++){
|
for(int i = 0; i < len; i++){
|
||||||
|
|
||||||
|
@ -168,7 +177,7 @@ int H8300::readSerialPort(){
|
||||||
pointer = pointer + len;
|
pointer = pointer + len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tcflush(fd, TCIOFLUSH);
|
||||||
tcflush(fd, TCIFLUSH);
|
tcflush(fd, TCIFLUSH);
|
||||||
recvLen = pointer;
|
recvLen = pointer;
|
||||||
|
|
||||||
|
@ -236,7 +245,7 @@ int H8300::readSerialPort(){
|
||||||
}
|
}
|
||||||
|
|
||||||
// printf("STOPPED\n");
|
// printf("STOPPED\n");
|
||||||
// getchar();
|
// getchatcflush(fd, TCIOFLUSH);r();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -254,7 +263,7 @@ int H8300::readSerialPort(){
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
int H8300::sendSerialPort(){
|
int H8300::sendSerialPort(){
|
||||||
|
tcflush(fd, TCIOFLUSH);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue