Update simlight test

This commit is contained in:
Paul Dino Jones 2025-01-02 15:57:13 -05:00
parent b90dfdfc31
commit 0f29394aa7
1 changed files with 17 additions and 24 deletions

View File

@ -2,19 +2,13 @@
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h> #include <unistd.h>
#include <libserialport.h> #include <libserialport.h>
#include "../src/monocoque/simulatorapi/simapi/simapi/simdata.h" #include "../src/arduino/shiftlights/shiftlights.h"
/* Helper function for error handling. */ /* Helper function for error handling. */
int check(enum sp_return result); int check(enum sp_return result);
int main() int main()
{ {
SimData sd;
sd.maxrpm = 6500;
sd.rpms = 0;
sd.altitude = 10;
sd.gear = 1;
sd.velocity = 74;
char* port_name = "/dev/ttyACM0"; char* port_name = "/dev/ttyACM0";
@ -28,24 +22,30 @@ int main()
printf("Opening port.\n"); printf("Opening port.\n");
check(sp_open(port, SP_MODE_READ_WRITE)); check(sp_open(port, SP_MODE_READ_WRITE));
printf("Setting port to 9600 8N1, no flow control.\n"); printf("Setting port to 115200 8N1, no flow control.\n");
check(sp_set_baudrate(port, 9600)); check(sp_set_baudrate(port, 115200));
check(sp_set_bits(port, 8)); check(sp_set_bits(port, 8));
check(sp_set_parity(port, SP_PARITY_NONE)); check(sp_set_parity(port, SP_PARITY_NONE));
check(sp_set_stopbits(port, 1)); check(sp_set_stopbits(port, 1));
check(sp_set_flowcontrol(port, SP_FLOWCONTROL_NONE)); check(sp_set_flowcontrol(port, SP_FLOWCONTROL_NONE));
while ( sd.rpms <= sd.maxrpm ) ShiftLightsData sd;
int result;
unsigned int timeout = 2000;
size_t size = sizeof(ShiftLightsData);
for( sd.litleds = 0; sd.litleds < 7; sd.litleds++)
{ {
unsigned int timeout = 2000;
/* On success, sp_blocking_write() and sp_blocking_read() /* On success, sp_blocking_write() and sp_blocking_read()
* return the number of bytes sent/received before the * return the number of bytes sent/received before the
* timeout expired. We'll store that result here. */ * timeout expired. We'll store that result here. */
int result;
int size = sizeof(SimData);
/* Send data. */ /* Send data. */
result = check(sp_blocking_write(port, &sd, size, timeout)); result = check(sp_blocking_write(port, &sd, size, timeout));
@ -53,25 +53,18 @@ int main()
/* Check whether we sent all of the data. */ /* Check whether we sent all of the data. */
if (result == size) if (result == size)
{ {
printf("Sent %d bytes successfully, %i rpm.\n", size, sd.rpms); printf("Sent %d bytes successfully, %i lit leds.\n", size, sd.litleds);
} }
else else
{ {
printf("Timed out, %d/%d bytes sent.\n", result, size); printf("Timed out, %d/%d bytes sent.\n", result, size);
} }
sd.rpms += 1000;
if ( sd.rpms == sd.maxrpm + 1000 )
{
sd.rpms = 0;
}
if ( sd.rpms > sd.maxrpm )
{
sd.rpms = sd.maxrpm;
}
sleep(1); sleep(2);
} }
sd.litleds = 0;
result = check(sp_blocking_write(port, &sd, size, timeout));
check(sp_close(port)); check(sp_close(port));
sp_free_port(port); sp_free_port(port);