1
0
mirror of synced 2025-01-18 17:04:06 +01:00

Add in JVS pass through

This commit is contained in:
Bobby Dilley 2022-09-01 15:55:29 +01:00
parent fb8b25bc86
commit 8cc876554a
3 changed files with 33 additions and 12 deletions

View File

@ -205,22 +205,18 @@ int baseboardIoctl(int fd, unsigned int request, void *data)
}
else if (jvsFileDescriptor >= 0)
{
write(jvsFileDescriptor, inputBuffer, jvsCommand.srcSize);
for (int i = 0; i < jvsCommand.srcSize; i++)
printf("%X ", inputBuffer[i]);
printf("\n");
for (int i = 0; i < jvsCommand.srcSize; i++)
{
if (inputBuffer[i] == 0xF0)
{
printf("SENSE LINE 3\n");
setSenseLine(3);
}
else if (inputBuffer[i] == 0xF1)
{
setSenseLine(1);
printf("SENSE LINE 1\n");
}
}
}
@ -270,12 +266,13 @@ int baseboardIoctl(int fd, unsigned int request, void *data)
}
else if (jvsFileDescriptor >= 0)
{
int count = read(jvsFileDescriptor, &sharedMemory[jvsCommand.destAddress], 255);
int count = readBytes(jvsFileDescriptor, &sharedMemory[jvsCommand.destAddress], 255);
if (count == -1)
count = 0;
_data[2] = jvsCommand.destAddress;
_data[3] = count;
for (int i = 0; i < count; i++)
printf("%X ", sharedMemory[jvsCommand.destAddress + i]);
printf("\n");
}
}
break;

View File

@ -17,9 +17,10 @@
#include <sys/ioctl.h>
#include <linux/serial.h>
#include "serial.h"
#define TIMEOUT_SELECT 200
int setSerialAttributes(int fd, int myBaud)
{
struct termios options;
@ -38,8 +39,8 @@ int setSerialAttributes(int fd, int myBaud)
options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
options.c_oflag &= ~OPOST;
options.c_cc[VMIN] = 10;
options.c_cc[VTIME] = 10; // One seconds (10 deciseconds)
options.c_cc[VMIN] = 0;
options.c_cc[VTIME] = 0; // One seconds (10 deciseconds)
tcsetattr(fd, TCSANOW, &options);
@ -64,3 +65,25 @@ int setSerialAttributes(int fd, int myBaud)
return 0;
}
int readBytes(int fd, unsigned char *buffer, int amount)
{
fd_set fd_serial;
struct timeval tv;
FD_ZERO(&fd_serial);
FD_SET(fd, &fd_serial);
tv.tv_sec = 0;
tv.tv_usec = TIMEOUT_SELECT * 1000;
int filesReadyToRead = select(fd + 1, &fd_serial, NULL, NULL, &tv);
if (filesReadyToRead < 1)
return 0;
if (!FD_ISSET(fd, &fd_serial))
return 0;
return read(fd, buffer, amount);
}

View File

@ -1,2 +1,3 @@
int setSerialAttributes(int fd, int myBaud);
int readBytes(int fd, unsigned char *buffer, int amount);