Skip to content

Commit 4637a84

Browse files
committed
pbdrv/bluetooth: Report correct program size.
Ensures the maximum program size can be saved on the hub. Fixes pybricks/support#739
1 parent 6171d8d commit 4637a84

File tree

10 files changed

+8
-20
lines changed

10 files changed

+8
-20
lines changed

bricks/cityhub/pbsys_app_config.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11

22
#define PBSYS_APP_HUB_FEATURE_FLAGS (PBIO_PYBRICKS_FEATURE_REPL | PBIO_PYBRICKS_FEATURE_USER_PROG_FORMAT_MULTI_MPY_V6)
3-
#define PBSYS_APP_USER_PROGRAM_SIZE (16 * 1024 - 512)
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11

22
#define PBSYS_APP_HUB_FEATURE_FLAGS (PBIO_PYBRICKS_FEATURE_REPL | PBIO_PYBRICKS_FEATURE_USER_PROG_FORMAT_MULTI_MPY_V6)
3-
#define PBSYS_APP_USER_PROGRAM_SIZE (255 * 1024)

bricks/movehub/pbsys_app_config.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11

22
#define PBSYS_APP_HUB_FEATURE_FLAGS (PBIO_PYBRICKS_FEATURE_USER_PROG_FORMAT_MULTI_MPY_V6)
3-
#define PBSYS_APP_USER_PROGRAM_SIZE (4 * 1024 - 128)

bricks/primehub/pbsys_app_config.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11

22
#define PBSYS_APP_HUB_FEATURE_FLAGS (PBIO_PYBRICKS_FEATURE_REPL | PBIO_PYBRICKS_FEATURE_USER_PROG_FORMAT_MULTI_MPY_V6)
3-
#define PBSYS_APP_USER_PROGRAM_SIZE (255 * 1024)
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11

22
#define PBSYS_APP_HUB_FEATURE_FLAGS (PBIO_PYBRICKS_FEATURE_REPL | PBIO_PYBRICKS_FEATURE_USER_PROG_FORMAT_MULTI_MPY_V6)
3-
#define PBSYS_APP_USER_PROGRAM_SIZE (16 * 1024 - 512)

lib/pbio/drv/bluetooth/bluetooth_stm32_bluenrg.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include <pbio/util.h>
2424
#include <pbio/version.h>
2525
#include <pbsys/app.h>
26+
#include <pbsys/program_load.h>
2627

2728
#include <contiki.h>
2829
#include <lego_lwp3.h>
@@ -845,7 +846,7 @@ static PT_THREAD(init_pybricks_service(struct pt *pt)) {
845846
PT_WAIT_WHILE(pt, write_xfer_size);
846847
{
847848
uint8_t buf[PBIO_PYBRICKS_HUB_CAPABILITIES_VALUE_SIZE];
848-
pbio_pybricks_hub_capabilities(buf, ATT_MTU - 3, PBSYS_APP_HUB_FEATURE_FLAGS, PBSYS_APP_USER_PROGRAM_SIZE);
849+
pbio_pybricks_hub_capabilities(buf, ATT_MTU - 3, PBSYS_APP_HUB_FEATURE_FLAGS, PBSYS_PROGRAM_LOAD_MAX_PROGRAM_SIZE);
849850
aci_gatt_update_char_value_begin(pybricks_service_handle, pybricks_hub_capabilities_char_handle,
850851
0, PBIO_PYBRICKS_HUB_CAPABILITIES_VALUE_SIZE, buf);
851852
}

lib/pbio/drv/bluetooth/bluetooth_stm32_cc2640.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include <pbio/util.h>
2525
#include <pbio/version.h>
2626
#include <pbsys/app.h>
27+
#include <pbsys/program_load.h>
2728

2829
#include <contiki.h>
2930
#include <lego_lwp3.h>
@@ -1013,7 +1014,7 @@ static void handle_event(uint8_t *packet) {
10131014
uint8_t buf[PBIO_PYBRICKS_HUB_CAPABILITIES_VALUE_SIZE];
10141015

10151016
// REVISIT: client MTU may be smaller, in which case we can't used fixed value for MTU
1016-
pbio_pybricks_hub_capabilities(buf, ATT_MAX_MTU_SIZE - 3, PBSYS_APP_HUB_FEATURE_FLAGS, PBSYS_APP_USER_PROGRAM_SIZE);
1017+
pbio_pybricks_hub_capabilities(buf, ATT_MAX_MTU_SIZE - 3, PBSYS_APP_HUB_FEATURE_FLAGS, PBSYS_PROGRAM_LOAD_MAX_PROGRAM_SIZE);
10171018
rsp.len = sizeof(buf);
10181019
rsp.pValue = buf;
10191020
ATT_ReadRsp(connection_handle, &rsp);

lib/pbio/drv/bluetooth/pybricks_service_server.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,12 @@
4949
#include <stdint.h>
5050
#include <string.h>
5151

52-
#include <pbsys/app.h>
5352
#include <pbio/math.h>
5453
#include <pbio/protocol.h>
5554

55+
#include <pbsys/app.h>
56+
#include <pbsys/program_load.h>
57+
5658
#include "btstack_defines.h"
5759
#include "ble/att_db.h"
5860
#include "ble/att_server.h"
@@ -87,7 +89,7 @@ static uint16_t pybricks_service_read_callback(hci_con_handle_t con_handle, uint
8789
if (attribute_handle == pybricks_hub_capabilities_value_handle) {
8890
if (buffer && buffer_size >= PBIO_PYBRICKS_HUB_CAPABILITIES_VALUE_SIZE) {
8991
pbio_pybricks_hub_capabilities(buffer, pbio_math_min(att_server_get_mtu(con_handle) - 3, 512),
90-
PBSYS_APP_HUB_FEATURE_FLAGS, PBSYS_APP_USER_PROGRAM_SIZE);
92+
PBSYS_APP_HUB_FEATURE_FLAGS, PBSYS_PROGRAM_LOAD_MAX_PROGRAM_SIZE);
9193
}
9294
return PBIO_PYBRICKS_HUB_CAPABILITIES_VALUE_SIZE;
9395
}

lib/pbio/include/pbsys/app.h

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,6 @@
2626
#error "Application must define PBSYS_APP_HUB_FEATURE_FLAGS"
2727
#endif
2828

29-
#if DOXYGEN
30-
/**
31-
* Specifies the maximum allowable user program size for the application.
32-
*/
33-
#define PBSYS_APP_USER_PROGRAM_SIZE
34-
#endif
35-
#ifndef PBSYS_APP_USER_PROGRAM_SIZE
36-
#error "Application must define PBSYS_APP_USER_PROGRAM_SIZE"
37-
#endif
38-
3929
#endif // _PBSYS_APP_H_
4030

4131
/** @} */

lib/pbio/test/pbsys_app_config.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
#define PBSYS_APP_HUB_FEATURE_FLAGS 0
2-
#define PBSYS_APP_USER_PROGRAM_SIZE 0

0 commit comments

Comments
 (0)