I've changed the packet.h file to include the _ before TDevice, and did all the other steps in the instructions, but getting the make errors below. So I deleted everything and started fresh, following the instructions again - but still getting these errors on the make step. Please see the log below.
In file included from /usr/include/c++/6/bits/char_traits.h:39:0,
from /usr/include/c++/6/ios:40,
from /usr/include/c++/6/ostream:38,
from /usr/include/c++/6/iostream:39,
from /home/pi/sma-rs485-inverters/src/main.cpp:29:
/usr/include/c++/6/bits/stl_algobase.h:243:56: error: macro "min" passed 3 arguments, but takes just 2
min(const _Tp& __a, const _Tp& __b, _Compare __comp)
^
/usr/include/c++/6/bits/stl_algobase.h:265:56: error: macro "max" passed 3 arguments, but takes just 2
max(const _Tp& __a, const _Tp& __b, _Compare __comp)
^
In file included from /usr/include/c++/6/bits/stl_algo.h:60:0,
from /usr/include/c++/6/algorithm:62,
from /home/pi/sma-rs485-inverters/src/utils.hpp:29,
from /home/pi/sma-rs485-inverters/src/main.cpp:38:
/usr/include/c++/6/bits/algorithmfwd.h:362:41: error: macro "max" passed 3 arguments, but takes just 2
max(const _Tp&, const _Tp&, _Compare);
^
/usr/include/c++/6/bits/algorithmfwd.h:375:41: error: macro "min" passed 3 arguments, but takes just 2
min(const _Tp&, const _Tp&, _Compare);
^
/usr/include/c++/6/bits/algorithmfwd.h:403:30: error: macro "min" requires 2 arguments, but only 1 given
min(initializer_list<_Tp>);
^
/usr/include/c++/6/bits/algorithmfwd.h:413:30: error: macro "max" requires 2 arguments, but only 1 given
max(initializer_list<_Tp>);
^
In file included from /usr/include/c++/6/bits/uniform_int_dist.h:35:0,
from /usr/include/c++/6/bits/stl_algo.h:66,
from /usr/include/c++/6/algorithm:62,
from /home/pi/sma-rs485-inverters/src/utils.hpp:29,
from /home/pi/sma-rs485-inverters/src/main.cpp:38:
/usr/include/c++/6/limits:320:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return _Tp(); }
^
/usr/include/c++/6/limits:324:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return _Tp(); }
^
/usr/include/c++/6/limits:387:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return false; }
^
/usr/include/c++/6/limits:390:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return true; }
^
/usr/include/c++/6/limits:394:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
/usr/include/c++/6/limits:456:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_min(char); }
^
/usr/include/c++/6/limits:459:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_max(char); }
^
/usr/include/c++/6/limits:463:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
/usr/include/c++/6/limits:523:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return -__SCHAR_MAX__ - 1; }
^
/usr/include/c++/6/limits:526:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __SCHAR_MAX__; }
^
/usr/include/c++/6/limits:530:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
/usr/include/c++/6/limits:593:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return 0; }
^
/usr/include/c++/6/limits:596:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __SCHAR_MAX__ * 2U + 1; }
^
/usr/include/c++/6/limits:600:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
/usr/include/c++/6/limits:666:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_min (wchar_t); }
^
/usr/include/c++/6/limits:669:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_max (wchar_t); }
^
/usr/include/c++/6/limits:673:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
/usr/include/c++/6/limits:735:11: error: macro "min" requires 2 arguments, but only 1 given
min() noexcept { return __glibcxx_min (char16_t); }
^
/usr/include/c++/6/limits:738:11: error: macro "max" requires 2 arguments, but only 1 given
max() noexcept { return __glibcxx_max (char16_t); }
^
/usr/include/c++/6/limits:741:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
/usr/include/c++/6/limits:796:11: error: macro "min" requires 2 arguments, but only 1 given
min() noexcept { return __glibcxx_min (char32_t); }
^
/usr/include/c++/6/limits:799:11: error: macro "max" requires 2 arguments, but only 1 given
max() noexcept { return __glibcxx_max (char32_t); }
^
/usr/include/c++/6/limits:802:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
/usr/include/c++/6/limits:858:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return -__SHRT_MAX__ - 1; }
^
/usr/include/c++/6/limits:861:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __SHRT_MAX__; }
^
/usr/include/c++/6/limits:865:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
/usr/include/c++/6/limits:925:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return 0; }
^
/usr/include/c++/6/limits:928:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __SHRT_MAX__ * 2U + 1; }
^
/usr/include/c++/6/limits:932:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
/usr/include/c++/6/limits:998:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return -__INT_MAX__ - 1; }
^
/usr/include/c++/6/limits:1001:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __INT_MAX__; }
^
/usr/include/c++/6/limits:1005:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
/usr/include/c++/6/limits:1065:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return 0; }
^
/usr/include/c++/6/limits:1068:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __INT_MAX__ * 2U + 1; }
^
/usr/include/c++/6/limits:1072:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
/usr/include/c++/6/limits:1137:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return -__LONG_MAX__ - 1; }
^
/usr/include/c++/6/limits:1140:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __LONG_MAX__; }
^
/usr/include/c++/6/limits:1144:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
/usr/include/c++/6/limits:1204:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return 0; }
^
/usr/include/c++/6/limits:1207:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __LONG_MAX__ * 2UL + 1; }
^
/usr/include/c++/6/limits:1211:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
/usr/include/c++/6/limits:1277:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return -__LONG_LONG_MAX__ - 1; }
^
/usr/include/c++/6/limits:1280:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __LONG_LONG_MAX__; }
^
/usr/include/c++/6/limits:1284:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
/usr/include/c++/6/limits:1347:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return 0; }
^
/usr/include/c++/6/limits:1350:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __LONG_LONG_MAX__ * 2ULL + 1; }
^
/usr/include/c++/6/limits:1354:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
/usr/include/c++/6/limits:1598:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return __FLT_MIN__; }
^
/usr/include/c++/6/limits:1601:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __FLT_MAX__; }
^
/usr/include/c++/6/limits:1673:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return __DBL_MIN__; }
^
/usr/include/c++/6/limits:1676:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __DBL_MAX__; }
^
/usr/include/c++/6/limits:1748:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return __LDBL_MIN__; }
^
/usr/include/c++/6/limits:1751:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __LDBL_MAX__; }
^
In file included from /usr/include/c++/6/bits/stl_algo.h:66:0,
from /usr/include/c++/6/algorithm:62,
from /home/pi/sma-rs485-inverters/src/utils.hpp:29,
from /home/pi/sma-rs485-inverters/src/main.cpp:38:
/usr/include/c++/6/bits/uniform_int_dist.h:76:56: error: macro "max" requires 2 arguments, but only 1 given
_IntType __b = std::numeric_limits<_IntType>::max())
^
/usr/include/c++/6/bits/uniform_int_dist.h:105:57: error: macro "max" requires 2 arguments, but only 1 given
_IntType __b = std::numeric_limits<_IntType>::max())
^
/usr/include/c++/6/bits/uniform_int_dist.h:149:11: error: macro "min" requires 2 arguments, but only 1 given
min() const
^
/usr/include/c++/6/bits/uniform_int_dist.h:156:11: error: macro "max" requires 2 arguments, but only 1 given
max() const
^
/usr/include/c++/6/bits/uniform_int_dist.h:227:40: error: macro "min" requires 2 arguments, but only 1 given
const __uctype __urngmin = __urng.min();
^
/usr/include/c++/6/bits/uniform_int_dist.h:228:40: error: macro "max" requires 2 arguments, but only 1 given
const __uctype __urngmax = __urng.max();
^
/usr/include/c++/6/bits/uniform_int_dist.h:296:40: error: macro "min" requires 2 arguments, but only 1 given
const __uctype __urngmin = __urng.min();
^
/usr/include/c++/6/bits/uniform_int_dist.h:297:40: error: macro "max" requires 2 arguments, but only 1 given
const __uctype __urngmax = __urng.max();
^
In file included from /usr/include/c++/6/algorithm:62:0,
from /home/pi/sma-rs485-inverters/src/utils.hpp:29,
from /home/pi/sma-rs485-inverters/src/main.cpp:38:
/usr/include/c++/6/bits/stl_algo.h:3447:34: error: macro "min" requires 2 arguments, but only 1 given
min(initializer_list<_Tp> __l)
^
/usr/include/c++/6/bits/stl_algo.h:3459:34: error: macro "max" requires 2 arguments, but only 1 given
max(initializer_list<_Tp> __l)
^
In file included from /home/pi/sma-rs485-inverters/../sma/include/osswitch.h:9:0,
from /home/pi/sma-rs485-inverters/../sma/include/os.h:36,
from /home/pi/sma-rs485-inverters/../sma/include/lists.h:24,
from /home/pi/sma-rs485-inverters/../sma/core/timer.h:25,
from /home/pi/sma-rs485-inverters/../sma/libs/libyasdi.h:45,
from /home/pi/sma-rs485-inverters/src/main.cpp:21:
/usr/include/c++/6/bits/stl_algobase.h:195:5: error: expected unqualified-id before ‘const’
min(const _Tp& __a, const _Tp& __b)
^
/usr/include/c++/6/bits/stl_algobase.h:195:5: error: expected ‘)’ before ‘const’
/usr/include/c++/6/bits/stl_algobase.h:195:5: error: expected ‘)’ before ‘const’
/usr/include/c++/6/bits/stl_algobase.h:195:5: error: expected initializer before ‘const’
/usr/include/c++/6/bits/stl_algobase.h:219:5: error: expected unqualified-id before ‘const’
max(const _Tp& __a, const _Tp& __b)
^
/usr/include/c++/6/bits/stl_algobase.h:219:5: error: expected ‘)’ before ‘const’
/usr/include/c++/6/bits/stl_algobase.h:219:5: error: expected ‘)’ before ‘const’
/usr/include/c++/6/bits/stl_algobase.h:219:5: error: expected initializer before ‘const’
In file included from /usr/include/c++/6/bits/char_traits.h:39:0,
from /usr/include/c++/6/ios:40,
from /usr/include/c++/6/ostream:38,
from /usr/include/c++/6/iostream:39,
from /home/pi/sma-rs485-inverters/src/main.cpp:29:
/usr/include/c++/6/bits/stl_algobase.h:243:5: error: ‘std::min’ declared as an ‘inline’ variable
min(const _Tp& __a, const _Tp& __b, _Compare __comp)
^~~
/usr/include/c++/6/bits/stl_algobase.h:246:7: error: expected primary-expression before ‘if’
if (__comp(__b, __a))
^~
/usr/include/c++/6/bits/stl_algobase.h:246:7: error: expected ‘}’ before ‘if’
/usr/include/c++/6/bits/stl_algobase.h:246:7: error: expected ‘;’ before ‘if’
/usr/include/c++/6/bits/stl_algobase.h:248:7: error: expected unqualified-id before ‘return’
return __a;
^~~~~~
/usr/include/c++/6/bits/stl_algobase.h:265:5: error: ‘max’ declared as an ‘inline’ variable
max(const _Tp& __a, const _Tp& __b, _Compare __comp)
^~~
/usr/include/c++/6/bits/stl_algobase.h:268:7: error: expected primary-expression before ‘if’
if (__comp(__a, __b))
^~
/usr/include/c++/6/bits/stl_algobase.h:268:7: error: expected ‘}’ before ‘if’
/usr/include/c++/6/bits/stl_algobase.h:268:7: error: expected ‘;’ before ‘if’
/usr/include/c++/6/bits/stl_algobase.h:270:7: error: expected unqualified-id before ‘return’
return __a;
^~~~~~
/usr/include/c++/6/bits/stl_algobase.h:271:5: error: expected declaration before ‘}’ token
}
^
CMakeFiles/ardexa-sma.dir/build.make:62: recipe for target 'CMakeFiles/ardexa-sma.dir/src/main.o' failed
make[2]: *** [CMakeFiles/ardexa-sma.dir/src/main.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/ardexa-sma.dir/all' failed
make[1]: *** [CMakeFiles/ardexa-sma.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2