Remote: Add procedure to test if high-level remote functions are available
Removes need for updated version string.
This commit is contained in:
parent
bfda64c656
commit
fc6ca5bc06
|
@ -51,18 +51,7 @@ int remote_init(bool verbose)
|
|||
}
|
||||
if (verbose)
|
||||
DEBUG_WARN("Remote is %s\n", &construct[1]);
|
||||
char *p = strstr(&construct[1], "(Firmware v");
|
||||
if (!p)
|
||||
return -1;
|
||||
int major = 0, minor = 0, step = 0;
|
||||
int res = sscanf(p, "(Firmware v%d.%d.%d", &major, &minor, &step);
|
||||
if (res !=3)
|
||||
return -1;
|
||||
uint32_t version = major * 10000 + minor * 100 + step;
|
||||
/* check that firmare is > 1.6.1 */
|
||||
if (version < 10602)
|
||||
return -1;
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool remote_target_get_power(void)
|
||||
|
@ -346,7 +335,12 @@ static void remote_ap_mem_write_sized(
|
|||
|
||||
void remote_adiv5_dp_defaults(ADIv5_DP_t *dp)
|
||||
{
|
||||
if (remote_init(false)) {
|
||||
uint8_t construct[REMOTE_MAX_MSG_SIZE];
|
||||
int s = snprintf((char *)construct, REMOTE_MAX_MSG_SIZE, "%s",
|
||||
REMOTE_HL_CHECK_STR);
|
||||
platform_buffer_write(construct, s);
|
||||
s = platform_buffer_read(construct, REMOTE_MAX_MSG_SIZE);
|
||||
if ((!s) || (construct[0] == REMOTE_RESP_ERR)) {
|
||||
DEBUG_WARN(
|
||||
"Please update BMP firmware for substantial speed increase!\n");
|
||||
return;
|
||||
|
|
|
@ -309,6 +309,9 @@ void remotePacketProcessHL(uint8_t i, char *packet)
|
|||
remote_ap.apsel = remotehston(2, packet);
|
||||
remote_ap.dp = &remote_dp;
|
||||
switch (index) {
|
||||
case REMOTE_HL_CHECK:
|
||||
_respond(REMOTE_RESP_OK, 0);
|
||||
break;
|
||||
case REMOTE_DP_READ:
|
||||
packet += 2;
|
||||
uint16_t addr16 = remotehston(4, packet);
|
||||
|
|
|
@ -84,6 +84,7 @@
|
|||
#define REMOTE_RESP_NOTSUP 'N'
|
||||
|
||||
/* High level protocol elements */
|
||||
#define REMOTE_HL_CHECK 'C'
|
||||
#define REMOTE_HL_PACKET 'H'
|
||||
#define REMOTE_DP_READ 'd'
|
||||
#define REMOTE_LOW_ACCESS 'L'
|
||||
|
@ -142,6 +143,7 @@
|
|||
#define HEX_U32(x) '%', '0', '8', 'x'
|
||||
#define CHR(x) '%', 'c'
|
||||
|
||||
#define REMOTE_HL_CHECK_STR (char []){ REMOTE_SOM, REMOTE_HL_PACKET, REMOTE_HL_CHECK, REMOTE_EOM, 0 }
|
||||
#define REMOTE_MEM_READ_STR (char []){ REMOTE_SOM, REMOTE_HL_PACKET, REMOTE_MEM_READ, \
|
||||
HEX_U32(address), HEX_U32(count), REMOTE_EOM, 0 }
|
||||
#define REMOTE_DP_READ_STR (char []){ REMOTE_SOM, REMOTE_HL_PACKET, REMOTE_DP_READ, \
|
||||
|
|
Loading…
Reference in New Issue