Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Dominic Choi.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Solar Car!
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,41 @@ uint8_t validData; // Set bits 0, 1, 2 if the input array elements were valid

void trainingTask(uint8_t* data)
{
uint8_t motor1 = data[0];
uint8_t motor2 = data[1];
uint8_t lights = data[2];

uint8_t lstatus = (lights & 0b111);
uint8_t count;


if (data[0] == data[1] // Check if Motors are in sync
&& (((motor1 & 0b10000001) == 0b10000001) // check if forwards is positive
|| ((motor1 & 0b11000001) == 0b01000001) // check if backwards is negative
|| ((motor1 & 0b11111110) == 0))){ // or if motors off is 0 velocity

// Valid for both motors, since they should be in sync
outputArray[0] = data[0];
outputArray[1] = data[1];
validData |= 0b00000011;
} else {
outputArray[0] = 0;
outputArray[1] = 0;
}

// Check Lights validity

while(lstatus){ // count how many bits are set in bits 0-2
count += lstatus & 1;
lstatus >>= 1;
}

if (count <= 1){ // if there is 1 or less bits set
outputArray[2] = data[2];
validData |= 0b00000100;

} else { // if 2+ headlight statuses exist
outputArray[2] = 0;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,34 @@ extern uint8_t validData;

void runTrainingTests()
{
// Run all the tests here using RUN_TEST()
UNITY_BEGIN();
RUN_TEST(test_EverythingIsValid());
RUN_TEST(test_EverythingIsInvalid());
RUN_TEST(test_OnlyLightsIsInvalid());
RUN_TEST(test_MotorsAreInvalid());
return UNITY_END();
}

void test_EverythingValid()
{

uint8_t data[3] = {0b10000001, 0b100000001, 0b1111001};
trainingTask(data);
}

void test_EverythingInvalid()
{

uint8_t data[3] = {0b10000001, 0b000000001, 0b1111111};
trainingTask(data);
}

void test_OnlyLightsInvalid()
{

uint8_t data[3] = {0b10000001, 0b100000001, 0b1111111};
trainingTask(data);
}

void test_OnlyMotorsInvalid()
{

uint8_t data[3] = {0b10100000, 0b10100000, 0b1111001};
trainingTask(data);
}
Loading