Commit Graph

48 Commits

Author SHA1 Message Date
Pavel Kirienko 627dc5f2d9 UAVCAN_TINY preprocessor option - STM32 test compiles into 41kB in release mode (-Os, LTO) 2014-04-12 23:28:32 +04:00
Pavel Kirienko e476a957a8 NetworkCompatibilityChecker will not be executed at each Node<>::start(), there's special method for that - Node<>::checkNetworkCompatibility() 2014-04-12 22:10:26 +04:00
Pavel Kirienko dd5908dad8 Renaming: NodeInitializer --> NetworkCompatibilityChecker 2014-04-12 21:40:30 +04:00
Pavel Kirienko 4e7287358a Dynamic memory refactoring: Entire library now uses IPoolAllocator instead of IAllocator, which was removed completely. This change was needed to enable TX queue constraints, see the next commits. 2014-04-12 17:17:06 +04:00
Pavel Kirienko bba89bdd3d Node<>::getAllocator() preserves full allocator type 2014-04-11 19:23:05 +04:00
Pavel Kirienko d2eb0a03ee Properly implemented registerInternalFailure(); some logging in STM32 test app 2014-04-11 14:18:36 +04:00
Pavel Kirienko e567c16fd0 Compact Entry constructor for GlobalDataTypeRegistry::regist<>() 2014-04-10 22:51:37 +04:00
Pavel Kirienko c26c320dd9 Fixed GDTR singleton (http://stackoverflow.com/questions/22985570) 2014-04-10 15:05:55 +04:00
Pavel Kirienko f768378e2b Size optimized ServiceClient<> 2014-04-09 18:04:16 +04:00
Pavel Kirienko 3391803d86 GenericSubscriber: one method moved to the base class 2014-04-09 18:03:31 +04:00
Pavel Kirienko 33bb1be4a1 Space optimized GenericSubscriber 2014-04-09 17:19:31 +04:00
Pavel Kirienko 44153e16db GenericPublisher made noncopyable 2014-04-09 17:02:14 +04:00
Pavel Kirienko 72425b712a Space optimized GenericPublisher 2014-04-09 16:38:49 +04:00
Pavel Kirienko 5bd2f0ea74 Out of line methods - Node<> 2014-04-09 15:58:29 +04:00
Pavel Kirienko 6177e27f8d GDTR - Out of line methods 2014-04-09 15:42:23 +04:00
Pavel Kirienko a8d12d2004 TransferBufferManager rewritten to move all the code into a non-generic subclass. STM32 test code size reduced to 176k (-O1) 2014-04-09 11:52:05 +04:00
Pavel Kirienko e8fa4a2369 UAVCAN_EXPORT 2014-04-08 15:40:51 +04:00
Pavel Kirienko e485541c2e Compilation error fixes, thanks GCC 4.8 2014-04-02 14:12:21 +04:00
Pavel Kirienko 3bbcc9b0db Removed excessive void casts 2014-04-01 23:35:05 +04:00
Pavel Kirienko 5d737cf171 Logging shortcuts return void, since logging functions are not expected to fail in most cases 2014-04-01 23:15:35 +04:00
Pavel Kirienko 943b50bdf0 Publisher::broadcast() with explicit Transfer ID 2014-04-01 18:25:04 +04:00
Pavel Kirienko fd6f27b7d8 Callback type made visible 2014-03-31 18:45:46 +04:00
Pavel Kirienko 74ecfe0cc8 Fixed type signedness through the entire codebase; driver interfaces do not use starndard types now 2014-03-29 22:40:15 +04:00
Pavel Kirienko c6df3833d3 Subscriber and Server register their internal errors in the global transport perf counter object 2014-03-28 19:31:02 +04:00
Pavel Kirienko 0d9be57d92 handleFatalError() moved to error.hpp 2014-03-28 19:26:25 +04:00
Pavel Kirienko ae63ad5db5 Meaningful error codes instead of plain -1 2014-03-28 19:21:08 +04:00
Pavel Kirienko 6b733dde49 Main Node class 2014-03-28 13:21:56 +04:00
Pavel Kirienko 062170c995 Using std::function<> for callbacks with C++11 2014-03-28 02:17:00 +04:00
Pavel Kirienko c7cc8c8758 Removed duplicated code of Timer 2014-03-28 00:27:14 +04:00
Pavel Kirienko 49eb6fa463 Forgotten #pragma once 2014-03-27 22:50:30 +04:00
Pavel Kirienko 701f2a07e1 ServiceClient incapsulation fix 2014-03-27 22:24:13 +04:00
Pavel Kirienko f30b071fcf Preventing recursive calls of Scheduler::spin() 2014-03-27 14:03:05 +04:00
Pavel Kirienko 5157f9182e C++11 Timer API 2014-03-27 13:52:41 +04:00
Pavel Kirienko 9476dfbdad Renaming: Timer --> TimerBase, see the next commit 2014-03-27 11:59:02 +04:00
Pavel Kirienko 851e984e35 Renaming TransportPerfCounter --> TransferPerfCounter 2014-03-27 02:51:06 +04:00
Pavel Kirienko da357f5992 TransportPerfCounter - counting transfers and transport errors 2014-03-27 02:19:27 +04:00
Pavel Kirienko 0cc627016a Automated style fixes in order to bring the code a little bit closer to compliance with MISRA C++ rules. No changes in logic. 2014-03-25 03:04:36 +04:00
Pavel Kirienko cce657e1fe Manual style fixes, logic was not affected 2014-03-25 01:36:25 +04:00
Pavel Kirienko 5f434fe072 getIfaceIndex() for received transfers 2014-03-21 18:32:20 +04:00
Pavel Kirienko c15ceb64ec Optional pre-initialization for GenericPublisher<>, TransferSender accessor 2014-03-21 18:24:34 +04:00
Pavel Kirienko 8feacc9072 Fixed visibility of TimerEventForwarder<>::handleTimerEvent() 2014-03-19 20:02:11 +04:00
Pavel Kirienko 2103e59ef1 GDTR got the method find() by DTID 2014-03-18 16:38:14 +04:00
Pavel Kirienko 41eeae8200 Automatic selection between <stdint.h> and <cstdint> depending on the C++ standard. This improvement made the library completely independent from the standard C headers in C++11 mode. In C++03 mode, though, some C headers are still needed: <stdint.h>, <math.h> 2014-03-17 21:15:20 +04:00
Pavel Kirienko cf3f2080a5 INode got void registerInternalFailure(const char* msg) 2014-03-15 11:55:22 +04:00
Pavel Kirienko 964e666f86 Timer constructor takes INode instead of Scheduler - for compatibility reasons 2014-03-14 23:04:45 +04:00
Pavel Kirienko 6e49c2aeaf Error handling fix 2014-03-14 22:17:00 +04:00
Pavel Kirienko 613efa49b9 INode class. Publisher, Subscriber, ServiceServer, ServiceClient now accept INode in constructor instead of the bunch of independent params. Self NodeID now being configured via setNodeID() method instead of constructor param 2014-03-14 19:54:27 +04:00
Pavel Kirienko 15cbf96378 Reorganized directory structure - directory 'internal' pulled up one level. No logical changes. 2014-03-14 15:01:20 +04:00