Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion library.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"url": "https://github.com/eigen-value",
"maintainer": true
},
"version": "0.1.1",
"version": "0.1.2",
"license": "MIT",
"frameworks": "arduino",
"platforms": "*",
Expand Down
2 changes: 1 addition & 1 deletion library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=Arduino_RPClite
version=0.1.1
version=0.1.2
author=Lucio Rossi (eigen-value)
maintainer=Lucio Rossi (eigen-value)
sentence=A MessagePack RPC library for Arduino
Expand Down
2 changes: 1 addition & 1 deletion src/SerialTransport.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class SerialTransport: public ITransport {
size_t write(const uint8_t* data, size_t size) override {
_stream->write(data, size);
return size;
}
}

size_t read(uint8_t* buffer, size_t size) override {
_stream->setTimeout(0);
Expand Down
1 change: 0 additions & 1 deletion src/client.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ class RPCClient {

// blocking call
while (!get_response(result)){
//delay(1);
}

return (lastError.code == NO_ERR);
Expand Down
11 changes: 10 additions & 1 deletion src/decoder.h
Original file line number Diff line number Diff line change
Expand Up @@ -163,8 +163,17 @@ class RpcDecoder {

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

// This is a blocking send, under the assumption _transport.write will always succeed eventually
inline size_t send(const uint8_t* data, const size_t size) {
return _transport.write(data, size);

size_t offset = 0;

while (offset < size) {
size_t bytes_written = _transport.write(data + offset, size - offset);
offset += bytes_written;
}

return offset;
}

size_t pop_packet(uint8_t* buffer, size_t buffer_size) {
Expand Down
2 changes: 0 additions & 2 deletions src/server.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,11 @@ class RPCServer {
get_rpc();
process_request();
send_response();
//delay(1);
}

bool get_rpc() {
decoder->decode();
if (_rpc_size > 0) return true; // Already have a request
// TODO USE A QUEUE
_rpc_size = decoder->get_request(_rpc_buffer, RPC_BUFFER_SIZE);
return _rpc_size > 0;
}
Expand Down