File tree Expand file tree Collapse file tree 4 files changed +13
-4
lines changed
Expand file tree Collapse file tree 4 files changed +13
-4
lines changed Original file line number Diff line number Diff line change 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" : " *" ,
Original file line number Diff line number Diff line change 11name =Arduino_RPClite
2- version =0.1.1
2+ version =0.1.2
33author =Lucio Rossi (eigen-value)
44maintainer =Lucio Rossi (eigen-value)
55sentence =A MessagePack RPC library for Arduino
Original file line number Diff line number Diff 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 );
Original file line number Diff line number Diff 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) {
You can’t perform that action at this time.
0 commit comments