45 virtual void process()
override;
47 bool sendLongMessage(
const void *msg,
const unsigned int msg_len,
const byte stream_id);
48 void subscribe(
byte *stream_ids,
const byte num_stream_ids,
void *receive_buffer,
const unsigned int receive_buffer_len,
void (*messagehandler)(
void *fragment,
const unsigned int fragment_len,
const byte stream_id,
const byte status));
52 void setTimeout(
unsigned int timeout_in_millis);
71 void (*
_messagehandler)(
void *fragment,
const unsigned int fragment_len,
const byte stream_id,
const byte status);
103 bool sendLongMessage(
const void *msg,
const unsigned int msg_len,
const byte stream_id);
104 virtual void process()
override;
105 void subscribe(
byte *stream_ids,
const byte num_stream_ids,
void (*messagehandler)(
void *msg,
unsigned int msg_len,
byte stream_id,
byte status));
112 bool _use_crc =
false;
a derived class to extend the base long message class to handle multiple concurrent messages,...
Definition LongMessageService.h:99
virtual void processReceivedMessageFragment(const VlcbMessage *frame)
handle an incoming long message Controller message fragment
Definition LongMessageService.cpp:555
bool sendLongMessage(const void *msg, const unsigned int msg_len, const byte stream_id)
Definition LongMessageService.cpp:390
virtual void process() override
Definition LongMessageService.cpp:459
void subscribe(byte *stream_ids, const byte num_stream_ids, void(*messagehandler)(void *msg, unsigned int msg_len, byte stream_id, byte status))
subscribe to a range of stream IDs
Definition LongMessageService.cpp:524
bool allocateContexts(byte num_receive_contexts=NUM_EX_CONTEXTS, unsigned int receive_buffer_len=EX_BUFFER_LEN, byte num_send_contexts=NUM_EX_CONTEXTS)
allocate memory for receive and send contexts
Definition LongMessageService.cpp:336
byte is_sending()
Definition LongMessageService.cpp:537
void use_crc(bool use_crc)
set whether to calculate and compare a CRC of the message
Definition LongMessageService.cpp:706
Definition LongMessageService.h:41
byte * _receive_buffer
Definition LongMessageService.h:63
bool is_sending()
Definition LongMessageService.cpp:290
byte _msg_delay
Definition LongMessageService.h:65
virtual void processReceivedMessageFragment(const VlcbMessage *frame)
Definition LongMessageService.cpp:146
void handleMessage(const VlcbMessage *msg)
Definition LongMessageService.cpp:44
unsigned int _incoming_message_length
Definition LongMessageService.h:66
unsigned int _receive_buffer_len
Definition LongMessageService.h:66
unsigned int _send_buffer_index
Definition LongMessageService.h:67
virtual VlcbServiceTypes getServiceID() const override
Return a unique ID for this service.
Definition LongMessageService.h:54
unsigned long _last_fragment_received
Definition LongMessageService.h:69
void subscribe(byte *stream_ids, const byte num_stream_ids, void *receive_buffer, const unsigned int receive_buffer_len, void(*messagehandler)(void *fragment, const unsigned int fragment_len, const byte stream_id, const byte status))
subscribe to a range of stream IDs
Definition LongMessageService.cpp:25
byte _receive_stream_id
Definition LongMessageService.h:64
byte _num_stream_ids
Definition LongMessageService.h:64
unsigned int _send_sequence_num
Definition LongMessageService.h:68
unsigned int _incoming_bytes_received
Definition LongMessageService.h:67
unsigned int _receive_buffer_index
Definition LongMessageService.h:66
unsigned int _receive_timeout
Definition LongMessageService.h:68
virtual void process() override
Definition LongMessageService.cpp:98
unsigned long _last_fragment_sent
Definition LongMessageService.h:69
virtual byte getServiceVersionID() const override
Return the version of the service specification implemented by this service.
Definition LongMessageService.h:55
void setTimeout(unsigned int timeout_in_millis)
Definition LongMessageService.cpp:322
byte * _send_buffer
Definition LongMessageService.h:63
void(* _messagehandler)(void *fragment, const unsigned int fragment_len, const byte stream_id, const byte status)
Definition LongMessageService.h:71
byte * _stream_ids
Definition LongMessageService.h:64
unsigned int _send_buffer_len
Definition LongMessageService.h:66
virtual void processAction(const Action &action) override
Called when there is an action available.
Definition LongMessageService.cpp:36
unsigned int _incoming_message_crc
Definition LongMessageService.h:67
bool sendMessageFragment(VlcbMessage *frame)
send next message fragment
Definition LongMessageService.cpp:298
unsigned int _expected_next_receive_sequence_num
Definition LongMessageService.h:68
bool _is_receiving
Definition LongMessageService.h:62
void setDelay(byte delay_in_millis)
Definition LongMessageService.cpp:311
bool sendLongMessage(const void *msg, const unsigned int msg_len, const byte stream_id)
Definition LongMessageService.cpp:60
byte _send_stream_id
Definition LongMessageService.h:64
Interface base class for all VLCB services.
Definition Service.h:25
Definition AbstractEventTeachingService.cpp:13
@ LONG_MESSAGE_TRUNCATED
Definition LongMessageService.h:29
@ LONG_MESSAGE_COMPLETE
Definition LongMessageService.h:25
@ LONG_MESSAGE_CRC_ERROR
Definition LongMessageService.h:28
@ LONG_MESSAGE_SEQUENCE_ERROR
Definition LongMessageService.h:26
@ LONG_MESSAGE_TIMEOUT_ERROR
Definition LongMessageService.h:27
@ LONG_MESSAGE_INCOMPLETE
Definition LongMessageService.h:24
const int EX_BUFFER_LEN
Definition LongMessageService.h:17
const int LONG_MESSAGE_RECEIVE_TIMEOUT
Definition LongMessageService.h:15
const int NUM_EX_CONTEXTS
Definition LongMessageService.h:16
const int LONG_MESSAGE_DEFAULT_DELAY
Definition LongMessageService.h:14
An action to be performed.
Definition Controller.h:51
CAN/Controller message type.
Definition Controller.h:30
Definition LongMessageService.h:79
unsigned int receive_buffer_index
Definition LongMessageService.h:83
byte receive_stream_id
Definition LongMessageService.h:81
unsigned int incoming_message_crc
Definition LongMessageService.h:83
unsigned int incoming_bytes_received
Definition LongMessageService.h:83
bool in_use
Definition LongMessageService.h:80
unsigned int incoming_message_length
Definition LongMessageService.h:83
unsigned int expected_next_receive_sequence_num
Definition LongMessageService.h:83
byte * buffer
Definition LongMessageService.h:82
unsigned long last_fragment_received
Definition LongMessageService.h:84
Definition LongMessageService.h:87
unsigned int send_buffer_index
Definition LongMessageService.h:91
byte * buffer
Definition LongMessageService.h:90
bool in_use
Definition LongMessageService.h:88
unsigned long last_fragment_sent
Definition LongMessageService.h:92
byte msg_delay
Definition LongMessageService.h:89
byte send_stream_id
Definition LongMessageService.h:89
unsigned int send_buffer_len
Definition LongMessageService.h:91
unsigned int send_sequence_num
Definition LongMessageService.h:91
VlcbServiceTypes
Definition vlcbdefs.hpp:487
@ SERVICE_ID_STREAMING
Definition vlcbdefs.hpp:502