Skip to content

Commit e2bb2ef

Browse files
committed
Merge branch 'main' into concurrent_features
2 parents c16c181 + 72b0eef commit e2bb2ef

File tree

4 files changed

+13
-4
lines changed

4 files changed

+13
-4
lines changed

library.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"url": "https://github.com/eigen-value",
1212
"maintainer": true
1313
},
14-
"version": "0.1.1",
14+
"version": "0.1.2",
1515
"license": "MIT",
1616
"frameworks": "arduino",
1717
"platforms": "*",

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=Arduino_RPClite
2-
version=0.1.1
2+
version=0.1.2
33
author=Lucio Rossi (eigen-value)
44
maintainer=Lucio Rossi (eigen-value)
55
sentence=A MessagePack RPC library for Arduino

src/SerialTransport.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class SerialTransport: public ITransport {
2121
size_t write(const uint8_t* data, size_t size) override {
2222
_stream->write(data, size);
2323
return size;
24-
}
24+
}
2525

2626
size_t read(uint8_t* buffer, size_t size) override {
2727
_stream->setTimeout(0);

src/decoder.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,8 +215,17 @@ class RpcDecoder {
215215

216216
inline bool buffer_empty() const { return _bytes_stored == 0;}
217217

218+
// This is a blocking send, under the assumption _transport.write will always succeed eventually
218219
inline size_t send(const uint8_t* data, const size_t size) {
219-
return _transport.write(data, size);
220+
221+
size_t offset = 0;
222+
223+
while (offset < size) {
224+
size_t bytes_written = _transport.write(data + offset, size - offset);
225+
offset += bytes_written;
226+
}
227+
228+
return offset;
220229
}
221230

222231
size_t pop_packet(uint8_t* buffer, size_t buffer_size) {

0 commit comments

Comments
 (0)