summaryrefslogtreecommitdiff
path: root/shared-module
diff options
context:
space:
mode:
authorJeff Epler <jepler@gmail.com>2020-09-17 10:57:16 -0500
committerJeff Epler <jepler@gmail.com>2020-09-21 16:44:26 -0500
commit2cb4707f92ffc65b2f160a7d1ea7d6b28892b548 (patch)
treec6be12910cfad3d2285a0994c5df813421bcf334 /shared-module
parentca32a81bf11301b2aea4fb2a91991dcfecd14902 (diff)
Message: add extended address flag
Diffstat (limited to 'shared-module')
-rw-r--r--shared-module/_canio/Message.c13
-rw-r--r--shared-module/_canio/Message.h9
2 files changed, 18 insertions, 4 deletions
diff --git a/shared-module/_canio/Message.c b/shared-module/_canio/Message.c
index 1ac5b8178..c0403b519 100644
--- a/shared-module/_canio/Message.c
+++ b/shared-module/_canio/Message.c
@@ -28,11 +28,12 @@
#include <string.h>
-void common_hal_canio_message_construct(canio_message_obj_t *self, int id, void *data, size_t size, bool rtr)
+void common_hal_canio_message_construct(canio_message_obj_t *self, int id, void *data, size_t size, bool rtr, bool extended)
{
self->id = id;
self->size = size;
self->rtr = rtr;
+ self->extended = extended;
if (data) {
memcpy(self->data, data, size);
} else {
@@ -84,3 +85,13 @@ void common_hal_canio_message_rtr_set(canio_message_obj_t *self, bool rtr)
{
self->rtr = rtr;
}
+
+bool common_hal_canio_message_extended_get(const canio_message_obj_t *self)
+{
+ return self->extended;
+}
+
+void common_hal_canio_message_extended_set(canio_message_obj_t *self, bool extended)
+{
+ self->extended = extended;
+}
diff --git a/shared-module/_canio/Message.h b/shared-module/_canio/Message.h
index e846f1095..b9fd8eaf2 100644
--- a/shared-module/_canio/Message.h
+++ b/shared-module/_canio/Message.h
@@ -31,17 +31,20 @@
typedef struct {
mp_obj_base_t base;
int id;
- size_t size;
uint8_t data[8];
- bool rtr;
+ size_t size:4;
+ bool rtr:1;
+ bool extended:1;
} canio_message_obj_t;
-void common_hal_canio_message_construct(canio_message_obj_t *self, int id, void *data, size_t size, bool rtr);
+void common_hal_canio_message_construct(canio_message_obj_t *self, int id, void *data, size_t size, bool rtr, bool extended);
bool common_hal_canio_message_rtr_get(const canio_message_obj_t *self);
+bool common_hal_canio_message_extended_get(const canio_message_obj_t *self);
int common_hal_canio_message_id_get(const canio_message_obj_t *self);
const void *common_hal_canio_message_data_get(const canio_message_obj_t *self);
size_t common_hal_canio_message_size_get(const canio_message_obj_t *self);
void common_hal_canio_message_rtr_set(canio_message_obj_t *self, bool rtr);
+void common_hal_canio_message_extended_set(canio_message_obj_t *self, bool extended);
void common_hal_canio_message_id_set(canio_message_obj_t *self, int id);
void common_hal_canio_message_data_set(canio_message_obj_t *self, const void *data, size_t size);
void common_hal_canio_message_size_set(canio_message_obj_t *self, size_t size);