Firmware support or user instructions for jdy-33 fix #3944
This commit is contained in:
parent
628e5c1f44
commit
23514b7e5c
|
@ -26,7 +26,7 @@ static const char *commands[5];
|
||||||
static int numCommands = 0;
|
static int numCommands = 0;
|
||||||
static int setBaudIdx = -1;
|
static int setBaudIdx = -1;
|
||||||
|
|
||||||
static char cmdHello[5];
|
static char cmdHello[30];
|
||||||
static char cmdBaud[25];
|
static char cmdBaud[25];
|
||||||
static char cmdName[30];
|
static char cmdName[30];
|
||||||
static char cmdPin[16];
|
static char cmdPin[16];
|
||||||
|
@ -51,6 +51,7 @@ static void runCommands() {
|
||||||
if (!btProcessIsStarted)
|
if (!btProcessIsStarted)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
efiPrintf("Sleeping...");
|
||||||
chThdSleepMilliseconds(1000); // safety
|
chThdSleepMilliseconds(1000); // safety
|
||||||
|
|
||||||
// Store current serial port speed - we're going to change it
|
// Store current serial port speed - we're going to change it
|
||||||
|
@ -80,25 +81,34 @@ static void runCommands() {
|
||||||
// change the port speed
|
// change the port speed
|
||||||
engineConfiguration->tunerStudioSerialSpeed = restoreAndExit ? savedSerialSpeed : baudRates[baudIdx];
|
engineConfiguration->tunerStudioSerialSpeed = restoreAndExit ? savedSerialSpeed : baudRates[baudIdx];
|
||||||
|
|
||||||
|
efiPrintf("Restarting at %d", engineConfiguration->tunerStudioSerialSpeed);
|
||||||
|
|
||||||
tsChannel->start(engineConfiguration->tunerStudioSerialSpeed);
|
tsChannel->start(engineConfiguration->tunerStudioSerialSpeed);
|
||||||
|
|
||||||
chThdSleepMilliseconds(10); // safety
|
chThdSleepMilliseconds(10); // safety
|
||||||
prevBaudIdx = baudIdx;
|
prevBaudIdx = baudIdx;
|
||||||
|
} else {
|
||||||
|
efiPrintf("Running at %d", engineConfiguration->tunerStudioSerialSpeed);
|
||||||
}
|
}
|
||||||
|
|
||||||
// exit if all commands were sent
|
// exit if all commands were sent
|
||||||
if (restoreAndExit)
|
if (restoreAndExit)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
const char * command = commands[cmdIdx];
|
||||||
|
efiPrintf("Sending %s", command);
|
||||||
|
|
||||||
// send current command
|
// send current command
|
||||||
tsChannel->write((uint8_t*)commands[cmdIdx], strlen(commands[cmdIdx]));
|
tsChannel->write((uint8_t*)command, strlen(command));
|
||||||
|
|
||||||
// waiting for an answer
|
// waiting for an answer
|
||||||
bool wasAnswer = false;
|
bool wasAnswer = false;
|
||||||
if (tsChannel->readTimeout(buffer, 2, btModuleTimeout) == 2) {
|
int received = tsChannel->readTimeout(buffer, 2, btModuleTimeout);
|
||||||
|
if (received == 2) {
|
||||||
wasAnswer = (buffer[0] == 'O' && buffer[1] == 'K') ||
|
wasAnswer = (buffer[0] == 'O' && buffer[1] == 'K') ||
|
||||||
(buffer[0] == '+' && (buffer[1] >= 'A' && buffer[1] <= 'Z'));
|
(buffer[0] == '+' && (buffer[1] >= 'A' && buffer[1] <= 'Z'));
|
||||||
}
|
}
|
||||||
|
efiPrintf("received %d byte(s) %d [%c][%c]", received, wasAnswer, buffer[0], buffer[1]);
|
||||||
|
|
||||||
// wait 1 second and skip all remaining response bytes from the bluetooth module
|
// wait 1 second and skip all remaining response bytes from the bluetooth module
|
||||||
while (true) {
|
while (true) {
|
||||||
|
@ -123,10 +133,11 @@ static void runCommands() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// the connection is already restored to the current baud rate, so print the result
|
// the connection is already restored to the current baud rate, so print the result
|
||||||
if (cmdIdx == numCommands)
|
if (cmdIdx == numCommands) {
|
||||||
efiPrintf("SUCCESS! All commands (%d of %d) passed to the Bluetooth module!", cmdIdx, numCommands);
|
efiPrintf("SUCCESS! All commands (%d of %d) passed to the Bluetooth module!", cmdIdx, numCommands);
|
||||||
else
|
} else {
|
||||||
efiPrintf("FAIL! Only %d commands (of %d total) were passed to the Bluetooth module!", cmdIdx, numCommands);
|
efiPrintf("FAIL! Only %d commands (of %d total) were passed to the Bluetooth module!", cmdIdx, numCommands);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static THD_FUNCTION(btThreadEntryPoint, arg) {
|
static THD_FUNCTION(btThreadEntryPoint, arg) {
|
||||||
|
|
Loading…
Reference in New Issue