From 3977705505069b4210b29e8188cdd35813c65886 Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Mon, 1 Jul 2019 18:55:23 +0200 Subject: signals.cpp: Make an insensitive string comparison When sending a CAN signal make an case-insensitive comparison as it isn't necessary to be strict on that, so case insensitive if fine. Update the documentation accordingly. Bug-AGL: SPEC-2582 Change-Id: I998b64cdd9a381da3da582aeba42ab726fff1259 Signed-off-by: Romain Forlot --- low-can-binding/binding/low-can-hat.hpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'low-can-binding/binding') diff --git a/low-can-binding/binding/low-can-hat.hpp b/low-can-binding/binding/low-can-hat.hpp index e21b9cd0..1662ce04 100644 --- a/low-can-binding/binding/low-can-hat.hpp +++ b/low-can-binding/binding/low-can-hat.hpp @@ -23,6 +23,7 @@ #include #include #include +#include #include @@ -31,3 +32,12 @@ class low_can_subscription_t; void on_no_clients(std::shared_ptr can_subscription, std::map >& s); void on_no_clients(std::shared_ptr can_subscription, uint32_t pid, std::map >& s); int read_message(sd_event_source *s, int fd, uint32_t revents, void *userdata); + +inline bool caseInsCharCompareN(char a, char b) { + return(toupper(a) == toupper(b)); +} + +inline bool caseInsCompare(const std::string& s1, const std::string& s2) { + return((s1.size() == s2.size()) && + equal(s1.begin(), s1.end(), s2.begin(), caseInsCharCompareN)); +} -- cgit 1.2.3-korg