diff options
Diffstat (limited to 'quantum/serial_link/protocol')
| -rw-r--r-- | quantum/serial_link/protocol/byte_stuffer.c | 3 | ||||
| -rw-r--r-- | quantum/serial_link/protocol/byte_stuffer.h | 3 | ||||
| -rw-r--r-- | quantum/serial_link/protocol/transport.c | 4 | ||||
| -rw-r--r-- | quantum/serial_link/protocol/transport.h | 7 | 
4 files changed, 11 insertions, 6 deletions
diff --git a/quantum/serial_link/protocol/byte_stuffer.c b/quantum/serial_link/protocol/byte_stuffer.c index fb4c45a8d..2c87d64c2 100644 --- a/quantum/serial_link/protocol/byte_stuffer.c +++ b/quantum/serial_link/protocol/byte_stuffer.c @@ -31,9 +31,6 @@ SOFTWARE.  // https://en.wikipedia.org/wiki/Consistent_Overhead_Byte_Stuffing  // http://www.stuartcheshire.org/papers/COBSforToN.pdf -#define MAX_FRAME_SIZE 1024 -#define NUM_LINKS 2 -  typedef struct byte_stuffer_state {      uint16_t next_zero;      uint16_t data_pos; diff --git a/quantum/serial_link/protocol/byte_stuffer.h b/quantum/serial_link/protocol/byte_stuffer.h index 2cc88beb4..97e896856 100644 --- a/quantum/serial_link/protocol/byte_stuffer.h +++ b/quantum/serial_link/protocol/byte_stuffer.h @@ -27,6 +27,9 @@ SOFTWARE.  #include <stdint.h> +#define MAX_FRAME_SIZE 1024 +#define NUM_LINKS 2 +  void init_byte_stuffer(void);  void byte_stuffer_recv_byte(uint8_t link, uint8_t data);  void byte_stuffer_send_frame(uint8_t link, uint8_t* data, uint16_t size); diff --git a/quantum/serial_link/protocol/transport.c b/quantum/serial_link/protocol/transport.c index f418d11ce..ff795fe20 100644 --- a/quantum/serial_link/protocol/transport.c +++ b/quantum/serial_link/protocol/transport.c @@ -31,6 +31,10 @@ SOFTWARE.  static remote_object_t* remote_objects[MAX_REMOTE_OBJECTS];  static uint32_t num_remote_objects = 0; +void reinitialize_serial_link_transport(void) { +    num_remote_objects = 0; +} +  void add_remote_objects(remote_object_t** _remote_objects, uint32_t _num_remote_objects) {      unsigned int i;      for(i=0;i<_num_remote_objects;i++) { diff --git a/quantum/serial_link/protocol/transport.h b/quantum/serial_link/protocol/transport.h index 9a052d880..2c5d890b2 100644 --- a/quantum/serial_link/protocol/transport.h +++ b/quantum/serial_link/protocol/transport.h @@ -82,7 +82,7 @@ typedef struct { \          remote_object_t* obj = (remote_object_t*)&remote_object_##name; \          uint8_t* start = obj->buffer + LOCAL_OBJECT_SIZE(obj->object_size);\          triple_buffer_object_t* tb = (triple_buffer_object_t*)start; \ -        return triple_buffer_read_internal(obj->object_size, tb); \ +        return (type*)triple_buffer_read_internal(obj->object_size, tb); \      }  #define MASTER_TO_SINGLE_SLAVE_OBJECT(name, type) \ @@ -112,7 +112,7 @@ typedef struct { \          remote_object_t* obj = (remote_object_t*)&remote_object_##name; \          uint8_t* start = obj->buffer + NUM_SLAVES * LOCAL_OBJECT_SIZE(obj->object_size);\          triple_buffer_object_t* tb = (triple_buffer_object_t*)start; \ -        return triple_buffer_read_internal(obj->object_size, tb); \ +        return (type*)triple_buffer_read_internal(obj->object_size, tb); \      }  #define SLAVE_TO_MASTER_OBJECT(name, type) \ @@ -139,12 +139,13 @@ typedef struct { \          uint8_t* start = obj->buffer + LOCAL_OBJECT_SIZE(obj->object_size);\          start+=slave * REMOTE_OBJECT_SIZE(obj->object_size); \          triple_buffer_object_t* tb = (triple_buffer_object_t*)start; \ -        return triple_buffer_read_internal(obj->object_size, tb); \ +        return (type*)triple_buffer_read_internal(obj->object_size, tb); \      }  #define REMOTE_OBJECT(name) (remote_object_t*)&remote_object_##name  void add_remote_objects(remote_object_t** remote_objects, uint32_t num_remote_objects); +void reinitialize_serial_link_transport(void);  void transport_recv_frame(uint8_t from, uint8_t* data, uint16_t size);  void update_transport(void);  | 
