Library that uses mbed-os
Signal.h@0:ff3de4aaacf8, 2019-03-06 (annotated)
- Committer:
- altb
- Date:
- Wed Mar 06 14:19:23 2019 +0000
- Revision:
- 0:ff3de4aaacf8
New RTOS part
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
altb | 0:ff3de4aaacf8 | 1 | /* |
altb | 0:ff3de4aaacf8 | 2 | * Signal.h |
altb | 0:ff3de4aaacf8 | 3 | * Copyright (c) 2017, ZHAW |
altb | 0:ff3de4aaacf8 | 4 | * All rights reserved. |
altb | 0:ff3de4aaacf8 | 5 | */ |
altb | 0:ff3de4aaacf8 | 6 | |
altb | 0:ff3de4aaacf8 | 7 | #ifndef SIGNAL_H_ |
altb | 0:ff3de4aaacf8 | 8 | #define SIGNAL_H_ |
altb | 0:ff3de4aaacf8 | 9 | |
altb | 0:ff3de4aaacf8 | 10 | #include <cstdlib> |
altb | 0:ff3de4aaacf8 | 11 | #include <stdint.h> |
altb | 0:ff3de4aaacf8 | 12 | #include <mbed.h> |
altb | 0:ff3de4aaacf8 | 13 | |
altb | 0:ff3de4aaacf8 | 14 | /** |
altb | 0:ff3de4aaacf8 | 15 | * This class manages the handling of unique signal flags to trigger rtos threads. |
altb | 0:ff3de4aaacf8 | 16 | */ |
altb | 0:ff3de4aaacf8 | 17 | class Signal { |
altb | 0:ff3de4aaacf8 | 18 | |
altb | 0:ff3de4aaacf8 | 19 | public: |
altb | 0:ff3de4aaacf8 | 20 | |
altb | 0:ff3de4aaacf8 | 21 | Signal(); |
altb | 0:ff3de4aaacf8 | 22 | virtual ~Signal(); |
altb | 0:ff3de4aaacf8 | 23 | virtual int32_t read(); |
altb | 0:ff3de4aaacf8 | 24 | operator int32_t(); |
altb | 0:ff3de4aaacf8 | 25 | |
altb | 0:ff3de4aaacf8 | 26 | private: |
altb | 0:ff3de4aaacf8 | 27 | |
altb | 0:ff3de4aaacf8 | 28 | static int32_t signals; // variable that holds all assigned signal flags |
altb | 0:ff3de4aaacf8 | 29 | int32_t signal; // signal flag of this object |
altb | 0:ff3de4aaacf8 | 30 | Mutex mutex; // mutex to lock critical sections |
altb | 0:ff3de4aaacf8 | 31 | }; |
altb | 0:ff3de4aaacf8 | 32 | |
altb | 0:ff3de4aaacf8 | 33 | #endif /* SIGNAL_H_ */ |
altb | 0:ff3de4aaacf8 | 34 |