5 #include <gtest/gtest.h> 8 #include <root_ns_a/StringService.hpp> 9 #include <root_ns_a/EmptyService.hpp> 10 #include "../clock.hpp" 11 #include "../transport/can/can.hpp" 22 root_ns_a::StringService::Response& response)
24 std::cout << request << std::endl;
25 response.string_response = request.string_request;
26 response.string_response +=
" --> ";
28 std::cout << response << std::endl;
33 root_ns_a::StringService::Response&)>
Binder;
42 root_ns_a::EmptyService::Response&)
44 std::cout << request << std::endl;
49 root_ns_a::EmptyService::Response&)>
Binder;
90 can_driver.
ifaces[0].pushRx(rx_frame);
98 ASSERT_EQ(4, can_driver.
ifaces[0].tx.size());
99 for (
int i = 0; i < 2; i++)
107 ASSERT_TRUE(fr.
parse(can_driver.
ifaces[0].popTxFrame()));
108 std::cout << fr.toString() << std::endl;
109 ASSERT_FALSE(std::strncmp(payloads[0], reinterpret_cast<const char*>(fr.
getPayloadPtr() + 2), 5));
117 ASSERT_TRUE(fr.
parse(can_driver.
ifaces[0].popTxFrame()));
118 std::cout << fr.toString() << std::endl;
120 ASSERT_FALSE(std::strncmp(payloads[1], reinterpret_cast<const char*>(fr.
getPayloadPtr()), 7));
150 std::cout <<
"sizeof(ServiceServer<root_ns_a::EmptyService, EmptyServerImpl::Binder>): "
TEST(ServiceServer, Basic)
TransferType getTransferType() const
uint32_t getResponseFailureCount() const
virtual uavcan::MonotonicTime getMonotonic() const
Dispatcher & getDispatcher()
void setStartOfTransfer(bool x)
uint32_t getRequestFailureCount() const
bool parse(const CanFrame &can_frame)
StringServerImpl(const char *string_response)
uint8_t setPayload(const uint8_t *data, unsigned len)
void handleRequest(const uavcan::ReceivedDataStructure< root_ns_a::StringService::Request > &request, root_ns_a::StringService::Response &response)
const char * string_response
NodeID getDstNodeID() const
TransferID getTransferID() const
const uint8_t * getPayloadPtr() const
virtual uavcan::UtcTime getUtc() const
unsigned getNumServiceRequestListeners() const
void handleRequest(const uavcan::ReceivedDataStructure< root_ns_a::EmptyService::Request > &request, root_ns_a::EmptyService::Response &)
static MonotonicDuration fromUSec(int64_t us)
uavcan::MethodBinder< StringServerImpl *, void(StringServerImpl::*)(const uavcan::ReceivedDataStructure< root_ns_a::StringService::Request > &, root_ns_a::StringService::Response &)> Binder
int spin(MonotonicTime deadline)
static GlobalDataTypeRegistry & instance()
int start(const Callback &callback)
int snprintf(char *out, std::size_t maxlen, const char *format,...)
void setEndOfTransfer(bool x)
TransferPriority getPriority() const
std::vector< CanIfaceMock > ifaces
void setPriority(TransferPriority priority)