Lib_Misc

Dependents:   IndNav_QK3_T265

Committer:
altb2
Date:
Fri Jan 10 16:01:33 2020 +0000
Revision:
14:d5f47a30ef19
Parent:
0:3312872854c4
Small changes in double2float

Who changed what in which revision?

UserRevisionLine numberNew contents of line
altb 0:3312872854c4 1 /*
altb 0:3312872854c4 2 * Signal.cpp
altb 0:3312872854c4 3 * Copyright (c) 2017, ZHAW
altb 0:3312872854c4 4 * All rights reserved.
altb 0:3312872854c4 5 */
altb 0:3312872854c4 6
altb 0:3312872854c4 7 #include "Signal.h"
altb 0:3312872854c4 8
altb 0:3312872854c4 9 using namespace std;
altb 0:3312872854c4 10
altb 0:3312872854c4 11 int32_t Signal::signals = 0;
altb 0:3312872854c4 12
altb 0:3312872854c4 13 /**
altb 0:3312872854c4 14 * Creates a signal object and assignes a unique flag.
altb 0:3312872854c4 15 */
altb 0:3312872854c4 16 Signal::Signal() {
altb 0:3312872854c4 17
altb 0:3312872854c4 18 mutex.lock();
altb 0:3312872854c4 19
altb 0:3312872854c4 20 int32_t n = 0;
altb 0:3312872854c4 21 while ((((1 << n) & signals) > 0) && (n < 30)) n++;
altb 0:3312872854c4 22 signal = (1 << n);
altb 0:3312872854c4 23
altb 0:3312872854c4 24 mutex.unlock();
altb 0:3312872854c4 25 }
altb 0:3312872854c4 26
altb 0:3312872854c4 27 /**
altb 0:3312872854c4 28 * Deletes the signal object and releases the assigned flag.
altb 0:3312872854c4 29 */
altb 0:3312872854c4 30 Signal::~Signal() {
altb 0:3312872854c4 31
altb 0:3312872854c4 32 mutex.lock();
altb 0:3312872854c4 33
altb 0:3312872854c4 34 signals &= ~signal;
altb 0:3312872854c4 35
altb 0:3312872854c4 36 mutex.unlock();
altb 0:3312872854c4 37 }
altb 0:3312872854c4 38
altb 0:3312872854c4 39 /**
altb 0:3312872854c4 40 * Gets the assigned signal flag.
altb 0:3312872854c4 41 */
altb 0:3312872854c4 42 int32_t Signal::read() {
altb 0:3312872854c4 43
altb 0:3312872854c4 44 return signal;
altb 0:3312872854c4 45 }
altb 0:3312872854c4 46
altb 0:3312872854c4 47 /**
altb 0:3312872854c4 48 * The empty operator is a shorthand notation of the <code>read()</code> method.
altb 0:3312872854c4 49 */
altb 0:3312872854c4 50 Signal::operator int32_t() {
altb 0:3312872854c4 51
altb 0:3312872854c4 52 return read();
altb 0:3312872854c4 53 }
altb 0:3312872854c4 54